SlideShare uma empresa Scribd logo
1 de 65
Sistemas de Memoria Cecilia Hernández
Organización de computadores ,[object Object],[object Object],[object Object],[object Object],[object Object],Control Sección Datos Memoria Procesador Entrada Salida
Desempeño de CPU vs. DRAM Performance ¡Mejorar sólo desempeño de CPU es insuficiente! µProc 60%/yr. (2X/1.5yr) DRAM 9%/año. (2X/10 años) 1 10 100 1000 1980 1981 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 DRAM CPU 1982 Procesador-Memoria Gap Desempeño: (crece 50% / año) “ Moore’s Law”
Jerarquía de memoria ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Control Datapath Memoria Secundaria (Disco) Procesador Registros Memoria Principal (DRAM) Cache L2 Datos, Inst. ~1 ~10,000,000 Velocidad (ciclos): ~1-5 ~100 ~100- 1000 40-400G Tamaño (bytes): ~32K ~512M-4G Cache L1 Inst Cache L1 Datos ~5-12 ~32K
Objetivos de jerarquía de memoria ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principio de localidad ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Address Space 0 2^n - 1 Probability of reference
Tecnología de memoria Flip-flops Elementos individuales Escritura sincronizada por reloj Banco de registros SRAM (RAM estática) Organizada como arreglo unidimensional Rápido acceso, costosa: 6 transistores/bit Memorias cache DRAM (RAM dinámica) Dinámica: necesita ser refrescada periódicamente (8 ms) Organizada como arreglo bidimensional: filas ycolumnas Acceso lento, densa: 1 transistor/bit Memoria principal Costo/velocidad: SRAM/DRAM ~ 8-16 RAM: Random Access Memory (memoria de acceso aleatorio) velocidad costo y densidad
Terminología ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Memorias cache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AMD Opteron L1 I-TLB, D-TLB: 32+8 entradas, asociativo L2 I-TLB, D-TLB: 512 entradas, 4-way L1 I-cache, D-cache: 64KB, 2-way L2 cache unificada: 1MB, 16-way
Pentium 4 L2 IC DC L2 cache unificada: 512K, 8-way L1 I-cache: Trace cache L1 D-cache: 8KB Para más info: www.inf.udec.cl/~chernand/arquitectura/links/Pentium4.pdf
Trace Cache ,[object Object]
Dual Core Processor Para mayor información www.inf.udec.cl/~chernand/ arquitectura/links/ IntelCoreDuo.pdf
Algunas preguntas-Alternativas de diseño ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Algunas respuestas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principio de funcionamiento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso básico de caches ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Acceso a cache para un load o búsqueda (fetch) de una instrucción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CPU dirección Cache Memoria Principal Como sabemos donde Buscar? Como sabemos si hay Acierto? Memoria principal sólo se accesa si hay  fallo acierto fallo Acceso a cache
Algunas preguntas-Alternativas de diseño ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Organización de cache genérica dirección dirección dirección dirección dirección dirección data data data data data Dirección o tag Generada por CPU Si dirección (tag) generada por CPU = dirección (tag) de una entrada cache, tenemos un acierto en cache; el data en entrada cache es buena Entrada en cache o bloque cache o linea cache
Identificación del bloque ,[object Object],[object Object],[object Object],[object Object]
Cache con Mapeo Directo data data data data data data tag tag tag tag tag tag Tag  indice  d Si tag (gen por dirección) = tag(entrada apuntada por índice en cache) y bit válido es on, tenemos acierto d  corresponde a número de bytes en el bloque indice  corresponde a número de bloques en cache tag  es lo que resta de direción Estos campos tienen el mismo tamaño Validez?
Identificación del bloque I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ej. dirección: 0x34500010 N = 8  M = 4  Tag: 24 bits Índice: 4 bits Ej: 0x1 Ej: 0x0 0 1 2 3 : Datos Byte 0 : Ej: 0x345000 0x34500 Bit Validez : 15 Byte 1 Byte 15 : Byte 16 Byte 17 Byte 31 : Byte 240 Byte 255 : Tag Índice 0 3 31 Tag Desplazamiento 7 Dirección de bloque 4 8
Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A54 0 0 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 24 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A54 0 1 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A54 1 0 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x000012 5 6 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x000011 1 2 ¡Fallo! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
Cómo verificar acierto ,[object Object],[object Object],[object Object],[object Object]
Ejemplo: cache de acceso directo ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Cache con acceso directo Cache Index 0 1 2 3 : Cache Data Byte 0 0 7 31 : Cache Tag Example: 0x3450 Ex: 0x01 0x3450 Stored as part of the cache “state” Valid Bit : 255 Byte 1 Byte 255 : Byte 256 Byte 257 Byte 511 : Byte 65026 Byte 65535 : Cache Tag Byte Select Ex: 0x00 15 Block address Dirección: 0x34500100 N = 16=> 64K  M = 8 =>256B Tag: 16 bits Índice: 8 bits
Cache completamente asociativo ,[object Object],[object Object],[object Object]
Identificación del bloque II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ej. dirección: 0x34500100 N = 8 M = 4  Tag: 28 bits : Datos Byte 0 0 3 31 : Tag V : Byte 1 Byte 15 : Byte 16 Byte 17 Byte 31 : Tag Desplazamiento Ej: 0x0 = = = = = Ej: 0x345001 4 0 1 15
Cache asociativo ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A540 0 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A540 1 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A541 0 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x0000125 6 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x0000111 2 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x002C051 0 ¡Fallo! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
Cómo verificar acierto ,[object Object],[object Object],[object Object],[object Object]
Identificación del bloque III ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ej. dirección: 0x34500100 N = 8 M = 4  K = 1 (2-way) Tag: 25 bits Datos Tag V : : : Cache Data Tag V : : : Mux 0 1 Sel1 Sel0 Dato Tag Dir = OR Hit Ej: 0x1 Ej: 0x0 Ej: 0x345000 | 0b Índice 0 3 31 Tag Desplazamiento 6 4 7 Tag Dir =
Cache asociativo por set (conjunto) ,[object Object],[object Object],[object Object],[object Object]
Cache asociativo por conjuntos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cache asociativa por conjuntos Cache Data Cache Block 0 Cache Tag Valid : : : Cache Index Mux 0 1 Sel1 Sel0 Cache Block Compare Adr Tag OR Hit Cache Data Cache Block 0 Cache Tag Valid : : : Compare
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25  bits 16 bytes Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x003A54|0b 0 0 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x003A54|0b 0 1 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x003A54|0b 1 1 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x000012|0b 5 6 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x000011|0b 1 2 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x002C05|0b 1 0 ¡Fallo! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
Cómo verificar acierto ,[object Object],[object Object]
Clasificación de fallos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Algunas preguntas-Alternativas de diseño ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ubicación del bloque I ,[object Object],[object Object],V Tag Datos Dirección 0x000012 5 6 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF Despl. Índice Tag 4 4 24
Ubicación del bloque II ,[object Object],[object Object],V Tag Datos Dirección 0x0000125 6 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF Despl. Tag 4 28
Ubicación del bloque III ,[object Object],[object Object],[object Object],Despl. Tag 4 27 Ind. 3 Dirección 0x000012 5 6 0x000012|0b 5 6 0x0 V Tag Datos 1 bit 27 bits 16 bytes Conjunto 0 Conjunto 1 0x1 0x2 0x3 0x4 0x5 0x6 0x7 V Tag Datos 1 bit 27 bits 16 bytes
Comparación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Alternativas de diseño a costo constante Mapeo Directo Asociativo por conjunto De N vias Asociativo completo Fallo obligado Tamaño Cache Fallo por capacidad Fallo por coherencia Grande Mediano Pequeño Mismo Mismo Mismo Fallo por conflicto Alto Mediano Cero Bajo Mediano Alto Mismo Mismo Mismo Tiempo de acierto aumenta con tamaño y asociatividad
Desempeño del cache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desempeño del cache Ej. 2 Tasa de acierto L2 = 99% Tiempo de acierto L2: 10 ciclos Transferencia bloque DRAM a L2: 250 ciclos Tiempo fallo(L1) = AMAT(L2) = 0.99 * 10 + 0.01 * 250 = 12.4 ciclos AMAT = 0.90 * 1 + 0.10 * 12.4 = 2.14 ciclos Ej. 3 Repetir para L1 asociativo por conjuntos (Tasa acierto = 97%, tiempo acierto = 2 ciclos) Sin L2: AMAT = 0.97*2 + 0.03*250 = 9.44 ciclos Con L2: AMAT = 0.97*2 + 0.03*12.4 = 2.312 ciclos

