SlideShare una empresa de 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

Más contenido relacionado

Destacado

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
 

Destacado (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é
 

Similar 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
 

Similar 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
 

Más 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

herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxCsarNlsonMrquezContr
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.241534381
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .itzyrivera61103
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blogManuel Diaz
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxcj12paz
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).jcaballerosamayoa
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...dramosbrise1403
 

Último (20)

herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 

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