Optimizaciones avanzadas de memoria caché

Documentos relacionados
Ejercicios de jerarquía de memoria

Organización lógica Identificación de bloque

Explotación del paralelismo a nivel de instrucción

Memoria. Organización de memorias estáticas.

Ejercicios Jerarquía de Memoria

Caché. Matías Barbeito Organización del computador 1 2 cuatrimestre 2011

Organización del Computador 1 Memoria Cache

Memoria Cache. Departamento de Arquitectura de Computadores

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Tema 6 (II) Jerarquía de Memoria

FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II

Arquitectura de Computadores II Clase #7

Sincronización. Arquitectura de Computadores

Memorias RAM. Basilio B. Fraguela Rodríguez. Copyright Basilio B. Fraguela 2006

Virtualización y jerarquía de memoria

Plataformas de soporte computacional: arquitecturas avanzadas,

Jerarquía de memoria - Motivación

6. PROCESADORES SUPERESCALARES Y VLIW

Arquitectura de Computadoras para Ingeniería

ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. Problemas de Gestión de Memoria.

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Ejercicios del tema 5. Jerarquía de de Memoria

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Memoria Virtual. Memoria Virtual

ARQUITECTURA DE COMPUTADORAS

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Tema V Generación de Código

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

Tema 5: Memorias. Espacio reservado para notas del alumno

Recopilación presentada por 1

Espacio de direcciones de un proceso

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Ingeniería de Computadores I Primera Actividad Calificable

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

Procesadores de lenguaje Tema 6 La tabla de símbolos

Cuando el lenguaje si importa

Organización de Computadoras. Clase 10

Organización del Computador 1 Memorias

Qué es un Microcontrolador?

Definición de Memoria

ELEMENTOS HARDWARE DEL ORDENADOR. Memoria Principal (RAM)

Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Proyecto #1 (Simulación de caché)

MEMORIA EJERCICIO 1 EJERCICIO 2

La memoria del ordenador

Resolución de los Ejercicios de la Hoja 4

MEMORIA CACHÉ. Componentes principales de un ordenador

EVOLUCIÓN DE LOS PROCESADORES

Introducción a la arquitectura de computadores

Tema: Microprocesadores

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Ejercicios de Arquitectura de Computadoras

Unidad I: Organización del Computador. Ing. Marglorie Colina

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores

Modelo de aplicaciones CUDA

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

Organización del Computador I. Introducción e Historia

3 - Arquitectura interna de un up

Administración de memoria: Funciones y operaciones

Arquitectura de Computadores. Tema 15. Buses

SISTEMAS OPERATIVOS Arquitectura de computadores

Computadora y Sistema Operativo

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

Diseño del procesador MIPS R2000

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

PROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes ,

21. Jerarquía de Memoria. Conceptos básicos

Arquitectura de Computadores. Apellidos, Nombre:

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

FUNCIONAMIENTO DEL ORDENADOR

Lenguaje binario. Código ASCII. Medidas de la información

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Tema N 12: Sistema de Memoria: Cache

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela

Arquitecturas vectoriales, SIMD y extensiones multimedia

1. Objetivo y evolución de los procesadores ILP.

MINISTERIO DE EDUCACIÓN PÚBLICA IPEC DE SANTA BÁRBARA MANTENIMIENTO DE EQUIPO DE COMPUTACIÓN. Memoria Principal RAM Memoria de acceso aleatorio

Procesador Intel Core 2 Extreme de 4 núcleos Traducción de Textos Curso 2007/2008

Tema 1: Introducción a los Sistemas Empotrados

Simulación de sistemas de memoria con Xcache32

Fundamentos de programación JAVA

Tecnologías y Arquitecturas

ELO311 Estructuras de Computadores Digitales. Memoria

Introducción Composición Caracteristicas Jerarquía Tipos Memoria Diseño. Cache. Memorias

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

GUÍA DOCENTE Arquitecturas Avanzadas de Computadores

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Arquitectura de Computadores II Clase #6

Unidad 2: Gestión de Memoria

}Transparencias de clase en

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

Qué es un programa informático?

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Lusitania. Pensando en Paralelo. César Gómez Martín

Transcripción:

de memoria caché Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 1/44

Introducción 1 Introducción 2 3 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 2/44

Introducción Por qué aparece la memoria caché? Para vencer el muro de memoria (memory wall). 1980 2010: Mejora de rendimiento de procesadores mayor (órdenes de magnitud) que de la memoria. 2005... : Situación agravada por arquitecturas multi-core. Para reducir el tiempo de acceso a datos e instrucciones. Aproximar tiempo de acceso a memoria al tiempo de acceso a la caché. Ofrecer la ilusión de tamaño de la caché aproximando al tamaño de memoria principal. Basado en el principio de localidad. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 3/44

