Memoria I I

Embed Size (px)

Text of Memoria I I

  • 1. Sistemas de Memoria (II) Cecilia Hernndez

2. Algunas preguntas Alternativas de diseo

  • Cmo sabemos si est en cache?
  • Identificacin del bloque
  • Dnde lo ponemos en cache?
  • U bicacin del bloque
  • Qu ocurre si cache est llena y queremos traer algo nuevo?
  • Reemplazo del bloque
    • Qu ocurre si queremos traer algo nuevo y el lugar donde queremos ponerlo ya est ocupado?estrategia de escritura

3. Reemplazo de bloque

  • Cache de traduccin directa
    • No hay eleccin: slo una lnea disponible
  • Cache completamente asociativo
    • Todas las lneas disponibles, elegir lamejor
  • Cache asociativo por conjuntos
    • Todas las lneas dentro del conjunto disponibles, elegir lamejor

4. Eleccin de la lnea a reemplazar

  • Objetivo
    • Reemplazar la lnea que va a ser utilizada ms lejos en el futuro
  • Algoritmos de reemplazo
    • Random: elegir lnea al azar
    • LRU (least recently used): elegir lnea menos recientemente utilizada

Asociatividad 2-way 4-way 8-way Ejemplo: Tasas de fallo medidas en un benchmark 1.12% 1.12% 1.13% 1.13% 1.17% 1.15% 256KB 1.5% 1.4% 1.7% 1.5% 2.0% 1.9% 64KB 5.0% 4.4% 5.3% 4.7% 5.7% 5.2% 16KB Random LRU Random LRU Random LRU Tamao 5. Algunas preguntas Alternativas de diseo

  • Cmo sabemos si est en cache?
  • Identificacin del bloque
  • Dnde lo ponemos en cache?
  • U bicacin del bloque
  • Qu ocurre si cache est llena y queremos traer algo nuevo?
  • Reemplazo del bloque
    • Qu ocurre si queremos traer algo nuevo y el lugar donde queremos ponerlo ya est ocupado?estrategia de escritura

6. Estrategia de escritura

  • Escritura sincrnica (write-through)
    • Escribir en el cache y en el nivel siguiente de la jerarqua
  • Escritura asincrnica (write-back)
    • Escribir slo en el cache, escribir en nivel siguiente slo al reemplazar el bloque
    • Requiere un bit de estado adicional en el cache para indicar que bloque ha sido modificado (bit M)
  • Comparacin
    • WT
      • Pro: fallo de lectura no produce escrituras
      • Con: alto costo de escritura a menos que se use un buffer
        • Buffer siempre se usa para no esperar por DRAM
    • WB
      • Pro: evitar escrituras mltiples del mismo bloque a DRAM
      • Con: Ms complejo, fallo de lectura puede producir escritura

7. Buffer de escritura para write-through

  • Buffer almacena escrituras pendientes
    • Procesador escribe en buffer y cache
    • Controlador de memoria escribe contenidos del bloque a memoria
  • Buffer de escritura es FIFO
    • Nmero tpico de entradas: 4-8
  • Nota: buffer de escritura puede producir conflicto RAW
    • Fallo de lectura antes de que el buffer haya escrito en DRAM
    • Soluciones
      • Esperar a buffer vaco antes de servir el fallo de lectura
      • Al servir fallo de lectura, verificar contenidos del buffer antes de ir a DRAM (bsqueda asociativa en buffer)

CPU Cache Buffer de escritura DRAM 8. Poltica ante fallo de escritura

  • Qu hacer si store produce un fallo?
    • Traer bloque al cache (write-allocate)
      • Evita fallo posterior si se lee del mismo bloque
      • Pero si no se lee, habramos sacado del cache un bloque potencialmente importante
    • Slo escribir a DRAM (write-around)
      • Ahorra espacio en el cache si el bloque escrito no se accesa de nuevo en un tiempo largo

9. Mejoras al desempeo

  • Cmo mejorar el desempeo?
    • Reducir tasa de fallos
    • Reducir penalidad de fallos
    • Reducir tiempo de acierto