Mais conteúdo relacionado

Destaque

Teoria memorias cache
Teoria memorias cacheTeoria memorias cache
Teoria memorias cachecurrocordoba
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
Curso microprocesadores y_microcontroladores_unidad_1
Curso microprocesadores y_microcontroladores_unidad_1Curso microprocesadores y_microcontroladores_unidad_1
Curso microprocesadores y_microcontroladores_unidad_1ddarioooo
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Videoconferencias UTPL
 
Crear Cuenta Y Alta En Nirewiki
Crear Cuenta Y Alta En NirewikiCrear Cuenta Y Alta En Nirewiki
Crear Cuenta Y Alta En Nirewikivicente
 
Ville de Segré
Ville de SegréVille de Segré
Ville de SegréF. Ovies
 
Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...
Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...
Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...elmemorioso
 
Description personnelle (Paloma)
Description personnelle (Paloma)Description personnelle (Paloma)
Description personnelle (Paloma)olivier79
 
Exposition Toutain
Exposition ToutainExposition Toutain
Exposition ToutainSekko Cheng
 
Obra misionera de Rhema Ministerios entre los Mapuches
Obra misionera de Rhema Ministerios entre los MapuchesObra misionera de Rhema Ministerios entre los Mapuches
Obra misionera de Rhema Ministerios entre los Mapuchesrhemaapostolica
 