Introducción Tiempo medio de acceso a memoria 1 nivel. t = t h (L1) + m L1 t p (L1) 2 niveles. t = t h (L1) + m L1 (t h (L2) + m L2 t p (L2)) 3 niveles. t = t h (L1)+m L1 (t h (L2) + m L2 (t h (L3) + m L3 t p (L3)))... cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 4/44

Introducción Optimizaciones básicas 1. Aumentar el tamaño de bloque. 2. Aumentar el tamaño de caché. 3. Incrementar la asociatividad. 4. Introducir cachés multinivel. 5. Dar prioridad a fallos de lectura. 6. Evitar traducción de direcciones durante el indexado. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 5/44

Introducción Métricas a reducir: Tiempo de búsqueda (hit time). Tasa de fallos (miss rate). Penalización de fallos (miss penalty). Métricas a aumentar: Ancho de banda de caché (cache bandwidth). Observación: Todas las optimizaciones avanzadas buscan mejorar alguna de estas métricas. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 6/44

1 Introducción 2 3 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 7/44

Cachés pequeñas y simples 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 8/44

Cachés pequeñas y simples Cachés pequeñas Proceso de búsqueda: Selección de línea utilizando índice. Lectura de etiqueta de línea. Comparación con etiqueta de dirección. El tiempo de búsqueda se incrementa con el tamaño de la caché. Una caché más pequeña permite: Hardware de búsqueda más simple. La caché cabe en el chip del procesador. Una caché pequeña mejora el tiempo de búsqueda. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 9/44

Cachés pequeñas y simples Cachés simples Simplificación de la caché. Uso de mecanismos de correspondencia lo más sencillo posibles. Correspondencia directa: Se permite paralelizar la comparación de la etiqueta con la transmisión del dato. Observación: La mayoría de los procesadores modernos se centran más en usar cachés pequeñas que en su simplificación. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 10/44

Cachés pequeñas y simples Intel Core i7 Caché L1 (1 por núcleo) 32 KB instrucciones 32 KB datos Latencia: 3 ciclos Asociativa 4(i), 8(d) vías. Caché L2 (1 por núcleo) 256 KB Latencia: 9 ciclos Asociativa 8 vías. Caché L3 (compartida) 8 MB Latencia: 39 ciclos Asociativa 16 vías. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 11/44

Predicción de vía 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 12/44

Predicción de vía Predicción de vía Problema: Correspondencia directa rápida pero muchos fallos. Asociativa por conjuntos menos fallos pero más conjuntos (más lenta). Predicción de vía Se almacenan bits adicionales para predecir la vía que se seleccionará en el próximo acceso. Acceso adelantado al bloque y comparación con una única etiqueta. Si hay fallo se compara con las demás etiquetas. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 13/44

Acceso segmentado a la caché 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 14/44

Acceso segmentado a la caché Acceso segmentado a la caché Objetivo: Aumentar el ancho de banda de la caché. Solución: Segmentar el acceso a la caché en varios ciclos de reloj. Efectos: Se puede reducir el ciclo de reloj. Se puede iniciar un acceso en cada ciclo de reloj. Se aumenta el ancho de banda de la caché. Se aumenta la latencia. Efecto positivo en procesadores superescalares. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 15/44

Cachés no bloqueantes 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 16/44

Cachés no bloqueantes Cachés no bloqueantes Problema: Fallo de caché genera una parada (stall) hasta que se obtiene el bloque. Solución: Ejecución fuera de orden. Pero: Cómo se accede a la caché mientras se resuelve el fallo? Acierto durante fallo: Permitir accesos con acierto mientras se espera. Reduce la penalización del fallo. Acierto durante fallos / Fallo durante fallo: Permitir fallos solapados. Necesita memoria multi-canal. Altamente complejo. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 17/44

Cachés multi-banco 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 18/44

Cachés multi-banco Cachés multi-banco Objetivo: Permitir accesos simultáneos a distintas posiciones de la caché. Solución: Dividir la memoria en bancos independientes. Efecto: Aumenta el ancho de banda. Ejemplo: Sun Niagara L2: 4 bancos cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 19/44

