icee1012 capitulo 5 la memoria

Upload: zapatocuadrado

Post on 20-Feb-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    1/101

    ICEE1012

    La Memoria: Jerarqua, Tamaos yVelocidades

    Basado en el Capitulo 5 del texto: Computer Organization and Design, David Patterson y John Hennessy

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    2/101

    Procesador MemoriaAddress

    MemWrite

    WriteData

    ReadData

    WE

    CLKCLK

    La performance del Computador depende

    de: Performance del Procesador Performance de la Memoria

    Interfaz de la Memoria

    Introduccin

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    3/101

    En captulos anteriores, asumimos el acceso a

    Memoria en 1 ciclo de relojpero eso no ha sidocierto desde los 80

    Gap Procesador-Memoria

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    4/101

    Tecnologa de las Memorias

    RAM Esttica; Static RAM (SRAM) 0,5 ns2,5ns; $ 500$ 1.000 per GB

    RAM Dinmica; Dynamic RAM (DRAM) 50 ns70 ns; $ 10$ 20 per GB

    Memoria Flash 5.000ns50.000 ns; $ 0,75$ 1,00 per GB

    Discos Magnticos 5ms20ms, $ 0,05$ 0,1 per GB

    Memoria Ideal Tiempo de acceso de SRAM

    Capacidad y costo/GB de discoICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    5/101

    Principio de Localidad

    Los programas accesan una pequea

    proporcin de su espacio de direcciones en untiempo dado

    Localidad Temporal

    tems accesados recientemente son probables de seraccesados pronto nuevamente

    p.e., instrucciones en un loop, variables de induccin

    Localidad Espacial tems cercanos a aquellos accesados recientemente

    son probables de ser accesados pronto

    p.e., acceso de instrucciones secuenciales, datos dearreglos

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    6/101

    Aprovechando la Localidad

    Jerarqua en las Memorias

    Guardar todo en disco

    Copiar los tems accesados recientemente (y locercano) desde disco a pequeas memorias

    DRAM Memoria principal

    Copiar los tems accesados recientemente (y lo

    cercano) desde DRAM a pequeas memoriasSRAM Memoria cache conectada a la CPU

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    7/101

    Niveles de Jerarqua de Memoria

    Bloque (o lnea): unidad de copiado

    Pueden ser mltiples palabras Si el dato accesado est presente

    en el nivel superior Hit (acierto, xito): acceso satisfecho

    por el nivel superior ndice de hits: hits/accesos

    Si el dato accesado esta ausente Miss (fallo, yerro): bloque copiado

    desde nivel inferior

    Tiempo tomado: castigo por miss ndice de Miss: misses/accesos

    = 1ndice de hits

    Entonces, el dato accesado esentregado para el nivel superior

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    8/101

    Memoria Cache

    Memoria Cache

    El nivel de jerarqua de memoria ms cercano a laCPU

    Dados los accesos X1, , Xn1, Xn

    ICEE1012 Sistemas Digitales II

    Cmo sabemos siel dato estpresente?

    Dnde miramos?

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    9/101

    Cache Mapeado Directamente

    Ubicacin determinado por la direccin

    Mapeado directamente: slo una eleccin (Direccin del bloque) mdulo (#Bloques en el cache)

    ICEE1012 Sistemas Digitales II

    #Bloques es unapotencia de 2

    Utiliza bits de

    direccin menossignificativos

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    10/101

    Rtulo (Tag) y Bit Vlido

    Como sabemos cul bloque particular estguardado en una ubicacin del cache? Guarda direccin del bloque como tambin el dato

    En realidad, slo necesita los bits mas significativos

    Llamado el rtulo (tag) Qu pasa si no hay datos en dicha ubicacin?

    Bit valido: 1 = presente, 0 = no presente

    Inicialmente 0

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    11/101

    Ejemplo de Cache

    8-bloques, 1 palabra/bloque, mapeado

    directamente Estado inicial

    ICEE1012 Sistemas Digitales II

    ndice V Tag Dato

    000 N001 N

    010 N

    011 N

    100 N

    101 N

    110 N

    111 N

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    12/101

    Ejemplo de Cache

    ICEE1012 Sistemas Digitales II

    ndice V Tag Dato

    000 N001 N

    010 N

    011 N

    100 N

    101 N

    110 Y 10 Mem[10110]

    111 N

    Direccinpalabra Direccinbinaria Hit/miss BloqueCache

    22 10 110 Miss 110

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    13/101

    Ejemplo de Cache

    ICEE1012 Sistemas Digitales II

    ndice V Tag Dato

    000 N001 N

    010 Y 11 Mem[11010]

    011 N

    100 N

    101 N

    110 Y 10 Mem[10110]

    111 N

    Direccinpalabra Direccinbinaria Hit/miss BloqueCache

    26 11 010 Miss 010

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    14/101

    Ejemplo de Cache

    ICEE1012 Sistemas Digitales II

    ndice V Tag Dato

    000 N

    001 N

    010 Y 11 Mem[11010]

    011 N

    100 N101 N

    110 Y 10 Mem[10110]

    111 N

    Direccin

    palabra

    Direccin

    binaria Hit/miss

    Bloque

    Cache22 10 110 Hit 110

    26 11 010 Hit 010

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    15/101

    Ejemplo de Cache

    ICEE1012 Sistemas Digitales II

    ndice V Tag Dato000 Y 10 Mem[10000]

    001 N

    010 Y 11 Mem[11010]

    011 Y 00 Mem[00011]

    100 N

    101 N

    110 Y 10 Mem[10110]

    111 N

    Direccin

    palabra

    Direccin

    binaria

    Hit/missBloque

    Cache16 10 000 Miss 000

    3 00 011 Miss 011

    16 10 000 Hit 000

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    16/101

    Ejemplo de Cache

    ICEE1012 Sistemas Digitales II

    ndice V Tag Dato

    000 Y 10 Mem[10000]

    001 N010 Y 10 Mem[10010]

    011 Y 00 Mem[00011]

    100 N

    101 N110 Y 10 Mem[10110]

    111 N

    Direccin

    palabra

    Direccin

    binaria

    Hit/missBloque

    Cache18 10 010 Miss 010

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    17/101

    Subdivisin de Direcciones

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    18/101

    Ejemplo: Tamao de Bloque ms grande

    64 bloques, 16 bytes/bloque A que nmero de bloque corresponde la direccin

    1200 dada en bytes?

    Direccin de bloque = 1200/16= 75

    Nmero de bloque = 75 mdulo 64 = 11

    ICEE1012 Sistemas Digitales II

    Tag ndice Offset03491031

    4 bits6 bits22 bits

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    19/101

    Consideraciones del Tamao del Bloque

    Bloques ms grandes deberan reducir el ndicemiss Debido a la localidad espacial

    Pero en el cache de tamao fijo

    Bloques ms grandes menos de ellosMs competencia aumenta el ndice miss

    Bloques ms grandes contaminacin

    Mayor penalidad por miss Puede anular beneficio de un ndice de miss reducido Latencia de la primera palabra y tiempo de

    transferencia del resto del bloque son crticos

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    20/101

    Yerros (Misses) del Cache

    En aciertos (hits) del cache, la CPU procedenormalmente

    En yerros (miss) del cache Stall del pipeline de la CPU

    Fetch del bloque desde el siguiente nivel de lajerarqua

    Yerro de una instruccin en el cache Reiniciar fetch de la instruccin

    Yerro de un dato en el cache Completar acceso al dato

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    21/101

    Write-Through

    En hit de escritura de dato, podra slo actualizar el

    bloque en el cache Pero entonces el cache y la memoria seran inconsistentes Write through: tambin actualiza la memoria Pero hacer escritura toma ms tiempo

    p.e., si CPI base = 1, 10% de las instrucciones songuardar, escribir en memoria toma 100 ciclos CPI efectivo = 1 + 0.1100 = 11

    Solucin: escribir buffer

    Mantener el dato esperando ser escrito en memoria CPU continua inmediatamente Slo hacer stalls en la escritura si buffer de escritura est ya lleno

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    22/101

    Write-Back

    Alternativa: En acierto de escritura de dato, sloactualizar el bloque en el cache Rastrear si cada bloque est sucio

    Cuando se remplaza un bloque sucio Escribirlo de vuelta a memoria Se puede utilizar un buffer de escritura para permitir

    el remplazo del bloque que ser ledo primero

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    23/101

    Write Allocation

    Qu pasara en un yerro de escritura?Alternativas para el write-through

    Asignar espacio (allocate) en el miss: fetch elbloque

    Escribir alrededor: no hacer fetch del bloque Ya que los programas a menudo escriben un bloque entero

    antes de leerlo (p.e., inicializacin)

    Para el write-back Normalmente hacer fetch del bloque

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    24/101

    Ejemplo: FastMATH de Intrinsity

    Procesador MIPS Embedded Pipeline de 12 etapasAcceso a instruccin y datos en cada ciclo

    Cache separado (split cache): separa I-cache

    y D-cache Cada 16KB: 256 bloques 16 palabras/bloque D-cache: write-through o write-back

    ndice de yerros de SPEC2000

    I-cache: 0.4% D-cache: 11.4% Promedio ponderado: 3.2%

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    25/101

    Ejemplo: FastMATH de Intrinsity

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    26/101

    Caches de Soporte de la Memoria Principal

    Utiliza DRAMs para la memoria principal

    Ancho fijo (p.e., 1 palabra) Conectado por buses sncronos de ancho fijo

    Reloj del bus es normalmente mas lento que el reloj de la CPU

    Ejemplo lectura bloque cache

    1 ciclo del bus para transferencia de direccin 15 ciclos del bus para accesos a la DRAM 1 ciclo de bus para la transferencia de datos

    Para bloques de 4 palabras, DRAM de 1 palabra

    de ancho Penalidad por yerro = 1 + 415 + 41 = 65 ciclos de busAncho de banda (bandwidth) = 16 bytes / 65 ciclos =

    0.25 B/cicloICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    27/101

    Aumentando el Ancho de Banda de la Memoria

    ICEE1012 Sistemas Digitales II

    Memoria de 4 palabras de ancho Penalidad por yerro = 1 + 15 + 1 = 17 ciclos de bus Ancho banda = 16 bytes / 17 ciclos = 0.94 B/ciclo

    Memoria de 4 bancos interleaved Penalidad por yerro = 1 + 15 + 41 = 20 ciclos de

    bus Ancho banda = 16 bytes / 20 ciclos = 0.80 B/ciclo

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    28/101

    Organizaciones de DRAM Avanzadas

    Los bits en una DRAM son organizados comoun arreglo rectangular DRAM accesa una fila entera

    Modo burst: entrega palabras sucesivas desde una

    fila con latencia reducida DRAM Double Data Rate (DDR)

    Transfiere en los flancos de subida y de bajada delreloj

    DRAM Quad Data Rate (QDR) DDR de entrada y salida separados

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    29/101

    Generaciones de DRAM

    ICEE1012 Sistemas Digitales II

    0

    50

    100

    150

    200

    250

    300

    '80 '83 '85 '89 '92 '96 '98 '00 '04 '07

    Trac

    Tcac

    Ao Capacidad $/GB1980 64Kbit $1.500.000

    1983 256Kbit $500.000

    1985 1Mbit $200.000

    1989 4Mbit $50.000

    1992 16Mbit $15.000

    1996 64Mbit $10.000

    1998 128Mbit $4.000

    2000 256Mbit $1.000

    2004 512Mbit $250

    2007 1Gbit $50

    Semestre Primavera 2015

    Trac: Total access time to a new Row/ColumnTcac: Column access time to existing row

    ns

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    30/101

    Tecnologa en Memorias

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    31/101

    Tecnologa en Memorias

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    32/101

    Medida de la Performance del Cache

    Componentes del tiempo de CPU

    Ciclos de ejecucin del programa Incluye tiempo de acierto del cache Ciclos de stall de la memoria

    Principalmente por yerros del cache

    Con supuestos para simplificar:

    ICEE1012 Sistemas Digitales II

    miss""porPenalidadnInstruccio

    Misses""

    Programa

    nesInstruccio

    miss""porPenalidadmiss""deIndicePrograma

    memoriaaAccesos

    memoriadestall""deCiclos

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    33/101

    Ejemplo de Performance del Cache

    Dado: ndice miss I-cache = 2% ndice miss D-cache = 4% Penalidad de miss = 100 ciclos Base CPI (cache ideal ) = 2

    Load & stores son el 36% de las instrucciones Ciclos de miss por instruccin

    I-cache: 0.02 100 = 2 D-cache: 0.36 0.04 100 = 1.44

    CPI real = 2 + 2 + 1.44 = 5.44 CPU ideal es 5.44/2 =2.72 veces ms rpida

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    34/101

    Tiempo de Acceso Promedio

    Tiempo de hit es tambin importante para laperformance

    Average Memory Access Time (AMAT)AMAT = Tiempo de hit + ndice Miss Penalidad

    Miss Ejemplo

    CPU con reloj de 1 ns, tiempo de hit = 1 ciclo,penalidad miss = 20 ciclos, ndice miss I-cache = 5%

    AMAT = 1 + 0.05 20 = 2 ns 2 ciclos por instruccin

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    35/101

    Resumen Performance

    Cuando se incrementa performance de la CPU Penalidad miss se hace ms significativa

    Disminuyendo CPI base

    Gran parte del tiempo se pasa en stalls de memoria Incrementando la frecuencia del reloj

    Stalls de memoria toman ms ciclos de CPU

    No se puede descuidar el comportamiento delcach al evaluar el rendimiento del sistema

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    36/101

    Caches Asociativos

    Completamente asociativo (Fully Associative)

    Permite a un bloque dado accesar cualquiera entrada delcache Requiere que todas las entradas se busquen

    simultneamente Comparador por entrada (ms caro)

    Conjunto asociativo de n-vas (n-Way SetAssociative) Cada conjunto contiene nentradas

    El nmero del bloque determina cul conjunto (Nmero del bloque) mdulo (#Conjuntos en el cache) Bsqueda simultnea de entradas en un conjunto dado ncomparadores (ms barato)

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    37/101

    Ejemplo Asociatividad de los Caches

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    38/101

    Espectro de Asociatividad

    Para un cache con 8 entradas

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    39/101

    Ejemplo Asociatividad

    Compara caches de 4 bloques Mapeado directamente, conjunto asociativo de 2 vas,

    completamente asociativo

    Secuencia acceso a los bloques: 0, 8, 0, 6, 8

    Mapeado directamente

    ICEE1012 Sistemas Digitales II

    DireccinBloque

    ndiceCache

    Hit/missContenido cache despus del acceso

    0 1 2 30 0 miss Mem[0]8 0 miss Mem[8]

    0 0 miss Mem[0]6 2 miss Mem[0] Mem[6]8 0 miss Mem[8] Mem[6]

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    40/101

    Ejemplo Asociatividad

    Conjunto asociativo de 2 vas

    ICEE1012 Sistemas Digitales II

    DireccinBloque

    ndiceCache

    Hit/miss Contenido cache despus del accesoSet 0 Set 1

    0 0 miss Mem[0]8 0 miss Mem[0] Mem[8]0 0 hit Mem[0] Mem[8]6 0 miss Mem[0] Mem[6]8 0 miss Mem[8] Mem[6]

    Completamente asociativoDireccinBloque

    Hit/miss Contenido cache despus del acceso

    0 miss Mem[0]

    8 miss Mem[0] Mem[8]0 hit Mem[0] Mem[8]6 miss Mem[0] Mem[8] Mem[6]8 hit Mem[0] Mem[8] Mem[6]

    Semestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    41/101

    Cunta Asociatividad

    El aumentar la asociatividad disminuye el ndicede miss Pero con menos retornos

    Simulacin de un sistema con D-cache de 64KB,

    bloques de 16 palabras, SPEC2000 1 va: 10.3%

    2 vas: 8.6%

    4 vas: 8.3%

    8 vas: 8.1%

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Organizacin Cache Conjunto Asociativo

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    42/101

    Organizacin Cache Conjunto Asociativo

    de 4 vas

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    43/101

    Polticas de Reemplazos

    Mapeado directamente: no hay eleccin

    Conjunto asociativo Preferir entrada no vlida, si hay una De lo contrario, elegir entre las entradas del conjunto

    Least-Recently Used (LRU) Elegir una no utilizada por el tiempo ms largo

    Simple para 2 vas, manejable para 4 vas, demasiado difcilmas all de eso

    Al azar (Random) Da aproximadamente el mismo rendimiento que LRU

    para alta asociatividad

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    44/101

    Caches Multinivel

    Cache primario ligado a la CPU Pequeo pero rpido

    Misses servicios cache Level-2 del cacheprimario Ms grande, ms lento pero todava ms rpido que la

    memoria principal

    Servicios memoria principal misses cache L-2

    Algunos sistemas de alto nivel incluyen cache L-3

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    45/101

    Ejemplo Cache Multinivel

    Dado: CPU con CPI base = 1, frecuencia reloj = 4GHz

    ndice miss/instruccin = 2%

    Tiempo acceso memoria principal = 100ns (incluye

    manejo de miss) Slo con cache primario

    Penalidad por miss = 100ns/0.25ns = 400 ciclos reloj

    CPI efectivo un nivel de caching = 1 + 0.02 400 = 9

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    46/101

    Ejemplo (cont.)

    Ahora se agrega cache L-2 Tiempo de acceso = 5ns

    ndice de miss global a memoria principal = 0.5%

    Miss primario con hit L-2

    Penalidad = 5ns/0.25ns = 20 ciclos Miss primario con miss L-2

    Penalidad extra = 400 ciclos

    CPI = 1 + 0.02 20 + 0.005 400 = 3.4

    ndice performance = 9/3.4 = 2.6

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    47/101

    Consideraciones Cache Multinivel

    Cache Primario Se enfoca en mnimo tiempo de hit

    Cache L-2 Se enfoca en un bajo ndice de miss para evitar

    accesos a la memoria principal

    El tiempo de hit tiene un menor impacto global

    Resultados Cache L-1 normalmente ms pequeo que un cache

    nico Tamao de bloque de L-1 ms pequeo que tamao

    de bloque de L-2

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    48/101

    Interacciones con CPU Avanzadas

    CPUs Out-of-order pueden ejecutar

    instrucciones durante un cache missAlmacenaje pendiente permanece en unidad

    load/store

    Instrucciones dependientes esperan en estaciones dereservacin Instrucciones independientes continan su ejecucin

    Efecto de los miss depende del flujo de datos

    del programa Mucho ms difcil de analizar Se utilizan simulaciones de sistemas

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    49/101

    Interacciones con Software

    Los misses dependen

    de los patrones deacceso a memoria Comportamiento del

    algoritmo

    Optimizacin delcompilador para accesosde memoria

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Memoria Virtual

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    50/101

    Memoria Virtual Se utiliza la memoria principal como un cache del

    almacenamiento secundario (discos) Manejado conjuntamente entre el hardware de la CPU y

    el Sistema Operativo (SO)

    Los programas comparten la memoria principal Cada uno obtiene un espacio virtual de direcciones

    privadas manteniendo sus cdigos y datos utilizadosfrecuentemente

    Protegidos de otros programas

    La CPU y el SO traducen las direcciones virtuales

    a direcciones fsicas El bloque MV es llamado una pgina La traduccin de MV fallida (miss) es llamada una

    pgina fallida (page fault)ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    51/101

    Traduccin de Direcciones

    Pginas de tamao fijo (p.e., 4K)

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    52/101

    Penalidad por Page Fault

    Cuando sucede un page fault, la pgina debeser buscada en el disco Toma millones de ciclos de reloj

    Manejado por el cdigo del SO

    Se trata de minimizar el ndice de page fault Ubicacin asociatividad completa

    Algoritmos de remplazo inteligentes

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    53/101

    Tabla de Paginas

    Almacena informacin de ubicacin

    Arreglo de entradas a la tabla de pginas, indexadopor el nmero de la pgina virtual Registro de tabla de pginas en la CPU apunta a

    tabla de pginas en la memoria fsica

    Si la pgina est presente en memoria El PTE (Page Table Entry) almacena el nmero dela pgina fsica

    Mas otros bits de estado (referenced, dirty, )

    Si la pgina no est presente El PTE puede referirse a la ubicacin en el espacioswap en el disco

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    54/101

    Traduccin utilizando una Tabla de Pginas

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    55/101

    Mapeo de Pginas al Almacenamiento

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    R l E it

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    56/101

    Remplazos y Escritura

    Para reducir el ndice de page fault, preferir

    remplazo Least-Recently Used (LRU) Bit reference (tambin llamado use bit) en PTE

    puesto en 1 cuando hay acceso a la pgina Peridicamente limpiado a 0 por el SO

    Una pgina con bit reference = 0, no ha sidoutilizada recientemente

    Escrituras en disco toman millones de ciclos Bloques completos, no ubicaciones individuales

    Write-through no es prctico Se utiliza write-back Bit dirty se activa en el PTE cuando la pgina es

    escritaICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Traduccin Rpida Utilizando un TLB

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    57/101

    Traduccin Rpida Utilizando un TLB

    Traduccin de direcciones pareciera que

    requieren referencias de memoria adicionales Uno para accesar el PTE Luego el acceso a memoria real

    Pero el acceso a las tablas de pgina tiene buena

    localidadAs se utiliza un cache rpido de PTEs en la CPU Llamado un Translation Look-aside Buffer (TLB) Se podra llamar mejor Translation Cache

    Tpico: 16512 PTEs, 0.51 ciclos por hit, 10100ciclos por miss, 0.01%1% ndice de miss

    Los misses podran ser manejados por hardware osoftware

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    58/101

    Traduccin Rpida Utilizando TLB

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    59/101

    Misses del TLB

    Si la pgina esta en memoria Cargar el PTE de la memoria y reintentar Podra ser manejada en hardware

    Puede ser complejo para estructuras de tablas de pginams complicadas

    O en softwareGenerar una excepcin (interrupcin) especial, conmanejador optimizado

    Si la pgina no esta en memoria (page fault) El SO maneja la bsqueda de la pgina y actualiza la

    tabla de pginas Luego reinicia la instruccin fallada

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    60/101

    Manejador de Miss del TLB

    Un miss del TLB indica Pgina presente, pero PTE no en el TLB

    Pgina no presente

    Se debe reconocer el miss del TLB antes que

    el registro de destino sea remplazado Generar excepcin

    Manejador copia PTE de memoria al TLB Entonces reinicia instruccin

    Si la pgina no est presente, ocurrir un page fault

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    61/101

    Manejador de Page Fault

    Utilizar la direccin virtual fallida para encontrar elPTE

    Localizar pgina en el disco

    Elegir la pgina a remplazar Si dirty, escribir primero a disco

    Leer pgina a memoria y actualizar tabla depginas

    Hacer que el proceso sea ejecutable nuevamente Reiniciar desde la instruccin fallida

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    TLB e Interaccin con el Cache (Intrinsity

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    62/101

    ( y

    FastMATH) Si tag del cache

    utiliza direccionesfsicas Necesita traducir antes

    de bsqueda en elcache

    Alternativa: utilizartag de direccionesvirtuales Complicaciones debido

    al aliasing Direcciones virtuales

    diferentes paradirecciones fsicascompartidas

    ICEE1012 Sistemas Digitales II

    TLB e Interaccin con el Cache (Intrinsity

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    63/101

    TLB e Interaccin con el Cache (Intrinsity

    FastMATH)

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Un TLB en la Jerarq a de la Memoria

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    64/101

    Un TLB en la Jerarqua de la Memoria

    CPUTLB

    LookupCache

    Main

    Memory

    VA PA miss

    hit

    data

    Trans-

    lation

    hit

    miss

    t t

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Combinaciones de Eventos en el TLB

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    65/101

    Combinaciones de Eventos en el TLB

    TLBPageTable

    Cache Posible? Bajo qu circunstancias?

    Hit Hit HitHit Hit Miss

    Miss Hit Hit

    Miss Hit Miss

    Miss Miss Miss

    Hit Miss Miss/

    HitMiss Miss Hit

    Combinaciones de Eventos en el TLB

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    66/101

    Combinaciones de Eventos en el TLB

    TLBPageTable

    Cache Posible? Bajo qu circunstancias?

    Hit Hit HitHit Hit Miss

    Miss Hit Hit

    Miss Hit Miss

    Miss Miss Miss

    Hit Miss Miss/

    HitMiss Miss Hit

    Silo que se quiere!

    Siaunque no se chequea la page tablesi se tiene un hit en el TLB

    SiTLB miss, PA en page table

    SiTLB miss, PA en page table, perodato no en el cache

    Sipage fault

    Imposibletraduccin del TLB no es posible

    si pgina no est presente en memoriaImposibledato no permitido en cache sila pgina no est en memoria

    P t i l M i Vi t l

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    67/101

    Proteccin con la Memoria Virtual

    Diferentes tareas pueden compartir partes de susespacios de direcciones virtuales Pero necesitan protegerse contra accesos errantes

    Requiere asistencia del SO

    Soporte de hardware para proteccin del SO Modo supervisor privilegiado (llamado tambin modo

    kernel o ejecutivo) a diferencia del modo usuario

    Instrucciones privilegiadas

    Tablas de pgina y otra informacin de estado sloaccesible en modo supervisor

    Excepcin; llamada de sistema (p.e., syscall en MIPS)

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Resumen Memoria Virtual

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    68/101

    El manejar la jerarqua de memoria entre la memoria principal esimportante dado el alto costo de las page faults. Para reducir losmisses: Pginas son grandes para aprovechar la localidad espacial y reducir el ndice

    de miss

    El mapeo entre las direcciones virtuales y las direcciones fsicas,implementado con una Tabla de Pgina, es completamente asociativo de talmanera que la pgina virtual puede ser ubicada en cualquier parte de la

    memoria principal El sistema operativo utiliza tcnicas como LRU y bit de referencia para elegir

    qu pgina remplazar

    El escribir en disco es muy caro, por ello se utiliza el esquema write-back. El dirty bit permite rastrear si la pgina cambi.

    Proteccin a los procesos: uso del SO para efectuar los cambios TLB acta como un cache para la traduccin de la Tabla de Pgina. Esto

    evita que el procesador tenga que accesar la TP, residente en memoria,para traducir cada acceso.

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Caractersticas Cuantitativas de la

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    69/101

    Caractersticas Cuantitativas de la

    Jerarqua de Memorias

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    L J d l M i

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    70/101

    La Jerarqua de la Memoria

    Principios comunes se aplican a todos losniveles de la jerarqua de la memoria Basado en conceptos de caching

    A cada nivel en la jerarqua Ubicacin de bloques

    Encontrar un bloque

    Remplazo en un miss Poltica de escritura

    ICEE1012 Sistemas Digitales II

    El uadro Global

    Semestre Primavera 2015

    Ubicacin de un Bloque

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    71/101

    Ubicacin de un Bloque

    Determinado por la asociatividad Mapeado directamente (asociativo de 1-via)

    Una alternativa por ubicacin

    Conjunto asociativo de n-vas nalternativas dentro de un conjunto

    Asociatividad completa Cualquier ubicacin

    Asociatividad ms alta reduce el ndice de miss

    Aumenta la complejidad, costo y tiempo de acceso

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Ubi i d Bl A i i id d

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    72/101

    Ubicacin de un Bloque y Asociatividad

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Encontrar un Bloque

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    73/101

    Encontrar un Bloque

    Caches de hardware Reduce comparaciones para reducir costos

    Memoria virtual Completa bsqueda de tabla hace factible laasociatividad completa

    Beneficio en reducir ndice de missICEE1012 Sistemas Digitales II

    Asociatividad Mtodo ubicacinComparaciones

    de tagMapeado directamente ndice 1

    Conjunto asociativo den-vas

    Activar ndice, luego buscarentradas en el conjunto

    n

    Completamente

    asociativa

    Buscar todas las entradas #entradas

    Completa bsqueda de tabla 0

    Semestre Primavera 2015

    R l

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    74/101

    Reemplazo

    Eleccin de entrada para reemplazar un miss Least recently used (LRU)

    Hardware complejo y costoso para alta asociatividad

    Aleatorio (Random) Cercano a LRU, ms fcil de implementar

    Memoria virtualAproximacin a LRU con soporte de hardware

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Poltica de Escritura

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    75/101

    Poltica de Escritura

    Write-throughActualiza ambos niveles: alto y bajo Simplifica el remplazo, pero puede requerir un buffer

    de escritura

    Write-backActualiza el nivel alto solamenteActualiza el nivel inferior cuando el bloque es

    remplazado Necesita mantener ms estados

    Memoria Virtual Slo es factible el write-back, dada la latencia de

    escritura en disco

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Fuentes de los Misses

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    76/101

    Fuentes de los Misses

    Misses obligados (compulsory misses tambin

    llamados cold start misses) Primer acceso a un bloque Misses de capacidad (capacity misses)

    Debido al tamao de cache finito

    Un bloque remplazado es accesado ms tardenuevamente

    Misses de conflicto (conflict misses tambinllamados collision misses)

    En un cache no completamente asociativo Debido a la competencia por entradas en el conjunto No ocurrira en un cache completamente asociativo

    del mismo tamao totalICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Pros y Contras en el Diseo del Cache

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    77/101

    ICEE1012 Sistemas Digitales II

    Pros y Contras en el Diseo del Cache

    Cambio de Diseo Efecto en el ndice

    de miss

    Efecto performance

    negativo

    Incrementar tamaocache

    Disminuye capacidadde misses

    Puede aumentar el tiempode acceso

    Incrementar

    asociatividad

    Disminuye conflicto

    de misses

    Puede aumentar el tiempo

    de accesoIncrementar tamaodel bloque

    Disminuyen missesobligados

    Aumenta la penalidad pormiss. Para bloques muygrande, puede aumentarel ndice de miss debido

    a la contaminacin

    Semestre Primavera 2015

    Maquinas Virtuales

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    78/101

    Maquinas Virtuales

    Computador principal (Host) emula sistemaoperativo y recursos de una mquina husped(guest)Aislacin mejorada de mltiples huspedes

    Evita problemas de seguridad y confiabilidad

    Agrega el compartir recursos Virtualizacin tiene algn impacto en la performance

    Factible con computadores modernos de alta performance

    Ejemplos: IBM VM/370 (tecnologa de los 70!) VMWare Microsoft Virtual PC

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Monitor Mquina Virtual (Virtual Machine

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    79/101

    q (

    Monitor, VMM)

    Mapea recursos virtuales a recursos fsicos Memoria, Dispositivos E/S, CPUs, etc. Cdigos del husped corren en mquina nativa

    en modo usuario

    Interrupciones (traps) a la VMM en instruccionesprivilegiadas y acceso a recursos protegidos

    SO husped puede ser diferente al SO delhost

    VMM maneja los dispositivos reales de E/S Emula dispositivos de E/S virtuales genricos para el

    husped

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Ejemplo: Virtualizacin del Timer

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    80/101

    Ejemplo: Virtualizacin del Timer

    En una mquina nativa, en interrupcin del timer SO suspende proceso actual, maneja la interrupcin,

    selecciona y reinicia el proceso siguiente

    Con VMM (Virtual Machine Monitor) VMM suspende la VM actual, maneja la interrupcin,

    selecciona y reinicia la siguiente VM

    Si una VM requiere interrupciones de un timer VMM emula un timer virtual

    Emula la interrupcin para la VM cuando ocurre lainterrupcin del timer fsico

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Soporte Conjunto de Instrucciones

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    81/101

    Soporte Conjunto de Instrucciones

    Modos Usuario y de Sistema

    Instrucciones privilegiadas slo disponibles enmodo sistema Trap al sistema si es ejecutado en modo usuario

    Todos los recursos fsicos slo accesiblesutilizando instrucciones privilegiadas Incluyendo tablas de pgina, controles de

    interrupciones, registros de E/S, etc.

    Renacimiento del soporte de virtualizacinAdaptacin de ISAs actuales (p.e., x86)

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Diseo Control del Cache

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    82/101

    Diseo Control del Cache

    Ejemplo caractersticas de un cache Mapeado directo, write-back, write allocate Tamao bloque: 4 palabras (16 bytes) Tamao cache: 16 KB (1024 bloques) Direcciones 32-bit al byte

    Valid bit y dirty bit por bloque Bloqueo del cache

    CPU espera hasta que el acceso esta completo

    ICEE1012 Sistemas Digitales II

    Tag Index Offset

    03491031

    4 bits10 bits18 bits

    Semestre Primavera 2015

    Seales de la Interface

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    83/101

    Seales de la Interface

    ICEE1012 Sistemas Digitales II

    CacheCPU Memoria

    Read/Write

    Vlido

    Direccin

    Write Data

    Read Data

    Ready

    32

    32

    32

    Read/Write

    Vlido

    Direccin

    Write Data

    Read Data

    Ready

    32

    128

    128

    Mltiples ciclospor acceso

    Semestre Primavera 2015

    Mquinas de Estado Finito (FSM)

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    84/101

    Mquinas de Estado Finito (FSM)

    Utilizar un FSM para los

    pasos de control de lasecuencia Definir estados, transiciones

    en cada flanco del reloj Estados son codificados en

    binario Estado actual guardado en un

    registro Estado siguiente

    = fn(estado actual,

    entradas actuales) Control de seales de salida

    = fo(estado actual). Mquina

    de MooreICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Controlador FSM del Cache

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    85/101

    Controlador FSM del Cache

    ICEE1012 Sistemas Digitales II

    Se podraparticionar enestados

    separadospara reducir el

    tiempo de

    ciclo del reloj

    Semestre Primavera 2015

    Problema de Coherencia del Cache

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    86/101

    Problema de Coherencia del Cache

    Supongamos dos ncleos de CPU compartiendo

    un espacio de direcciones fsicas Write-through en caches

    ICEE1012 Sistemas Digitales II

    Pasotiempo

    EventoCacheCPU A

    CacheCPU B

    Memoria

    0 0

    1 CPU A lee X 0 0

    2 CPU B lee X 0 0 0

    3 CPU A escribe 1 a X 1 0 1

    Semestre Primavera 2015

    Definicin de Coherencia

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    87/101

    Definicin de Coherencia

    Informalmente: Lectura retorna valor escrito msrecientemente

    Formalmente: P escribe X; P lee X (no interviene la escritura)lectura retorna valor escrito

    P1escribe X; P2lee X (suficientemente ms tarde)lectura retorna valor escrito c.f. CPU B lee X despus de paso 3 en el ejemplo

    P1escribe X, P2escribe X

    todos los procesadores ven las escrituras en elmismo orden Se termina con el mismo valor final para X

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Protocolos de Coherencia del Cache

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    88/101

    Protocolos de Coherencia del Cache

    Operaciones realizadas por los caches enmultiprocesadores para asegurar la coherencia Migracin de datos a los caches locales

    Reduce ancho de banda para la memoria compartida

    Replicacin de datos compartidos en lectura Reduce la contencin por accesos

    Protocolo Espiar (snooping) Cada cache monitorea bus de lecturas/escrituras

    Protocolos basados en directorios Caches y registros de memoria compartiendo

    estados de bloques en un directorio

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Inhabilitacin en Protocolo Snooping

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    89/101

    p g

    Cache obtiene acceso exclusivo a un bloque cuando

    ste va a ser escrito Difundir un mensaje de inhabilitacin en el bus Lecturas subsecuentes producen otros misses de cache

    Tomando control del cache entrega valores actualizados

    ICEE1012 Sistemas Digitales II

    Actividad CPU Actividad Bus CacheCPU A

    CacheCPU B

    Memoria

    0

    CPU A lee X Miss de cache para X 0 0

    CPU B lee X Miss de cache para X 0 0 0CPU A escribe 1 en X Inhabilitado para X 1 0

    CPU B lee X Miss de cache para X 1 1 1

    Semestre Primavera 2015

    Consistencia de la Memoria

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    90/101

    Cuando lo que se escribe es visto por otrosprocesadores

    Visto significa que una lectura retorna el valor escrito No puede ser instantneamente

    Supuestos Una escritura se completa slo cuando todos los

    procesadores la han visto Un procesador no vuelve a pedir otras escrituras con otros

    accesos

    Consecuencia P escribe en X entonces escribe en Y

    todos los procesadores que ven el nuevo Y tambin ven elnuevo X Los procesadores pueden volver a pedir lecturas, pero no

    escriturasICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Cache Multinivel On-Chip

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    91/101

    Cache Multinivel On Chip

    ICEE1012 Sistemas Digitales II

    Por ncleo: 32KB L1 I-cache, 32KB L1 D-cache, 512KB L2 cache

    Procesador Intel Nehalem de 4 ncleos

    Semestre Primavera 2015

    Cache Multinivel On-Chip

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    92/101

    p

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Procesador AMD Opteron X4 (Barcelona) de 4 ncleos

    Organizacin TLB de 2 Niveles

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    93/101

    g

    ICEE1012 Sistemas Digitales II

    Intel Nehalem AMD Opteron X4

    Direccionamiento

    Virtual

    48 bits 48 bits

    DireccionamientoFsico

    44 bits 48 bits

    Tamao Pgina 4KB, 2/4MB 4KB, 2/4MB

    TLB L1

    (por ncleo)

    I-TLB L1: 128 entradas para

    pginas pequeas, 7 por hebra (2)para paginas grandes

    D-TLB L2: 64 entradas parapginas pequeas, 32 para paginasgrandes

    Ambos 4 vas, remplazo LRU

    I-TLB L1: 48 entradas

    D-TLB L1: 48 entradasAmbos completamenteasociativos, remplazo LRU

    TLB L2(por ncleo)

    L2 TLB nico: 512 entradas4 vas, Remplazo LRU

    I-TLB L2: 512 entradasD-TLB L2: 512 entradas

    Ambos 4 vas, LRU round-robin

    Misses TLB Manejado en hardware Manejado en hardware

    Semestre Primavera 2015

    Organizacin Cache 3 Niveles

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    94/101

    ICEE1012 Sistemas Digitales II

    Intel Nehalem AMD Opteron X4

    Caches L1(por ncleo)

    I-cache L1: 32KB, bloques 64bytes, 4 vas, aprox. remplazoLRU, tiempo hit n/dD-cache L1: 32KB, bloques 64bytes, 8 vas, aprox. remplazoLRU, write-back/allocate,tiempo hit n/d

    I-cache L1: 32KB, bloques 64bytes, 2 vas, remplazo LRU,tiempo hit 3 ciclosD-cache L1: 32KB, bloques 64bytes, 2 vas, remplazo LRU,write-back/allocate, tiempo hit9 ciclos

    Cacheunificado L2(por ncleo)

    256KB, bloques 64 bytes, 8vas, aprox. remplazo LRU,write-back/allocate, tiempohit n/d

    512KB, bloques 64 bytes, 16 vas,aprox. remplazo LRU, write-back/allocate, tiempo hit n/d

    Cache

    unificado L3(compartido)

    8MB, bloques 64 bytes, 16

    vas, remplazo n/d, write-back/allocate, tiempo hitn/d

    2MB, bloques 64 bytes, 32 vas,

    bloque remplazo compartido porpocos ncleos, write-back/allocate, tiempo hit 32ciclos

    n/d: dato no disponibleSemestre Primavera 2015

    Evolucin Memorias Cache en MIPS

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    95/101

    Evolucin Memorias Cache en MIPS

    Ao CPU MHz Cache L1 Cache L2

    1985 R2000 16,7 No tiene No tiene

    1990 R3000 33Direct Mapped32KB

    No tiene

    1991 R4000 100Direct Mapped8KB

    Direct Mapped1MB

    1995 R10000 250 Two-Way 32KB Two-Way 4MB

    2001 R14000 600 Two-Way 32KB Two-Way 16MB

    2004 R16000A 800 Two-Way 64KB Two-Way 16MB

    2010 MIPS 32 1074K 1500 32KTamaosvariables

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Evolucin Memorias Cache en x86

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    96/101

    Procesador AoFrecuencia

    (MHz)

    Data Cache

    L1

    Instr. Cache

    L1Cache L2

    80386 1985 16-25 No tiene No tiene No tiene

    80486 1989 25-100 8KB nico Fuera del Chip

    Pentium 1993 60-300 8KB 8KB Fuera del Chip

    Pentium Pro 1995 150-200 8KB 8KB 256KB-1MB enMCM

    Pentium II 1997 233-450 16KB 16KB 256-512KB enCartridge

    Pentium III 1999 450-1400 16KB 16KB 256-512KB en elChip

    Pentium 4 2001 1400-3730 8-16KB 12KB OperationTrace

    256KB-2M en elChip

    Pentium M 2003 900-2130 32KB 32KB 1-2MB en el Chip

    Core Duo 2005 1500-2160 32KB/Core 32KB/Core 2MB compartidoen el Chip

    Core i7 2009 1600-3600 32KB/Core 32KB/Core 256KB/Core + 4-15MB L3

    Semestre Primavera 2015 ICEE1012 Sistemas Digitales II

    Ms Reducciones de Penalidad Miss

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    97/101

    Retornar primero palabra requerida

    Luego llenar hacia atrs resto del bloque Procesamiento non-blocking miss

    Hit bajo un miss: permite que hits procedan

    Miss bajo un miss: permite mltiples misses

    pendientes prefetch en hardware : instrucciones y datos

    Opteron X4: bank interleaved L1 D-cache

    Dos accesos concurrentes por ciclo Intel: poltica de inclusinen jerarqua de

    memoria. AMD: exclusinen L1 y L2ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Peligros

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    98/101

    g

    Byte vs. direccionamiento palabra Ejemplo: cache de 32 bytes mapeado directamente,

    bloques de 4 bytes Byte 36 mapea el bloque 1

    Palabra 36 mapea el bloque 4

    Ignorar que el sistema de la memoria afecta elescribir o generar cdigos Ejemplo: iterar sobre filas vs. columnas de arreglos

    Grandes zancadas resultan una pobre localidad

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Peligros

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    99/101

    g

    En multiprocesadores con cache L2 o L3

    compartido Menor asociatividad que ncleos resultan misses en

    conflicto

    Mas ncleos necesidad de aumentar asociatividad

    Utilizar AMAT para evaluar performance deprocesadores out-of-order Ignora efecto de accesos no bloqueados

    En vez de ello, evaluar performance por simulacin

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Peligros

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    100/101

    Extender el rango de direcciones utilizandosegmentos P.e., Intel 80286

    Pero un segmento no siempre es lo suficientementegrande

    Hace complicada la aritmtica del clculo de direcciones Implementar una VMM en una ISA no diseada

    para virtualizacin P.e., instrucciones no privilegiada accesando recursos

    de hardware Ya sea extender el ISA o requerir que el SO husped no

    utilice instrucciones problemticas

    ICEE1012 Sistemas Digitales IISemestre Primavera 2015

    Comentarios Finales

  • 7/24/2019 ICEE1012 Capitulo 5 La Memoria

    101/101

    Memorias rpidas son pequeas, memorias

    grandes son lentas Realmente queremos memorias rpidas y grandes Caching nos da esa ilusin

    Principio de localidad Programas utilizan frecuentemente una pequea parte

    de su espacio de memoria

    Jerarqua de la memoria Cache L1 cache L2 memoria DRAM disk

    Diseo del sistema de la memoria es crtico paralos multiprocesadores