Des ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ France
Des ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ FranceDes ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ France
Des ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ FranceAbdullah Baspren
 

Destaque (20)

Teoria memorias cache
Teoria memorias cacheTeoria memorias cache
Teoria memorias cache
 
Redes
RedesRedes
Redes
 
3.introducción a las clases y objetos en c++
3.introducción a las clases y objetos en c++3.introducción a las clases y objetos en c++
3.introducción a las clases y objetos en c++
 
8.clases y objetos en c++
8.clases y objetos en c++8.clases y objetos en c++
8.clases y objetos en c++
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Animales domesticos
Animales domesticosAnimales domesticos
Animales domesticos
 
Curso microprocesadores y_microcontroladores_unidad_1
Curso microprocesadores y_microcontroladores_unidad_1Curso microprocesadores y_microcontroladores_unidad_1
Curso microprocesadores y_microcontroladores_unidad_1
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)
 
Crear Cuenta Y Alta En Nirewiki
Crear Cuenta Y Alta En NirewikiCrear Cuenta Y Alta En Nirewiki
Crear Cuenta Y Alta En Nirewiki
 
Ville de Segré
Ville de SegréVille de Segré
Ville de Segré
 
La Guyane
La GuyaneLa Guyane
La Guyane
 
Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...
Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...
Las ideas psicológicas en el racionalismo y el empirismo durante los siglos X...
 
Description personnelle (Paloma)
Description personnelle (Paloma)Description personnelle (Paloma)
Description personnelle (Paloma)
 
EDFU 3007
EDFU 3007EDFU 3007
EDFU 3007
 
Catosfera E Dans
Catosfera E DansCatosfera E Dans
Catosfera E Dans
 
Exposition Toutain
Exposition ToutainExposition Toutain
Exposition Toutain
 
Taller herramientas EBE 06
Taller herramientas EBE 06Taller herramientas EBE 06
Taller herramientas EBE 06
 
Obra misionera de Rhema Ministerios entre los Mapuches
Obra misionera de Rhema Ministerios entre los MapuchesObra misionera de Rhema Ministerios entre los Mapuches
Obra misionera de Rhema Ministerios entre los Mapuches
 
Des ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ France
Des ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ FranceDes ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ France
Des ambiguïtés suscitées par un chrétien perplexe ( Islam Q&A ) _ France
 