Desempeo dado por Tiempo Promedio de Acceso a Memoria En ingls Average Memory Access Time AMAT = tasa de aciertos*tiempo de acierto + (1- tasa de fallos)*penalidad de fallo AMAT = (1 - tasa de fallos) * tiempo de acierto + tasa de fallos * penalidad de fallo 10. Mejoras al desempeo

  • Cmo mejorar el desempeo?
    • Reducir tasa de fallos
    • Reducir penalidad de fallos
    • Reducir tiempo de acierto

Desempeo dado por Tiempo Promedio de Acceso a Memoria En ingls Average Memory Access Time AMAT = tasa de aciertos*tiempo de acierto + (1- tasa de fallos)*penalidad de fallo AMAT = (1 -tasa de fallos ) * tiempo de acierto +tasa de fallos* penalidad de fallo 11. Reducir tasa de fallos (I)

  • Explotar localidad espacial con bloques ms grandes
    • Pero incrementa penalidad de fallo
    • Tambin incrementa fallos por conflicto (menos bloques)

Tamao de bloque (bytes)Tasa de Fallos0% 5% 10% 15% 20% 25% 16 32 64 128 256 1K 4K 16K 64K 256K 12. Reducir tasa de fallos (II)

  • Aumentar asociatividad
    • Regla 2:1
      • Tasa fallos cache directo tamao N = tasa fallos cache APC de 2 vas tamao N/2
    • Pero recordar que tiempo de acierto es mayor.

Conflict Cache Size (KB)Miss Rate per Type 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 1 2 4 8 16 32 64 128 1-way 2-way 4-way 8-way CapacityCompulsory 13. Reducir tasa de fallos (III)

  • Cache de vctimas (victim cache)
    • Pequeo buffer asociativo almacena bloques recientemente eliminados del cache
    • Reduce fallos por conflicto en cache directo manteniendo acceso rpido
    • Jouppi[1990]: cache de vctimas de 4 entradas elimina 20%-95% de fallos de conflicto en cache directo de 4KB
    • Utilizado en procesadores DEC Alpha y HP

Al siguiente nivel de jerarqua Datos Tags Tag + comp Tag + comp Tag + comp Tag + comp Lnea datos Lnea datos Lnea datos Lnea datos 14. Operacin con Cache Vctima

  • 1. Acierto en L1, no se necesita accesar a cache vctima
  • 2. Fallo en L1 por bloque en ubicacin b, acierto en cache vctima en ubicacin v, intercambiar contenido de b y v (toma un ciclo extra)
  • 3. Fallo en L1, fallo en cache vctima, cargar bloque del siguiente nivel en jerarqua y ponerlo en L1, poner bloque que estaba en L1 en cache vctima, si cache vctima esta llena, reemplazar una de las entradas
  • Buffer vctima de 4 u 8 entradas para una cache mapeada directa funciona bien

15. Cache vctima Fallo en L1 Fallo CV CPU direccin b DRAM Cache CV (1) Fallo L1 (2) Fallo CV 16. Cache vctima Fallo en L1 Fallo CV CPU direccin b DRAM m Cache CV (3) AciertoDRAMDato en bloque m 17. Cache vctima Fallo en L1 Fallo CV CPU direccin m DRAM m Cache CV (4) Copia bloque m En donde estaba b Y b en cache CV b 18. Cache vctima Fallo en L1, Acierto en CV CPU direccin b DRAM Cache CV Acierto En CV (2) Fallo en L1 (1) v 19. Reducir tasa de fallos (IV)

  • Prefetch
    • Traer bloques al cache antes de que el programa los requiera
    • Reduce fallos obligatorios (compulsory)
    • til cuando localidad espacial es muy buena (instrucciones y datos), pero requiere prediccin de saltos
    • Cache de trazas (trace cache)
      • Integrar prefetch y prediccin: instrucciones en cache en orden de ejecucin
      • Utilizado en arquitectura Netburst de Intel (Pentium 4)
    • Acceso a datos (ayuda por software): Instrucciones touch
      • Similar a load, pero indica al cache que dato se accesar pronto
      • Presentes en procesadores IBM Power PC

20. Mejoras al desempeo

  • Cmo mejorar el desempeo?
    • Reducir tasa de fallos
    • Reducir penalidad de fallos
    • Reducir tiempo de acierto

Desempeo dado por Tiempo Promedio de Acceso a Memoria En ingls Average Memory Access Time AMAT = tasa de aciertos*tiempo de acierto + (1- tasa de fallos)*penalidad de fallo AMAT = (1 - tasa de