Este documento presenta varios ejercicios sobre el funcionamiento de la memoria caché. Explica que los ejercicios se centran en estrategias de correspondencia, escritura y reemplazo de caché. También describe algunas suposiciones sobre los tamaños de caché y datos utilizados en los ejercicios. Finalmente, presenta una serie de preguntas sobre conceptos como la división de direcciones de memoria, tamaños de bloques y tasas de aciertos para diferentes configuraciones de caché y programas.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
0 calificaciones0% encontró este documento útil (0 votos)
153 vistas16 páginas
Este documento presenta varios ejercicios sobre el funcionamiento de la memoria caché. Explica que los ejercicios se centran en estrategias de correspondencia, escritura y reemplazo de caché. También describe algunas suposiciones sobre los tamaños de caché y datos utilizados en los ejercicios. Finalmente, presenta una serie de preguntas sobre conceptos como la división de direcciones de memoria, tamaños de bloques y tasas de aciertos para diferentes configuraciones de caché y programas.
Este documento presenta varios ejercicios sobre el funcionamiento de la memoria caché. Explica que los ejercicios se centran en estrategias de correspondencia, escritura y reemplazo de caché. También describe algunas suposiciones sobre los tamaños de caché y datos utilizados en los ejercicios. Finalmente, presenta una serie de preguntas sobre conceptos como la división de direcciones de memoria, tamaños de bloques y tasas de aciertos para diferentes configuraciones de caché y programas.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
0 calificaciones0% encontró este documento útil (0 votos)
Este documento presenta varios ejercicios sobre el funcionamiento de la memoria caché. Explica que los ejercicios se centran en estrategias de correspondencia, escritura y reemplazo de caché. También describe algunas suposiciones sobre los tamaños de caché y datos utilizados en los ejercicios. Finalmente, presenta una serie de preguntas sobre conceptos como la división de direcciones de memoria, tamaños de bloques y tasas de aciertos para diferentes configuraciones de caché y programas.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 16
Soluciones de los ejercicios del tema 3.
- La Jerarqua de Memoria Ingeniera de Computadores
2. Memoria cach La cach es uno de los elementos clave del computador a la hora de mejorar el rendimiento. Los ejercicios de este apartado se centran en reforzar el conocimiento sobre el funcionamiento interno de la cach, prestando especial atencin a las estrategias de correspondencia, escritura, reemplazo y a los problemas de coherencia de cach. Algunos de los ejercicios llevan asociada una gura que muestra el estado de la cach en un determinado ins- tante. Debido a esto, los ejercicios consideran cachs muy pequeas en comparacin a las cachs que pueden encontrarse en computadores reales. No obstante, el alumno debe ser consciente de que los conceptos subya- centes en los problemas son aplicables a cachs de tamao arbitrario. Para simplicar la notacin, se supone que todos los datos almacenados en la cach estn expresados en hexa- decimal, aunque no aparezca el sujo h. Asimismo, se supone que todos los dems elementos de la cach se expresan en binario, como por ejemplo los bits de validez, o los bits que componen la etiqueta. En todos los ejercicios se supone que ante un fallo de cach de escritura se lleva a la cach una copia del bloque de memoria principal correspondiente 2 . J 8. Actualmente, la cach del sistema suele implementarse dentro del mismo chip del procesador, lo que mejora sensiblemente la velocidad de acceso del procesador a la cach y, por tanto, incrementa en gran medida el rendimiento del computador en su conjunto. Para la fabricacin del procesador y la memoria cach se emplean transistores integrados dentro del chip. A medida que mejora la tecnologa de fabricacin se pueden integrar ms transistores dentro del chip, con lo que pueden utilizarse cachs ms grandes. Sin embargo, independientemente de la tecnologa de fabricacin, en la prctica, la implementacin de un bit de cach requiere 6 transistores aproximadamente. Se tiene el procesador Intel c Core i7 860, con ncleo Lynneld y con un coste de 270 euros, el cual integra 774 millones de transistores distribuidos entre el procesador y tres niveles de cach (432 Kbytes de cach L1, 4256 Kbytes de cach L2 y 8 Mbytes de cach L3). Qu porcentaje de transistores ocupan aproximadamente las celdas de la cach? Tomar 1 Mbyte como 2 20 y 1 Kbyte como 2 10 . (4322 10 +42562 10 +82 20 )86 77410 6 100 = 59, 34% Suponiendo que el coste achacable a la cach es proporcional al nmero de transistores requerido, qu precio tiene aproximadamente 1 Mbyte de cach? 17, 56 euros J 9. Un computador tiene un espacio de direcciones de memoria de 4 Mbytes y est dotado de una cach de 32 Kbytes. La memoria se direcciona al byte y la cach intercambia bloques de 64 bytes con la memoria principal. A partir de esta informacin responder a las siguientes preguntas: De cuntos bloques de cach disponemos? 512 bloques En cuantos bloques se divide la memoria principal? 2 16 65.536 bloques 2 Algunas CPU reales en esta situacin simplemente escriben en memoria principal. 6 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Cul es el tamao, en bits, de la direccin de memoria que utiliza este computador? 22 bits La direccin anterior se reparte en varios campos dependiendo de la estrategia de correspondencia que se utilice. En todos los casos siguientes, indicar los campos en los que se divide la direccin de memoria. Estrategia de correspondencia totalmente asociativa. 16 bits ms signicativos para la etiqueta 6 bits menos signicativos para el desplazamiento Estrategia de correspondencia directa. 7 bits ms signicativos para la etiqueta 9 bits intermedios para el nmero de bloque 6 bits menos signicativos para el desplazamiento Estrategia de correspondencia asociativa por conjuntos de 4 vas. 9 bits ms signicativos para la etiqueta 7 bits intermedios para el nmero de conjunto 6 bits menos signicativos para el desplazamiento J 10. A partir de la CPU terica se plantea desarrollar un sistema de cach. Como es sabido, esta CPU tiene un espacio de direcciones de memoria de 64 Kpalabras, y la memoria cach que se plantea utilizar una estrategia de correspondencia asociativa por conjuntos. Bajo esta conguracin el bloque de cach ser de 32 palabras y el campo etiqueta de 5 bits, mientras que si la misma memoria cach utilizara una estrategia de correspondencia directa, el campo etiqueta sera entonces de 3 bits. Qu tamao en palabras tiene la memoria cach? 8K palabras En cuntos conjuntos est dividida la memoria cach? 2 6 = 64 Cul es el nmero de bloques totales de la memoria cach? 256 De cuntas vas dispone cada conjunto? 4 J 11. Se conocen las siguientes caractersticas de un computador: Dispone de un espacio direccionable de 256 KBytes, con direccionamiento al byte. Utiliza una memoria cach unicada con estrategia de correspondencia directa, de 8 KBytes de capa- cidad y un tamao de bloque de 64 bytes. Los tiempos de acceso a los niveles de memoria son: 4 nanosegundos para el nivel de memoria cach y 40 nanosegundos para el nivel de memoria principal. En caso de un fallo de cach, se considera nicamente el tiempo de acceso correspondiente al nivel de memoria principal. Dadas las caractersticas del computador anterior, se pide contestar a las siguientes preguntas: 7 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores Cuntos bits se utilizan para codicar la direccin en este computador? 18 bits Cmo se reparten los bits que codican la direccin entre los distintos campos que utiliza la memoria cach? 5 bits ms signicativos para la etiqueta 7 bits intermedios para el nmero de bloque 6 bits menos signicativos para el desplazamiento Considerando la cach inicialmente vaca, la CPU accede de forma consecutiva a las siguientes direc- ciones de memoria: 30487h, 304A2h, 304D1h, 1C4B4h y 30488h. Qu direcciones provocan fallo de cach y porqu motivo? 30487h, fallo al acceder al bloque, cach inicialmente vaca. 304D1h, acceso a un nuevo bloque y cach vaca. 1C4B4h, fallo, bloque no presente y debe reemplazar a otro bloque. 30488h, fallo, debe reemplazar al anterior. Cunto tiempo ser necesario emplear para realizar los accesos a las direcciones de memoria del apartado anterior? 1 acierto 4 ns + 64 4 fallos 40 ns = 10.244 ns Se vuelve a considerar la memoria cach en las condiciones iniciales, cul es la tasa de aciertos que se obtiene al ejecutar el siguiente bucle de programa? for (i = 0; i < 70; i++) { a[i] = 9 * i; } Se sabe tambin que a es un array de nmeros enteros, cada uno de los cuales utiliza 4 posiciones de memoria para almacenarse, los elementos del array se almacenan de forma consecutiva a partir de la direccin 03FC0h. Se supone tambin que tanto para las constantes como para el ndice de bucle no es necesario acceder a memoria, pues previamente ya se han cargado en registros de la CPU. 70 elementos 4 bytes / 64 bytes por bloque = 5 bloques o fallos. 705 70 100 = 92, 86% Considerando nuevamente la memoria cach en las condiciones iniciales, cul es la tasa de aciertos que se obtiene al ejecutar el siguiente bucle de programa? for (i = 0; i < 90; i++) { a[i] = 9 * i; b[i] = 5 * i; } Se sabe tambin que tanto a como b son arrays de nmeros enteros. Los elementos del array a se almacenan de forma consecutiva a partir de la direccin 16480h y los del b lo hacen a partir de la direccin 2A480h. Se supone tambin que tanto para las constantes como para el ndice de bucle no es necesario acceder a memoria, pues previamente ya se han cargado en registros de la CPU. 0%, todo son fallos, pues se reemplazan uno a otro constantemente. 8 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Cmo se podra mejorar la tasa de aciertos obtenida en el apartado anterior? Utilizando una estrategia de correspondencia asociativa por conjuntos con dos o ms vas, o tambin una estrategia totalmente asociativa. J 12. Se tiene un computador con direccionamiento al byte y una capacidad total de 1 MByte. Este compu- tador cuenta con una memoria cach de tamao 1 KByte, organizada en bloques de 16 bytes. Los tiempos de acceso a los distintos niveles de memoria son 2 nanosegundos para el nivel de cach, y 20 nanosegundos para el nivel de memoria principal. En caso de un fallo de cach, se considera nicamente el tiempo de acceso correspondiente al nivel de memoria principal. Sobre este computador se desea comparar el tiempo empleado en los accesos a memoria para la ejecucin de un bucle que opera sobre los elementos de una matriz. El tiempo de acceso a medir tendr en cuenta tanto el estilo de programacin como las caractersticas de la cach empleada. Las dos formas de programar el bucle que opera sobre la matriz son: Recorriendo la matriz por columnas: for (j = 0; j < 32; j++) for (i = 0; i < 32; i++) a[i][j] = i * j; Recorriendo la matriz por las: for (i = 0; i < 32; i++) for (j = 0; j < 32; j++) a[i][j] = i * j; Los elementos de la matriz son valores enteros que requieren 4 bytes en memoria, los elementos de la matriz se almacenan contiguos por las en memoria a partir de la direccin 6C000h. Si la memoria cach sigue una estrategia de correspondencia directa: Cmo se reparten los bits utilizados en la especicacin de la direccin entre los distintos campos de la cach, utilizando estrategia de correspondencia directa? 20 bits 10 etiqueta, 6 bloque y 4 desplazamiento. Cul es la tasa de aciertos para la primera variante de programacin, es decir, cuando se recorre la matriz por columnas? 0%. Los bloques se reemplazan unos a otros cada 8 lecturas. Cul es el tiempo de acceso a memoria requerido para recorrer la matriz por columnas? Responder en nanosegundos. 16323220 nseg = 327.680 nseg Cul es la tasa de aciertos para la segunda variante de programacin, es decir, cuando se recorre la matriz por las? 75%. Se produce un fallo por cada cuatro, el primero de cada bloque. 9 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores Cul es el tiempo de acceso a memoria requerido para recorrer la matriz por las? Responder en nanosegundos. 3 4 (3232) 2 nseg + 1 4 (163232) 20 nseg = 83.456 nseg Si se considera ahora que la estrategia de correspondencia elegida es la totalmente asociativa: Cmo se reparten los bits utilizados en la especicacin de la direccin entre los distintos campos de la cach, utilizando estrategia de correspondencia totalmente asociativa? 20 bits 16 etiqueta y 4 desplazamiento. Cul es la tasa de aciertos para la primera variante de programacin, es decir, cuando se recorre la matriz por columnas? 75%. 32 fallos iniciales, luego 96 aciertos y se repite el patrn 8 veces. Cul es la tasa de aciertos para la segunda variante de programacin, es decir, cuando se recorre la matriz por las? 75%. Se produce un fallo por cada cuatro, el primero de cada bloque. Si la estrategia de correspondencia elegida fuera ahora una estrategia asociativa por conjuntos con dos vas por conjunto: Cmo se reparten los bits utilizados en la especicacin de la direccin entre los distintos campos de la cach, utilizando estrategia de correspondencia asociativa por conjuntos con 2 vas? 20 bits 11 etiqueta, 5 conjunto y 4 desplazamiento. Cul es la tasa de aciertos para la primera variante de programacin, es decir, cuando se recorre la matriz por columnas? 0%. Los bloques se van reemplazando en las distintas vas del conjunto. Cul es la tasa de aciertos para la segunda variante de programacin, es decir, cuando se recorre la matriz por las? 75%. Se produce un fallo por cada cuatro, el primero de cada bloque. Existe alguna forma en la que se pueda modicar la conguracin de la cach asociativa por conjun- tos para mejorar la tasa de aciertos en el caso de recorrer la matriz por columnas? S, utilizando conjuntos con 32 vas. 10 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria N o Dir. L/E N o Dir. L/E 1 5F0h L 9 8F1h E 2 5F1h L 10 5F5h L 3 5F2h L 11 5F6h L 4 5F3h L 12 8F4h E 5 5F4h L 13 5A4h L 6 8F0h E 14 5A5h L 7 5F5h L 15 8F8h L 8 5F6h L 16 5A6h L Tabla 2: Accesos a la cach del problema 13. J 13. Suponemos un computador con las siguientes caractersticas: Bus de direcciones de 12 lneas. El sistema de memoria utiliza palabras de 16 bits. Est dotado de una memoria cach de tamao 32 bytes, organizada en lneas de 4 palabras y corres- pondencia totalmente asociativa. La estrategia de reemplazo es LRU. La estrategia de escritura es write-back. Sobre este computador se va a ejecutar un programa cuyo patrn de accesos a memoria se muestra en la tabla 2. En dicha tabla, Dir representa la direccin a la que se accede y L/E representa el tipo de operacin (Lectura o Escritura) que se realiza. Si suponemos que la memoria cach est inicialmente vaca. Responder a las siguientes preguntas: De cuntos bloques dispone la memoria cach descrita? 4 Qu direcciones producen fallos de cach durante la ejecucin de este programa en la conguracin de memoria descrita? 5F0h, 5F4h, 8F0h, 8F4h, 5A4h y 8F8h Qu porcentaje de aciertos tiene el programa anterior con dicha conguracin de cach? 62,5%, 10 aciertos de 16 accesos. Qu bloque o bloques de memoria principal resultan reemplazados en el esquema de funcionamiento descrito? Indica su nmero en hexadecimal. Contesta NINGUNO, si no es necesario realizar reempla- zo. 17Ch y 23Ch Qu bloque o bloques de memoria principal han de ser actualizados en el esquema de funciona- miento descrito? Indica su nmero en hexadecimal. Contesta NINGUNO, si no es necesario realizar actualizacin. 23Ch 11 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores Se mejorara el rendimiento de la jerarqua de memoria en el caso de emplear una estrategia de escritura write-through? Por qu? No. La estrategia de escritura tiene efectos apreciables sobre el rendimiento, pues el programa lleva a cabo escrituras. La estrategia de escritura write-back sera la que proporcionara un mayor rendimiento. Con write-through deberan realizarse dos accesos ms a memoria (cada vez que se escribe un dato). J 14. Un programa ejecuta un bucle que consiste en la repeticin 20 veces de la siguiente secuencia de accesos a memoria: 1200h, 1201h, 1305h, 1202h, 1203h, 1406h y 1204h. Se dispone de una memoria cach con 4 bytes por bloque, 4 bloques, estrategia de reemplazo LRU y direccionamiento al byte. Se proponen tres tipos de organizacin de memoria cach para este programa: A) Una cach de correspondencia directa. B) Una cach asociativa por conjuntos con 2 vas por conjunto. C) Una cach totalmente asociativa. Cul es el porcentaje de aciertos en el caso de la estrategia con correspondencia directa? Porcentaje de aciertos es el 56, 4% (79 aciertos). Cul es el porcentaje de aciertos en el caso de la estrategia con correspondencia asociativa por con- juntos? El porcentaje de aciertos es del 56, 4% (79 aciertos). Cul es el porcentaje de aciertos en el caso de la estrategia con correspondencia totalmente asociati- va? El porcentaje de aciertos es del 97, 14% (136 aciertos). Qu tipo de organizacin de memoria cach resultar ms eciente para este programa? Por qu? La correspondencia totalmente asociativa, y la asociativa por conjuntos tienen el menor nmero de fallos. Se elegira la correspondencia asocitaiva por conjuntos al ser la ms econmica. J 15. Se considera el sistema de memoria de un computador cuya memoria cach, con estrategia de corres- pondencia directa, se muestra en la gura 1. Suponemos que cuando se reinicia la mquina el contenido de todos los bloques de la memoria cach es cero. Sobre este sistema de memoria se plantean una serie de preguntas. Cul es la capacidad de direccionamiento de palabras del sistema de memoria del computador? 2 12 = 4 Kpalabras (12= 6 etiqueta + 3 bloque M.C. + 3 desplazamiento) Cul es el tamao de la memoria cach expresado en bytes? 2 6 2 = 128 bytes 12 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria A212 B6A1 4519 180A 0 0 7 6 5 4 Etiqueta Bit de validez Bit de dirty 1 2 3 4 5 6 7 1 0 0 0 1 0 0 1223 9034 BD34 F545 B92A 3508 1212 48A3 39F5 E42D D5F6 A318 13A2 9723 22A2 BDA4 3278 6790 01A1 0000 56A4 1171 0317 2000 72C0 02A0 09F1 4A74 1 1 1 0 1 1 0 0 671B 12C5 2F34 CCA4 3 2 1 0 Desplazamiento 56A6 1C56 09A6 B711 341B C540 6702 4878 3567 2DF5 D3A1 68DD E645 2F12 B034 0816 56B2 0000 0089 0000 09D1 ABA2 F23D EC04 3E22 BA80 0000 BA41 011110 100111 100101 110101 001011 010101 111110 110110 Figura 1: Estado inicial de la cach del problema 15. Cuntos bloques de memoria principal se encuentran pendientes de actualizacin? 2 Cul es el bloque de memoria principal con direccin ms alta que se encuentra cacheado en memo- ria? Responder en hexadecimal o INDEFINIDO si no se puede conocer. 100101 001 = 129h Cuntos bloques de memoria principal diferentes pueden ocupar, en diferentes momentos, el bloque de memoria cach A? 2 6 = 64 Qu tipo de estrategia de reemplazo tiene esta memoria cach? Justica tu respuesta. Con correspondencia directa no es necesaria estrategia de reemplazo. En correspondencia directa cada bloque de memoria principal slo puede ir a un bloque de memoria cach. Se encuentra cacheado el bloque de memoria principal 1ABh? No, lo estuvo. Su etiqueta est en memoria, pero la informacin no es vlida. Cuando la CPU accede para leer la direccin BC5h, se produce acierto o fallo? A qu bloque de ca- ch se acceder? Ser reemplazado algn bloque de memoria principal, si lo es cul? Si es necesario, responder en hexadecimal. Fallo Bloque 0 Se reemplaza el bloque de memoria principal 0F0h Si un perifrico con capacidad DMA accediera a memoria principal para leer el contenido de la di- reccin 56Ch, sera posible saber el valor que leera? Si fuera posible indica cul sera ese valor. Le sucedera algo a la memoria cach? 0000h Si, el bloque de cach 5 debera actualizarse en memoria principal, y su bit de dirty pasara a valer 0. 13 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores 0 1 2 3 3 2 1 0 v d L R U E t i q u e t a 5C 4A 9D 20 1 1 2 8h 39 34 1F 13 0 0 1 Fh 1E 84 23 40 1 1 3 Ah 3C 3B 26 2F 1 0 0 2h 3 2 1 0 v d E t i q u e t a 53 2C 80 16 1 1 3 3h 6D 74 24 8C 0 0 2 4h D3 49 32 4F 1 1 1 6h 39 3D 49 5F 1 0 1 8h 3 2 1 0 v d E t i q u e t a 5F 6F 3A 15 1 1 1 5h 9F 48 D2 6F 0 0 0 5h 4F 3D F4 4A 1 1 0 1h 44 2A 1F 3F 1 0 3 Ah 3 2 1 0 v d E t i q u e t a F3 1D 2A F3 1 1 0 0h 2A 3A 83 6F 0 0 3 Fh FF 4A 3F 20 1 1 2 7h 13 2A 3F 1A 1 0 2 Dh 4 5 6 7 35 14 57 F6 0 0 0 3h 89 36 9F AD 1 0 3 3h 2A 5F 11 47 0 1 2 7h 8F 2A 57 24 1 0 1 4h 3D 2A 05 09 0 1 3 2h 00 00 2F 1F 1 0 1 3h 5D 69 31 00 0 1 0 6h 6F 4D 3A 15 1 1 0 3h 26 38 41 3F 1 1 2 2h 41 36 2A 83 1 0 2 0h 8A 4D 1F 9C 0 0 3 8h 10 01 3D A7 1 1 3 5h 3F 48 83 2B 0 1 1 7h F3 6A 94 C4 1 0 0 Dh 3F 4A 37 8F 0 1 1 1h 4A 28 76 8D 1 0 2 2h Va 3 Va 2 Va 1 Va 0 L R U L R U L R U Desplaz. Figura 2: Estado inicial de la cach del problema 16. Si un perifrico con capacidad DMA accediera a memoria principal para escribir en la direccin de memoria 892h, qu le sucedera a la memoria cach? Nada, esa direccin no est cacheada. Qu valor leera la CPU si accediera a la direccin de memoria 2E1h? Responde NINGUNO si no es posible determinarlo. B034h Cundo la CPU escribe el valor 1234h en la direccin 2E7h, se produce acierto o fallo?. En caso de que sea un cierto, qu se modica en la gura? Acierto El valor almacenado en el desplazamiento 7 del bloque 4 pasa a ser 1234h, en lugar de 39F5h y se pone a uno el bit de dirty. J 16. La gura 2 muestra el estado de una cach unicada. Cada bloque de cach tiene asociado un bit de validez, v, un bit de dirty, d, dos bits LRU y una Etiqueta de 4 bits. El bloque con menor valor LRU es el que ha sido accedido menos recientemente. Cul es el tamao en bytes del espacio de direcciones de memoria? 2 4+3+2 = 512 bytes Qu valor devuelve la cach cuando la CPU trata de leer de la direccin 014h? Indica Ninguno si crees que se produce fallo de cach. 83h Cuntos bloques se corresponden con cada bloque de memoria cach? Es decir, cuntos bloques de memoria principal diferentes podran llegar a cachearse en cada bloque de memoria cach? 16 bloques 14 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria 2A 46 68 79 10111 0 0 16 FD A3 DF 11010 1 1 1A 04 4D 11 10110 1 2 3 2 1 0 Desplazamiento Etiqueta Bit de validez N de conjunto 83 5B 6D 2A 11001 1 3 00 01 02 2D 01011 1 5A 88 3D 62 10111 1 1A 1B 1C 1D 00100 1 3 2 1 0 Etiqueta 4A 20 05 26 01111 0 Va 0 Va 1 1 1 0 0 0 0 1 1 L R U L R U 7A 21 F2 67 10101 1 4 34 A6 D6 7C 11100 1 5 2C 00 11 45 01110 1 6 B7 AB D4 FA 11010 1 7 12 A3 B6 CD 01011 1 56 79 08 30 11111 1 B2 A4 00 32 00010 1 1A 20 00 08 01111 1 1 1 0 0 0 0 1 1 Figura 3: Estado inicial de la cach del problema 17. Indica el bloque de memoria principal ms alto que podra cachearse en el conjunto 4. 1111 100 = 7Ch Si la CPU escribe en la direccin 17Ch, crees que sera necesario reemplazar algn bloque de me- moria principal? Si la respuesta es negativa indica el estado de los bits v, d y LRU tras la escritura; si es armativa indica qu bloque de memoria principal sera reemplazado. La direccin 17Ch se corresponde con el bloque de memoria principal 5Fh, que no est cacheado. Se produce un fallo de cach y es necesario reemplazar uno de los bloques, en concreto el que menor valor de LRU tiene. Se reemplaza el bloque de memoria principal 1Fh. La interfaz de un perifrico con capacidad de DMA accede al sistema de memoria a tres posiciones de memoria distintas. Indica qu bits de la cach son modicados as como su valor nal para cada uno de los accesos. Los accesos a memoria son: lectura de 051h, escritura en 04Eh, y lectura de 0FCh. Lectura 051h: Est cacheado y su bit de dirty es 1, modicado, luego es necesario actualizar el bloque dirty a cero. Escritura 04Eh: Est cacheado pero no est modicado. Cambia su bit de validez a cero. Lectura 0FCh: No est cacheada, no pasa nada. J 17. En la gura 3 se muestra la estructura de la cach de un computador y su estado en un momento dado. La cach est organizada en cuatro conjuntos de dos vas por conjunto y utiliza una estrategia de reemplazo LRU, siendo 1 el valor del bit LRU para el bloque ms recientemente accedido. Cul es el tamao del espacio de direcciones del sistema que usa esta cach? Responder en bytes. 1024 bytes (2 5+3+2 ) 15 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores Cul es el tamao de la cach en bytes? 64 bytes Cuando la CPU emita la direccin 17Bh se producir un fallo de cach. En qu bloque de la cach se almacenar el bloque proveniente de la memoria principal? Contesta con el nmero de conjunto y el nmero de va dentro del conjunto. Ejemplo de respuesta: Conjunto 9, Va 3. Conjunto 6, Va 1. Un acceso por parte de la CPU a la direccin 168h produce un fallo de cach. En qu conjunto/va se almacenar el nuevo bloque? Es necesario reemplazar algn bloque de memoria principal, si lo es cul? Fallo Conjunto 2, va 1 Se reemplaza el bloque de memoria principal 22h Cul ser el dato proporcionado por la cach cuando la CPU emita la direccin 2E3h? Si crees que se produce fallo de cach, contesta NINGUNO. Ninguno, bloque no vlido. Cundo la CPU acceda a la direccin 2C9h para escribir el dato FFh, se produce acierto o fallo? A qu conjunto/va se accede? Se escribe en cach solamente o tambin en memoria principal? Justica tu respuesta. Acierto Se accede para escritura a la va 0 del conjunto 2. Se escribe en cach y en memoria principal, al no existir bit de dirty se supone escritura de tipo write-through. A lo sumo, cuntos bloques de memoria principal se pueden cachear en un instante dado en el con- junto 1 de la cach? 2 (el nmero de vas) Cuntos bloques diferentes de memoria principal se pueden cachear en instantes diferentes el con- junto 1 de la cach? 2 5 = 32 (el indicado por la etiqueta) Si la CPU escribe en la direccin 16Eh, qu bloque de memoria principal resulta reemplazado? Si crees que ninguno resulta reemplazado, responde NINGUNO y explica por qu. NINGUNO. Hay un fallo, pero existe un bloque vaco para almacenar el bloque de M.P. Cul es el bloque de memoria principal con nmero de bloque ms grande cacheado en la gura 3? FDh en el conjunto 5, va 1. 16 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria v 011101 1F66 da Etiqueta 1 0 0 3 4252 2 3C6A 1 DE76 0 v 001001 7B9A da Etiqueta 1 0 1 3 917A 2 77A2 1 B6BC 0 0 110010 9CB0 1 1 1 F4C4 349C 1BC0 00000 0000 0 0 0 0000 0000 0000 1 101111 75B8 1 0 0 AF82 4966 CAD2 011101 9B3C 1 1 1 5ADC C7AA 5314 2 010011 6AB2 1 1 0 6A8C 68EC 1EE2 100101 3CC2 1 0 1 57D0 8AC2 C080 3 100101 6918 1 0 1 4810 ECBA 4AEE 000110 22E8 1 1 0 22A4 98EE 9680 4 111110 9912 1 0 0 0C3A 526A F7C6 010000 0000 1 0 1 0000 0000 0000 5 110010 1B5A 1 1 0 837C 28D0 1C88 001010 2CC6 1 0 1 239C E7DE ABA6 6 00000 0000 0 0 0 0000 0000 0000 010110 8DFA 1 0 1 BFD2 FA34 4C38 7 Va 0 Va 1 Conjunto Figura 4: Estado inicial de la cach del problema 18. J 18. La gura 4 muestra el sistema de memoria cach de un computador y su estado en un momento concreto. Como informacin complementaria a la gura se tiene: Existen tres bits de estado con el siguiente signicado: bit de validez, v, bit dirty, d, y bit de acceso, a. Este ltimo se pone a uno cuando se accede a un bloque del conjunto y se pone a cero cuando se accede al otro bloque del conjunto. La poltica de reemplazo es LRU. La estrategia de escritura que utiliza esta cach es del tipo write-back o escritura diferida. En el estado mostrado en la gura 4, cuntos bloques de memoria cach son incoherentes con los valores almacenados en memoria principal? 5 bloques Cuntos bloques de memoria principal estn cacheados? 14 bloques Cul es el tamao en bytes de la cach? 128 bytes Cul es el mximo tamao posible de la memoria principal del computador que utiliza este sistema de memoria cach? Expresa el resultado en bytes. 2 6+3+2 2 = 4 Kbytes Cuntos bloques de memoria principal diferentes pueden cachearse (no necesariamente al mismo tiempo) en el conjunto 7 de cach? 64 17 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores Puede el bloque de memoria principal 085h cachearse en alguna va del conjunto 1? Por qu? No, se cacheara en el conjunto 5, tal como lo indican los bits del campo conjunto. En un momento dado, el procesador realiza de forma sucesiva dos accesos de lectura sobre las direc- ciones 3D6h y 147h. Qu bloque o bloques de memoria principal resultarn reemplazados? Responde con el nmero o los nmeros de bloque en hexadecimal, o NINGUNO si no existe reemplazo. La direccin 3D6h provoca el reemplazo del bloque de memoria principal 1F5h (conjunto 5, va 0). La direccin 147h encuentra un bloque libre, no habr reemplazo. Si la CPU realiza un acceso de lectura a la direccin de memoria 05Bh, qu valor leer? Responde con el valor hexadecimal, o INDEFINIDO si crees que no es posible determinarlo. INDEFINIDO. El bloque no est cacheado y no podemos saber qu valores se cargarn. La CPU realiza un acceso de escritura a la direccin de memoria 5EAh para escribir el valor 0090h. Cul ser el valor de los bits de estado (v, d, y a) y las coordenadas (conjunto, va, desplazamiento) de la palabra modicada tras el proceso de escritura? Conjunto = 2, va = 0, desplazamiento = 2. v = 1; d = 1; a = 1 La interfaz de un perifrico con capacidad de DMA accede al sistema de memoria para escribir en la posicin de memoria 658h. Indica, MUY BREVEMENTE, qu sucede as como todos los cambios que se produzcan. En la escritura en la posicin 658h se produce la actualizacin del bloque de memoria principal que contiene esa direccin, marcndose como invlido el bloque de cach correspondiente. La razn est en que dicha direccin est cacheada y el bloque de cach ha sido previamente escrito (Conjunto 6, va 0). J 19. La gura 5 muestra el estado de una memoria cach dividida en un instante dado. Cada lnea de cach tiene asociados un bit de validez (v), dirty (d) y accedido (a). El bit a se pone a uno cuando se accede a un bloque del conjunto y se pone a cero cuando se accede al otro bloque del conjunto. La estrategia de reemplazo utilizada es de tipo LRU basada en el valor del bit a. Cul es el tamao del espacio de direcciones, expresado en bytes, del sistema de memoria que utiliza esta cach? 2 5+2+3 = 1024 bytes Cul es el nmero de bloques de memoria principal podran utilizar, en diferentes momentos, la memoria cach? 128 Cuntos bloques de memoria principal diferentes pueden ubicarse a lo sumo (en instantes diferentes) en cada bloque de memoria cach? 32 18 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria 0 1 2 3 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 v a Etiqueta v aEtiqueta 28 3D 1A 68 00 12 34 F0 1 1 01101 B6 57 3F 2D 90 24 90 5F 1 1 10000 3A 3B 3C 3D 12 4D 4A 9C 0 0 11101 9B 0A 68 35 25 21 6F 2F 1 0 01100 4D 12 4D 2A F6 E5 45 6A 0 0 00011 C3 02 4F 3A 76 25 2B 3C 1 0 11110 61 58 F5 55 3A 22 57 DA 1 1 00001 23 00 38 35 9D A8 A3 67 1 1 11001 VA 0 VA 1 0 1 2 3 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 v d a Etiqueta v d aEtiqueta 04 00 80 00 F0 0A C4 16 0 0 0 00001 00 12 31 36 D6 FF 2A A6 1 1 1 00010 58 21 49 26 36 90 21 27 0 0 0 01110 AA A1 B5 74 C3 3A 34 00 1 1 1 10101 A3 67 00 2A 7F FF 4F 2B 1 0 1 10010 15 3F 27 62 61 29 3F E5 1 1 0 00101 C5 54 CC 2A 25 68 90 23 1 1 1 00010 46 79 67 A3 00 22 22 57 1 0 0 10110 VA 0 VA 1 CONJUNTO CONJUNTO CACHE DE CDIGO CACHE DE DATOS Figura 5: Estado inicial de la cach del problema 19. A partir del estado mostrado en la gura 5, cuntos bloques de memoria principal podran utilizar los bloques de cach sin provocar el reemplazo de ningn bloque de memoria principal? 4 A partir del estado mostrado en la gura 5, cuntos bloques de memoria principal deben ser actuali- zados en caso de ser reemplazados? 4 Cul es el bloque de memoria principal con nmero ms bajo que est cacheado? Responder en hexadecimal. 06h Si suponemos que el cdigo de una instruccin que est cacheada es A367h, y que est almacenada en memoria segn el formato Little Endian, a qu rango de direcciones habr de acceder la CPU cuando quiera ejecutarla? 338h y 339h Conjunto 3, va 1 desplazamientos 0 y 1 de la cach de cdigo. Qu bloque de memoria principal resulta reemplazado cuando la CPU lee el cdigo de una instruc- cin de la direccin 3DFh? Si no hay reemplazo, responde NINGUNO. 33h 19 Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria Ingeniera de Computadores Cuando la CPU escribe un dato en la direccin 365h se produce un fallo de cach. Indica la ubicacin del bloque de cach en el que se cargar el bloque de memoria principal que contiene la direccin anterior, as como el nuevo estado de la etiqueta y los bits v, d y a del bloque correspondiente. Se ubicar en la cach de datos, conjunto 0, va 0. Etiqueta = 1 1011; v = 1; d = 1; a = 1. Indica la secuencia de pasos que ocurren para el mantenimiento de la coherencia usando la tcnica de snooping cuando la interfaz de un perifrico con capacidad de DMA intenta leer un dato de la direccin 0AAh. El controlador de cach detecta que se intenta acceder a un bloque de de memoria que est cacheado y marcado como dirty (d=1). El controlador de cach detiene temporalmente la lectura, actualiza el bloque de memoria principal y deja que prosiga la lectura. Finalmente, el controlador de cach marca el bloque de cach que contiene el bloque de memoria prin- cipal como actualizado, colocando el bit dirty a 0. J 20. Indica cul o cules de las siguientes armaciones son ciertas. Si crees que ninguna lo es, responde NINGUNA. A) Una memoria cach con estrategia de correspondencia directa no puede implementar una poltica de reemplazo LRU. B) Las cachs L1 divididas suponen una mejora al permitir el acceso simultneo a cdigo y datos alma- cenados en sus respectivas cachs. C) Cuando un perifrico con capacidad de DMA accede a una direccin de memoria cacheada para realizar una operacin de lectura, y la memoria est conectada a una memoria cach con estrategia de escritura write-through, se produce un problema de coherencia de cach. D) Debido a su exibilidad, la correspondencia asociativa por conjuntos ofrece un rendimiento siempre mayor que la totalmente asociativa. E) Una cach dividida, en general, tiene un tasa de aciertos menor que su equivalente unicada. A, B y E J 21. Indica cul o cules de las siguientes armaciones son ciertas. Si crees que ninguna lo es, responde NINGUNA. A) Las cachs con correspondencia totalmente asociativa tienen que dedicar una gran parte de su super- cie a la lgica de control de la cach, a diferencia de otras estrategias de correspondencia. B) La estrategia de correspondencia totalmente asociativa es la ms exible de todas y por tanto permite el mximo aprovechamiento de la memoria cach. C) Cuando un perifrico con capacidad de DMA accede a una direccin de memoria no cacheada para realizar una operacin de escritura, y la memoria est conectada a una memoria cach con estrategia de escritura write-back, se produce un problema de coherencia de cach. D) En una cach con estrategia de escritura write-back, un bloque cuyo bit de dirty est a 1, slo se actualiza en memoria principal cuando es reemplazado, o se detecta un problema de coherencia con la memoria principal. E) En una cach con estrategia de escritura write-back, si la CPU ejecuta una operacin de escritura sobre un bloque cuyo bit de dirty est a 1, el bloque debe actualizarse en memoria principal. A, B y D 20 Ingeniera de Computadores Soluciones de los ejercicios del tema 3.- La Jerarqua de Memoria J 22. Indica cul o cules de las siguientes armaciones son ciertas. Si crees que ninguna lo es, responde NINGUNA. A) En la correspondencia asociativa por conjuntos, la va en la que se almacenar el bloque de cach viene especicada en la direccin a la que se accede. B) Para una estrategia de correspondencia asociativa por conjuntos de cuatro vas, cuando se produce un fallo de cach el nuevo bloque se ubicar en el conjunto apropiado, en la va que est libre y si no en la va donde indique la estrategia de reemplazo. C) Si para la misma cach, una organizacin A ofrece un rendimiento mayor que otra organizacin B en la ejecucin de un determinado programa, el rendimiento de A sobre B ser siempre mayor para cualquier otro programa. D) En una memoria cach con correspondencia asociativa por conjuntos, si se disminuye el nmero de vas por conjunto manteniendo constante el nmero de bloques, aumenta el nmero de conjuntos disponibles. E) La estrategia de escritura nunca afecta a la tasa de aciertos y de fallos de una cach. B, D y E J 23. Indica cul o cules de las siguientes armaciones son ciertas. Si crees que ninguna lo es, responde NINGUNA. A) La estrategia de reemplazo de tipo aleatorio es ms eciente que la LRU en el caso de una cach con estrategia de correspondencia directa. B) La estrategia de escritura write-through, aunque tiene un mayor rendimiento que la estrategia de es- critura write-back, su implementacin requiere un mayor tamao al aadir el bit de dirty. C) Una memoria cach con estrategia de correspondencia totalmente asociativa no necesita estrategia de reemplazo. D) Un perifrico con capacidad DMA no puede acceder a la cach. E) El nmero de bloque de memoria principal que se encuentra cacheado, se obtiene eliminando de la direccin de cualquier dato del bloque, los bits correspondientes al campo desplazamiento. D y E 21