DISCA ARQUITECTURA DE COMPUTADORES PRÁCTICA 10 – 3ª parte: “Políticas de reemplazo de bloques en Memoria Caché” Arquitectura de Computadores – Práctica 10 – 3ª parte. Reemplazo de bloques en Memoria Caché 1 DISCA • ASPECTOS TRATADOS: Memoria caché y algoritmos de reemplazo. • MATERIAL NECESARIO: Ordenador con acceso a internet. • CONCEPTOS NECESARIOS: Memoria caché y algoritmos de reemplazo. Conocimientos de inglés. • DURACIÓN ESTIMADA: 60’ • DESCRIPCIÓN: A través de una página web se accederá a un simulador de memoria caché a través del cual se podrán evaluar las diferentes políticas de reemplazo configuradas como parámetro por el usuario. Arquitectura de Computadores – Práctica 10 – 3ª parte. Reemplazo de bloques en Memoria Caché 2 DISCA PASOS: 1) Abre el navegador de internet y conéctate a la página web http://www.ecs.umass.edu/ece/koren/architecture/. Si necesitas traducir algunas de las palabras del inglés puedes utilizar la web http://wordreference.com/. El aspecto de la página es el que sigue: 2) Pulsando sobre la opción de Cache Demonstrator accede al menú del simulador de memoria caché: Arquitectura de Computadores – Práctica 10 – 3ª parte. Reemplazo de bloques en Memoria Caché 3 DISCA 3) Entra en la opción de Block Replacement Simulator que da acceso al simulador de algoritmos de reemplazo de bloques de la memoria caché. Este simulador nos permitirá comprobar cómo se reemplazan y los bloques en la caché, dependiendo del tipo de algoritmo seleccionado. El simulador tiene el siguiente aspecto: 4) Antes de empezar con las simulaciones, haz click sobre el botón de ayuda y lee atentamente las definiciones que aquí se presentan. Hay que tener en cuenta las siguientes consideraciones: 9 Cache Size: Tamaño (en bloques) de la memoria caché. 9 El tamaño del bloque se supone fijo y de valor 1 palabra. 9 Sets: número de conjuntos de bloques en caché. ¡No confundir con el grado de asociatividad! 9 Tal y como se comenta en la ayuda (cuando se habla de Size Blocks se refiere a Cache Size), parece lógico pensar que: − Si Cache Size = Sets Æ Correspondencia directa. − Si Cache Size > Sets Æ Correspondencia asociativa por conjuntos. − Si Sets = 1 Æ Correspondencia completamente asociativa. 9 La secuencia de búsqueda debe ser introducida manualmente, separando los valores (decimales o hexadecimales) con espacios. 9 ¿Qué se recomienda en el último párrafo de la ayuda (en azul oscuro y negrita)? Arquitectura de Computadores – Práctica 10 – 3ª parte. Reemplazo de bloques en Memoria Caché 4 DISCA 5) Simulación nº 1: Algoritmo FIFO 9 Configura el sistema de memoria caché con los siguientes parámetros (parámetros por defecto), y pulsa el botón Show Cache. − − − − Tamaño de caché: Nº de conjuntos: Algoritmo de reemplazo: Secuencia de direcciones (dec): 4B 1 (completamente asociativa) FIFO 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. A la vista de los resultados obtenidos, contesta a las siguientes cuestiones: 9 Dado el tamaño de bloque definido, ¿a qué bloques o páginas se está accediendo con la serie de direcciones propuesta? 9 ¿Qué bloques aparecen en memoria caché, y en qué marcos de memoria, al final del proceso? 9 ¿Qué significado tiene el término Compulsory Miss? 9 ¿Qué significado tiene el término Capacity Miss? 9 Dibuja la secuencia de reemplazos en caché que se ha dado a lo largo del proceso. 9 ¿Qué porcentaje de acierto y de fallo muestra el simulador con esta configuración? ¿estás de acuerdo con dichos porcentajes? 9 Repite la simulación cambiando únicamente en tamaño de la caché a 8 bloques.¿Se mejoran las prestaciones del sistema? 6) Simulación nº 2: Algoritmo LRU 9 Configura el sistema de memoria caché con los siguientes parámetros (parámetros por defecto), y pulsa el botón Show Caché. − − − − Tamaño de caché: Nº de conjuntos: Algoritmo de reemplazo: Secuencia de direcciones (dec): 4B 1 (completamente asociativa) LRU 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. A la vista de los resultados obtenidos, contesta a las siguientes cuestiones: 9 ¿Qué bloques aparecen en memoria caché, y en qué marcos de memoria, al final del proceso? 9 Dibuja la secuencia de reemplazos en caché que se ha dado a lo largo del proceso. 9 ¿Qué porcentaje de acierto y de fallo muestra el simulador con esta configuración? ¿estás de acuerdo con dichos porcentajes? 9 Utilizando el algoritmo de reemplazo LRU, ¿ha mejorado el sistema en realción al de la simulación nº 1 que utilizaba el algoritmo FIFO? Arquitectura de Computadores – Práctica 10 – 3ª parte. Reemplazo de bloques en Memoria Caché 5 DISCA 9 Repite la simulación cambiando únicamente el tamaño de la caché a 8 bloques.¿Se mejoran las prestaciones del sistema? 9 Repite la simulación cambiando el tamaño de la caché a 4 bloques, repitiendo la secuencia de direcciones (1, 2, 3, 4, 1, 2, 5, 6, 1, 2, 3, 4, 5, 6, 8, 8) 3 ciclos (marca el check-box de Set Repeat) y con un esquema de correspondencia directa (Sets = 4). ¿Qué significado tiene el nuevo término Conflict Miss que aparece en esta simulación?, ¿qué ocurre con los porcentajes? 9 Repite la simulación anterior cambiando el esquema de correspondencia con grado de asociatividad de 2 (Sets = 2).¿Se mejoran las prestaciones del sistema? ¿qué ocurre con los porcentajes? 9 ¿Y si implementamos un esquema de memoria completamente asociativo (Sets = 1)? 9 Realiza diversas simulaciones con el algoritmo LRU variando tanto la secuencia de direcciones introducida como el resto de parámetros de la caché. Compara las prestaciones del sistema para los distintos tipos de correspondencia configurados. Anota los resultados en una tabla. ¿Qué conclusiones se pueden sacar al respecto? 9 Finalmente, realiza una nueva simulación con el sistema configurado en multitarea y dos procesos, A y B, que acceden a la misma secuencia de direcciones (1 2 3 4 1 2 5 6 1 2 3 4 5 6 8 8) repitiendo el ciclo 3 veces. Compara los resultados para un tamaño de caché de 4 palabras y correspondecia directa, completamente asociativa y asociativa por conjuntos con un grado de asociatividad de 2. 7) Simulación nº 3: Algoritmo RAND 9 Repite las simulaciones anteriores pero con un algoritmo de sustutución de páginas aleatorio. Anota los resultados en una tabla. 9 A la vista de las tasa de aciertos y fallos. ¿qué algoritmo de sustitución proporciona unos resultados óptimos (siempre comparando entre las mismas configuraciones de memoria caché)? Arquitectura de Computadores – Práctica 10 – 3ª parte. Reemplazo de bloques en Memoria Caché 6