of 35/35
Arquitectura de Computadores Clase 20 Memoria Caché: Elementos de Diseño IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Arquitectura de Computadores-clase20.ppt

  • View
    33

  • Download
    2

Embed Size (px)

Text of Arquitectura de Computadores-clase20.ppt

Pontificia Universidad Catlica de Chile Escuela de Ingeniera Departamento de Ciencia de la Computacin

Arquitectura de ComputadoresClase 20

Memoria Cach: Elementos de Diseo

IIC 2342 Semestre 2008-2

Rubn Mitnik

Memoria CachCaptulo 5 : Sistemas de Memoria Memoria Cach

Algoritmos de ReemplazoDeterminan 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

3

Arquitectura de Computadores

Algoritmos de reemplazoCaptulo 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

4

Arquitectura de Computadores

Algoritmos de reemplazoCaptulo 5 : Sistemas de Memoria Memoria Cach

LRU (least recently used: menos recientemente usada):

Probablemente los bloques usados ms recientemente seguirn usndose en el futuro cercano.Probablemente los bloques no usados en mucho tiempo no se usarn mucho en el futuro cercano.

R.Mitnik

5

Arquitectura de Computadores

Algoritmos de reemplazoCaptulo 5 : Sistemas de Memoria Memoria Cach

LRU (least recently used: menos recientemente usada):

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

6

Arquitectura de Computadores

Algoritmos de reemplazoCaptulo 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 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 reemplazoCaptulo 5 : Sistemas de Memoria Memoria Cach

FIFO (first input first output):

Implementacin: se usa una lista circular con una manecilla que indica el ms antiguo.

R.Mitnik

8

Arquitectura de Computadores

Algoritmos de reemplazoCaptulo 5 : Sistemas de Memoria Memoria Cach

LFU (least frecuently used: utilizado menos frecuentemente):

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

9

Arquitectura de Computadores

Algoritmos de reemplazoCaptulo 5 : Sistemas de Memoria Memoria Cach

Random (aleatorio):

Se sustituye un bloque cualquiera segn una funcin aleatoria.

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 CachCaptulo 5 : Sistemas de Memoria Memoria Cach

Polticas de escrituraAntes 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 escrituraCaptulo 5 : Sistemas de Memoria Memoria Cach

Hay dos tcnicas principales

Write-through (inmediatamente) Write-back (post-escritura)

R.Mitnik

12

Arquitectura de Computadores

Polticas de escrituraCaptulo 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 vlido.

R.Mitnik

13

Arquitectura de Computadores

Polticas de escrituraCaptulo 5 : Sistemas de Memoria Memoria Cach

Write-through (escritura inmediata):

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 escrituraCaptulo 5 : Sistemas de Memoria Memoria Cach

Write-back (post-escritura):

La lnea se copia a memoria cuando se va a reemplazar (slo si fue modificada).

Bit de actualizacin:

inicializado en 0 (al cargarse la lnea) seteado en 1 al modificarse la lnea.

R.Mitnik

15

Arquitectura de Computadores

Polticas de escrituraCaptulo 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 escrituraCaptulo 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 CachCaptulo 5 : Sistemas de Memoria Memoria Cach

Nmero y Niveles de Cach

R.Mitnik

18

Arquitectura de Computadores

Nmero y Niveles de cachesCaptulo 5 : Sistemas de Memoria Memoria Cach

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

Nmero y Niveles de cachesCaptulo 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

Memoria CachCaptulo 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 cachesCaptulo 5 : Sistemas de Memoria Memoria Cach

CPUL1 CACHE Instruction Cache Data Cache

L2 Cache L3 Cache Main MemoryR.Mitnik 22 Arquitectura de Computadores

Nmero, Niveles y Tipos de cachesCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

23

Arquitectura de Computadores

Memoria CachCaptulo 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 CPUs24 Arquitectura de Computadores

R.Mitnik

CoherenciaCaptulo 5 : Sistemas de Memoria Memoria Cach

Soluciones:Vigilancia del bus (con write-through)

invalidacin de datos

Transparencia de hardware actualizacin en todas las caches

Memoria excluida de cache memoria compartida no se transfiere a cache

R.Mitnik

25

Arquitectura de Computadores

CoherenciaCaptulo 5 : Sistemas de Memoria Memoria Cach

Soluciones:Protocolo MESI (Modified / Exclusive / Shared / Invalid)

agrega dos bits de control por lnea

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 CachCaptulo 5 : Sistemas de Memoria Memoria Cach

Tamao del bloqueCuando se carga una palabra en la cach, se carga tambin palabras contiguas con la idea de que posteriormente van a ser tambin referenciadas.

R.Mitnik

27

Arquitectura de Computadores

Tamao del bloqueCaptulo 5 : Sistemas de Memoria Memoria Cach

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.

Ej: Pentium 4 y AMD Athlon 64 usan lneas de 64 bytes28 Arquitectura de Computadores

R.Mitnik

Tamao del bloqueCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

29

Arquitectura de Computadores

Efectos: eficienciaCaptulo 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: eficienciaCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

31

Arquitectura de Computadores

Efectos: eficienciaCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

32

Arquitectura de Computadores

Efectos: eficienciaCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

33

Arquitectura de Computadores

Efectos: eficienciaCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

34

Arquitectura de Computadores

Efectos: eficienciaCaptulo 5 : Sistemas de Memoria Memoria Cach

R.Mitnik

35

Arquitectura de Computadores

ResumenCaptulo 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 especficos36 Arquitectura de Computadores

R.Mitnik