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

Embed Size (px)

DESCRIPTION

futuro de las computadoras inteligentes

Citation preview

  • Arquitectura de ComputadoresClase 20Memoria Cach: Elementos de DiseoIIC 2342Semestre 2008-2

    Rubn MitnikPontificia Universidad Catlica de ChileEscuela de IngenieraDepartamento de Ciencia de la Computacin

  • ObjetivosCaptulo 5 : Sistemas de Memoria

    Entender los distintos elementos de diseo de las memorias cachPolticas de reemplazoPolticas de escrituraCoherenciaNiveles y tipos de cachCoherenciaTamao de las lneasObjetivosR.Mitnik *Arquitectura de Computadores

  • Determinan qu lnea hay que sobreescribir cuando la memoria cach se llena y se requiere escribir un bloque de memoria principal en la cachR.Mitnik

    Arquitectura de Computadores*Memoria CachCaptulo 5 : Sistemas de Memoria Memoria CachAlgoritmos de ReemplazoR.Mitnik Arquitectura de Computadores

    Arquitectura de Computadores

  • 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)RandomR.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

  • 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 hardwareCada 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*

    Arquitectura de Computadores

  • 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)R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • FIFO (first input first output):

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

    R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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).

    R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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

    Arquitectura de Computadores*Memoria CachCaptulo 5 : Sistemas de Memoria Memoria CachPolticas de escrituraR.Mitnik Arquitectura de Computadores

    Arquitectura de Computadores

  • Hay dos tcnicas principalesWrite-through (inmediatamente) Write-back (post-escritura)

    R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

    Arquitectura de Computadores

  • Problemas de diseo: 1ns 5 ns 100 ns 5 ms 1KB 256 KB 1 GB 80 GBR.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*Memoria CachCaptulo 5 : Sistemas de Memoria Memoria CachNmero y Niveles de CachR.Mitnik Arquitectura de Computadores

    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.R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • Actualmente se tienen sistemas de con caches on-chip (L1 y L2) y off-chip (L3).

    R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*Memoria CachCaptulo 5 : Sistemas de Memoria Memoria CachTipos de CachsR.Mitnik Arquitectura de ComputadoresUnified:instrucciones y datos juntos

    Split:instrucciones y datos separados

    Specific:usos especficos (trace cache, victim cache)

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*Memoria CachCaptulo 5 : Sistemas de Memoria Memoria CachCoherenciaR.Mitnik Arquitectura de ComputadoresEl 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 CPUEntre caches de distintos cores o CPUs

    Arquitectura de Computadores

  • 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 Arquitectura de Computadores*

    Arquitectura de Computadores

  • 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.R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • Cuando 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

    Arquitectura de Computadores*Memoria CachCaptulo 5 : Sistemas de Memoria Memoria CachTamao del bloqueR.Mitnik Arquitectura de Computadores

    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 demasiadoEn 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 bytesR.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • Tamao del cdigo

    Optimizacin para velocidad tamao

    Cdigo optimizado para tamao puede llegar a ejecutarse ms rpido que cdigo optimizado para velocidad.

    R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • R.Mitnik Arquitectura de Computadores*

    Arquitectura de Computadores

  • ResumenExisten diversos elementos de diseo los cuales determinan la funcionalidad y desempeo de las memorias cachAlgoritmos de reemplazoPolticas de escrituraNmero y niveles de cachTipos de cachCoherenciaTamao de las lneas

    La correcta seleccin de stos permite optimizar la funcionalidad de la memoria cach para usos especficosR.Mitnik *Arquitectura de ComputadoresResumenCaptulo 5 : Sistemas de Memoria Memoria CachR.Mitnik Arquitectura de Computadores

    Arquitectura de Computadores

    Agregar: Explicar qu pasa cuando escribo en memoria sin antes haber ledo.***************Qu sucede si un dispositivo de I/O hace un requerimiento a memoria de un dato que an no ha sido actualizado?*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 vlidos o no.****Trace cache: cach donde se almacenan (encolan) las instrucciones ya decodificadasVictim cache: cach donde se almacenan las instrucciones o datos que fueron retirados de la cach***Por qu utilizando politicas de escritura write-through podra 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 vlido.******Loop unrolling sirve para disminuir el tiempo de procesamiento de un cdigo, pero aumenta el tamao. Esto, si hace que mi cdigo no entre completo en la cach, puede generar una disminucin del performance.Si no hago loop unrolling, pero mi loop entra completo en la cach, puede que sea ms rpido de procesar, an cuando las instrucciones son ms lentas (requiere saltos condicionales por el loop).******