Livre sous develop et minabilité
Livre sous develop et minabilitéLivre sous develop et minabilité
Livre sous develop et minabilité
 

Semelhante a Memoria I

Capitulo 8 Memoria Principal
Capitulo 8 Memoria PrincipalCapitulo 8 Memoria Principal
Capitulo 8 Memoria Principallagm000
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosPablo Macon
 
ARQUITECTURA - JERARQUIA DE MEMORIAS
ARQUITECTURA - JERARQUIA DE MEMORIASARQUITECTURA - JERARQUIA DE MEMORIAS
ARQUITECTURA - JERARQUIA DE MEMORIASNoralma Yanez
 
U02 - Capítulo 4 EXPOSICIÓN teorica (1).pptx
U02  -  Capítulo 4 EXPOSICIÓN teorica (1).pptxU02  -  Capítulo 4 EXPOSICIÓN teorica (1).pptx
U02 - Capítulo 4 EXPOSICIÓN teorica (1).pptxGUIDOCHAMBILLACONDOR1
 
Almacenamiento y estructura de archivos
Almacenamiento y estructura de archivosAlmacenamiento y estructura de archivos
Almacenamiento y estructura de archivosgmelinita
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Lennin Caro
 
Análisis de datos con Apache Spark
Análisis de datos con Apache SparkAnálisis de datos con Apache Spark
Análisis de datos con Apache SparkEduardo Castro
 
Memoria ram
Memoria ramMemoria ram
Memoria rambriz_002
 
Trabajo modalidad práctica
Trabajo modalidad prácticaTrabajo modalidad práctica
Trabajo modalidad prácticaDianaYDiego
 

Semelhante a Memoria I (20)

Memoria I I
Memoria  I IMemoria  I I
Memoria I I
 
Capitulo 8 Memoria Principal
Capitulo 8 Memoria PrincipalCapitulo 8 Memoria Principal
Capitulo 8 Memoria Principal
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas Operativos
 
ARQUITECTURA - JERARQUIA DE MEMORIAS
ARQUITECTURA - JERARQUIA DE MEMORIASARQUITECTURA - JERARQUIA DE MEMORIAS
ARQUITECTURA - JERARQUIA DE MEMORIAS
 
Jerarquia de la memoria
Jerarquia de la memoriaJerarquia de la memoria
Jerarquia de la memoria
 
Ec6
Ec6Ec6
Ec6
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
ARQII_00-Repaso2.pdf
ARQII_00-Repaso2.pdfARQII_00-Repaso2.pdf
ARQII_00-Repaso2.pdf
 
U02 - Capítulo 4 EXPOSICIÓN teorica (1).pptx
U02  -  Capítulo 4 EXPOSICIÓN teorica (1).pptxU02  -  Capítulo 4 EXPOSICIÓN teorica (1).pptx
U02 - Capítulo 4 EXPOSICIÓN teorica (1).pptx
 
Memoria cache
Memoria cacheMemoria cache
Memoria cache
 
Almacenamiento y estructura de archivos
Almacenamiento y estructura de archivosAlmacenamiento y estructura de archivos
Almacenamiento y estructura de archivos
 
Previo4
Previo4Previo4
Previo4
 
4679923.ppt
4679923.ppt4679923.ppt
4679923.ppt
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011
 
Memorias
MemoriasMemorias
Memorias
 
Análisis de datos con Apache Spark
Análisis de datos con Apache SparkAnálisis de datos con Apache Spark
Análisis de datos con Apache Spark
 
Memoria ram
Memoria ramMemoria ram
Memoria ram
 
Trabajo modalidad práctica
Trabajo modalidad prácticaTrabajo modalidad práctica
Trabajo modalidad práctica
 
memoria cache
memoria cachememoria cache
memoria cache
 

Mais de Stefano Salvatori (20)

Salida a Volcán Copahue Febrero 2011
Salida a Volcán Copahue Febrero 2011Salida a Volcán Copahue Febrero 2011
Salida a Volcán Copahue Febrero 2011
 
Salida a Aguas Calientes abril 2011
Salida a Aguas Calientes abril 2011Salida a Aguas Calientes abril 2011
Salida a Aguas Calientes abril 2011
 