Cachés multi-banco Ancho de banda Para que el ancho de banda mejore hace falta que los accesos queden distribuidos entre los bancos. Esquema sencillo: Entrelazado secuencial. Reparto secuencial de bloques entre los bancos. Dir. bloque Banco 0 Dir. bloque Banco 1 Dir. bloque Banco 2 Dir. bloque Banco 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 20/44

Palabra crítica primero y reinicio temprano 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 21/44

Palabra crítica primero y reinicio temprano Palabra crítica primero y reinicio temprano Observación: Normalmente el procesador necesita una única palabra para poder proseguir. Solución: No esperar a recibir todo el bloque de memoria. Alternativas: Palabra crítica primero: El bloque se recibe reordenado con la palabra que necesita el procesador al principio. Reinicio temprano: El bloque se recibe sin reordenar. En cuanto se recibe la palabra de interés la CPU prosigue. Efectos: Depende del tamaño de bloque Mejor más grande. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 22/44

Mezclas en búfer de escritura 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 23/44

Mezclas en búfer de escritura Búfer de escritura Un búfer de escritura permite reducir la penalización de fallo. Cuando se ha escrito en el búfer el procesador da la escritura por efectuada. Escrituras simultáneas en memoria son más eficientes que una única escritura. Usos: Escritura inmediata (write-through): En todas las escrituras. Post escritura (write-back): Cuando se remplaza un bloque. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 24/44

Mezclas en búfer de escritura Mezclas en búfer de escritura Si el búfer contiene bloques modificados, se comprueban las direcciones para ver si se puede sobrescribir. Efectos: Reduce el número de escrituras en memoria. Reduce paradas debidas a que el búfer esté lleno. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 25/44

Mezclas en búfer de escritura Mezclas en buffer de escritura Write address 100 108 116 124 V 1 1 1 1 M[100] M[108] M[116] M[124] V 0 0 0 0 V 0 0 0 0 V 0 0 0 0 Write address 100 V 1 1 1 1 V M[100] 0 0 0 0 V M[108] 0 0 0 0 V M[116] 0 0 0 0 M[124] cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 26/44

Optimizaciones del compilador 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 27/44

Optimizaciones del compilador Optimizaciones del compilador Objetivo: Generar código que provoque menos fallos de instrucciones y datos. Instrucciones: 1. Reordenación de procedimientos. 2. Alinear bloques de código al inicio de bloques de caché. 3. Linearización de saltos. Datos: 1. Fusión de arrays. 2. Intercambio de bucles. 3. Fusión de bucles. 4. Acceso por bloques. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 28/44

Optimizaciones del compilador Reordenación de procedimientos Objetivo: Reducir los fallos por conflicto debidos a que dos procedimientos coincidentes en el tiempo se corresponden con la misma línea de caché. Técnica: Reordenar los procedimientos en memoria. P1 P1 P1 P1 P2 P2 P2 P2 P3 P3 P3 P3 P1 P1 P1 P1 P3 P3 P3 P3 P2 P2 P2 P2 cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 29/44

Optimizaciones del compilador Alineación de bloques básicos Definición: Un bloque básico es un conjunto de instrucciones que se ejecuta secuencialmente (no contiene saltos). Objetivo: Reducir la posibilidad de fallos de caché para código secuencial. Técnica: Hacer coincidir la primera instrucción de un bloque básico con la primera palabra de una línea de caché. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 30/44

Optimizaciones del compilador Linearización de saltos Objetivo: Reducir los fallos de caché debidos a saltos condicionales. Técnica: Si el compilador sabe que es probable que se tome un salto, puede cambiar el sentido de la condición en intercambiar los bloques básicos de las dos alternativas. Algunos compiladores definen extensiones para dar pistas al compilador. Ejemplo: gcc ( likely ). cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 31/44

Optimizaciones del compilador Fusión de arrays Arrays paralelos vector<int> key; vector<int> val ; for ( int i=0;i<max;++i) { cout << key[i ] << ", " << val [ i ] << endl; } Array fusionado struct entry { int key; int val ; }; vector<entry> v; for ( int i=0;i<max;++i) { cout << v[ i ]. key << ", " << v[ i ]. val << endl; } Reducción de conflictos. Mejora de localidad espacial. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 32/44

Optimizaciones del compilador Intercambio de bucles Acceso con saltos for ( int j=0; j<100; ++j) { for ( int i=0; i<5000; ++i) { v[ i ][ j ] = k v[ i ][ j ]; } } Accesos secuenciales for ( int i=0; i<5000; ++i) { for ( int j=0; j<100; ++j) { v[ i ][ j ] = k v[ i ][ j ]; } } Objetivo: Mejorar localidad espacial. Dependiente del modelo de almacenamiento vinculado al lenguaje de programación. FOTRAN versus C. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 33/44