Sistema de capas
Sistema de capasSistema de capas
Sistema de capas
 
Enumeracion de Goedel
Enumeracion de GoedelEnumeracion de Goedel
Enumeracion de Goedel
 
Maquinas Abstractas
Maquinas AbstractasMaquinas Abstractas
Maquinas Abstractas
 
Intro
IntroIntro
Intro
 
Pipelining
PipeliningPipelining
Pipelining
 
I S A
I S AI S A
I S A
 
C P U Uniciclo
C P U  UnicicloC P U  Uniciclo
C P U Uniciclo
 
Mips1
Mips1Mips1
Mips1
 
Exc Int
Exc IntExc Int
Exc Int
 
DesempeñO
DesempeñODesempeñO
DesempeñO
 
Mips
MipsMips
Mips
 
Codificacion
CodificacionCodificacion
Codificacion
 
Multiciclo
MulticicloMulticiclo
Multiciclo
 
Hebras
HebrasHebras
Hebras
 
Semaforos
SemaforosSemaforos
Semaforos
 
Planificacion Procesos Gral
Planificacion Procesos GralPlanificacion Procesos Gral
Planificacion Procesos Gral
 
Memoria Soporte Hw
Memoria Soporte HwMemoria Soporte Hw
Memoria Soporte Hw
 