Optimizaciones del compilador Fusión de bucles Bucles separados for ( int i=0; i<rows; ++i) { for ( int j=0; j<cols; ++j) { a[ i ][ j ] = b[ i ][ j ] c[ i ][ j ]; } } for ( int i=0; i<rows; ++i) { for ( int j=0; j<cols; ++j) { d[ i ][ j ] = a[ i ][ j ] + c[ i ][ j ]; } } Bucles fusionados for ( int i=0; i<rows; ++i) { for ( int j=0; j<cols; ++j) { a[ i ][ j ] = b[ i ][ j ] c[ i ][ j ]; d[ i ][ j ] = a[ i ][ j ] + c[ i ][ j ]; } } Objetivo: Mejorar localidad temporal. Cuidado: Puede reducir localidad espacial. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 34/44

Optimizaciones del compilador Acceso por bloques Producto original for ( int i=0; i<size; ++i) { for ( int j=0; j<size; ++j) { r=0; for ( int k=0; k<size; ++k) { r+= b[i ][ k] c[k ][ j ]; } a[ i ][ j ] = r ; } } Producto con acceso por bloques for ( bj=0; bj<size; bj+=bsize) { for (bk=0; bk<size; bk +=bs) { for ( i=0; i<size; ++i) { for ( j=bj; j<min(bj+bsize,size); ++j) { r=0; for (k=bk;k<min(bk+bsize,size); ++k) { r +=b[i ][ k] c[k ][ j ]; } a[ i ][ j ] += r; } } } } bsize: Factor de bloque. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 35/44

Lectura adelantada hardware 2 Cachés pequeñas y simples Predicción de vía Acceso segmentado a la caché Cachés no bloqueantes Cachés multi-banco Palabra crítica primero y reinicio temprano Mezclas en búfer de escritura Optimizaciones del compilador Lectura adelantada hardware cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 36/44

Lectura adelantada hardware Lectura adelantada de instrucciones Observación: Las instrucciones presentan alta localidad espacial. Instruction prefetching: Lectura adelantada de instrucciones. Lectura de dos bloques en caso de fallo. Bloque que provoca el fallo. Bloque siguiente. Ubicación: Bloque que provoca el fallo caché de instrucciones. Bloque siguiente búfer de instrucciones. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 37/44

Lectura adelantada hardware Lectura adelantada de datos Ejemplo: Pentium 4. Data prefetching: Permite lectura adelantada de páginas de 4KB a caché L2. Se invoca lectura adelantada si: 2 fallos en L2 debidos a una misma página. Distancia entre fallos menor que 256 bytes. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 38/44

Conclusión 1 Introducción 2 3 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 39/44

Conclusión Resumen (I) Cachés pequeñas y simples: Mejora: Tiempo de acierto. Empeora: Tasa de fallos. Complejidad: Muy baja. Observación: Ampliamente usada. Predicción de vía: Mejora: Tiempo de acierto. Complejidad: Baja. Observación: Usada en Pentium 4. Acceso segmentado a la caché: Mejora: Tiempo de acierto. Empeora: Ancho de banda. Complejidad: Baja. Observación: Ampliamente usada. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 40/44

Conclusión Resumen (II) Cachés no bloqueantes: Mejora: Ancho de banda y penalización por fallo. Complejidad: Muy alta. Observación: Ampliamente usada. Cachés multi-banco: Mejora: Ancho de banda. Complejidad: Baja. Observación: Usada en L2 de Intel i7 y Cortex A8. Palabra crítica primero y reinicio temprano: Mejora: Penalización por fallo. Complejidad: Alta Observación: Ampliamente usada. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 41/44

Conclusión Resumen (III) Mezclas en búfer de escritura: Mejora: Penalización por fallo. Complejidad: Baja. Observación: Ampliamente usada. Optimizaciones del compilador: Mejora: Tasa de fallos. Complejidad: Baja para HW. Observación: El desafío está en el software. Lectura adelantada hardware: Mejora: Penalización por fallo y tasa de fallos. Complejidad: Muy alta. Observación: Más común para instrucciones que datos. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 42/44

Conclusión Referencias Computer Architecture. A Quantitative Approach 5th Ed. Hennessy and Patterson. Secciones: 2.1, 2.2. Ejercicios recomendados: 2.1, 2.2, 2.3, 2.8, 2.9, 2.10, 2.11, 2.12 cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 43/44

Conclusión de memoria caché Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 44/44