Hebras En Accion
Hebras En AccionHebras En Accion
Hebras En Accion
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (15)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Memoria I

  • 1. Sistemas de Memoria Cecilia Hernández
  • 2.
  • 3. Desempeño de CPU vs. DRAM Performance ¡Mejorar sólo desempeño de CPU es insuficiente! µProc 60%/yr. (2X/1.5yr) DRAM 9%/año. (2X/10 años) 1 10 100 1000 1980 1981 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 DRAM CPU 1982 Procesador-Memoria Gap Desempeño: (crece 50% / año) “ Moore’s Law”
  • 4.
  • 5.
  • 6.
  • 7. Tecnología de memoria Flip-flops Elementos individuales Escritura sincronizada por reloj Banco de registros SRAM (RAM estática) Organizada como arreglo unidimensional Rápido acceso, costosa: 6 transistores/bit Memorias cache DRAM (RAM dinámica) Dinámica: necesita ser refrescada periódicamente (8 ms) Organizada como arreglo bidimensional: filas ycolumnas Acceso lento, densa: 1 transistor/bit Memoria principal Costo/velocidad: SRAM/DRAM ~ 8-16 RAM: Random Access Memory (memoria de acceso aleatorio) velocidad costo y densidad
  • 8.
  • 9.
  • 10. AMD Opteron L1 I-TLB, D-TLB: 32+8 entradas, asociativo L2 I-TLB, D-TLB: 512 entradas, 4-way L1 I-cache, D-cache: 64KB, 2-way L2 cache unificada: 1MB, 16-way
  • 11. Pentium 4 L2 IC DC L2 cache unificada: 512K, 8-way L1 I-cache: Trace cache L1 D-cache: 8KB Para más info: www.inf.udec.cl/~chernand/arquitectura/links/Pentium4.pdf
  • 12.
  • 13. Dual Core Processor Para mayor información www.inf.udec.cl/~chernand/ arquitectura/links/ IntelCoreDuo.pdf
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. CPU dirección Cache Memoria Principal Como sabemos donde Buscar? Como sabemos si hay Acierto? Memoria principal sólo se accesa si hay fallo acierto fallo Acceso a cache
  • 20.
  • 21. Organización de cache genérica dirección dirección dirección dirección dirección dirección data data data data data Dirección o tag Generada por CPU Si dirección (tag) generada por CPU = dirección (tag) de una entrada cache, tenemos un acierto en cache; el data en entrada cache es buena Entrada en cache o bloque cache o linea cache
  • 22.
  • 23. Cache con Mapeo Directo data data data data data data tag tag tag tag tag tag Tag indice d Si tag (gen por dirección) = tag(entrada apuntada por índice en cache) y bit válido es on, tenemos acierto d corresponde a número de bytes en el bloque indice corresponde a número de bloques en cache tag es lo que resta de direción Estos campos tienen el mismo tamaño Validez?
  • 24.
  • 25. Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
  • 26. Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A54 0 0 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
  • 27. Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 24 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A54 0 1 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
  • 28. Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A54 1 0 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
  • 29. Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x000012 5 6 ¡Acierto! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
  • 30. Ejemplo: Cache de traducción directa Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 1 bit 24 bits 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x000011 1 2 ¡Fallo! 0x000012 1 0x003A54 1 0x003A54 1 Despl. Índice Tag 4 4 24
  • 31.
  • 32.
  • 33. Ejemplo: Cache con acceso directo Cache Index 0 1 2 3 : Cache Data Byte 0 0 7 31 : Cache Tag Example: 0x3450 Ex: 0x01 0x3450 Stored as part of the cache “state” Valid Bit : 255 Byte 1 Byte 255 : Byte 256 Byte 257 Byte 511 : Byte 65026 Byte 65535 : Cache Tag Byte Select Ex: 0x00 15 Block address Dirección: 0x34500100 N = 16=> 64K M = 8 =>256B Tag: 16 bits Índice: 8 bits
  • 34.
  • 35.
  • 36.
  • 37. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 38. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A540 0 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 39. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A540 1 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 40. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x003A541 0 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 41. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x0000125 6 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 42. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x0000111 2 ¡Acierto! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 43. Ejemplo: Cache asociativo Cache de 16 bloques, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A540 0 0x003A540 1 0x003A541 0 0x0000125 6 0x0000111 2 0x002C051 0 1 bit 28 bits Despl. Tag 4 28 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x002C051 0 ¡Fallo! 0x0000111 1 0x0000125 1 0x003A541 1 0x003A540 1
  • 44.
  • 45.
  • 46.
  • 47.
  • 48. Cache asociativa por conjuntos Cache Data Cache Block 0 Cache Tag Valid : : : Cache Index Mux 0 1 Sel1 Sel0 Cache Block Compare Adr Tag OR Hit Cache Data Cache Block 0 Cache Tag Valid : : : Compare
  • 49. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 50. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x003A54|0b 0 0 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 51. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x003A54|0b 0 1 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 52. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x003A54|0b 1 1 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 53. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x000012|0b 5 6 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 54. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x000011|0b 1 2 ¡Acierto! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 55. Ejemplo: Cache asociativo por conjuntos Cache de 16 bloques, 2-way, líneas de 16 bytes, direcciones de 32 bits V Tag Datos Traza de direcciones 0x003A54 0 0 0x003A54 0 1 0x003A54 1 0 0x000012 5 6 0x000011 1 2 0x002C05 1 0 1 bit 25 bits Despl. Tag 4 25 16 bytes 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Ind. 3 V Tag Datos 1 bit 25 bits 16 bytes 0x002C05|0b 1 0 ¡Fallo! Línea 0 Línea 1 0x000012 | 0b 1 0x003A54 | 0b 1 0x003A54 | 0b 1 0x000011 | 0b 1
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63. Alternativas de diseño a costo constante Mapeo Directo Asociativo por conjunto De N vias Asociativo completo Fallo obligado Tamaño Cache Fallo por capacidad Fallo por coherencia Grande Mediano Pequeño Mismo Mismo Mismo Fallo por conflicto Alto Mediano Cero Bajo Mediano Alto Mismo Mismo Mismo Tiempo de acierto aumenta con tamaño y asociatividad
  • 64.
  • 65. Desempeño del cache Ej. 2 Tasa de acierto L2 = 99% Tiempo de acierto L2: 10 ciclos Transferencia bloque DRAM a L2: 250 ciclos Tiempo fallo(L1) = AMAT(L2) = 0.99 * 10 + 0.01 * 250 = 12.4 ciclos AMAT = 0.90 * 1 + 0.10 * 12.4 = 2.14 ciclos Ej. 3 Repetir para L1 asociativo por conjuntos (Tasa acierto = 97%, tiempo acierto = 2 ciclos) Sin L2: AMAT = 0.97*2 + 0.03*250 = 9.44 ciclos Con L2: AMAT = 0.97*2 + 0.03*12.4 = 2.312 ciclos