•Desarrollo de la práctica:
Para
la comodidad es esta práctica vamos a realizar primero el cuestionario tal
cual, y mas tarde, junto a capturas de pantalla, explicaremos el por qué de
esas soluciones.
CUESTIONARIO
P1.-
(Ejem4.cfg y crafty_d.trd) Si el tamaño de la memoria caché de nivel 3
es de 256KB y el tamaño de bloque es de 1KB, ¿Cuántos bloques puede almacenar
la caché de nivel 3?
a. 32
b. 64
c.
256
P2.-
(Ejem4.cfg y crafty_a.trd) Si el tamaño de la memoria caché de nivel 1
es de 16KB y el tamaño de bloque es de 1KB, y teniendo en cuenta que está
dividida en instrucciones y datos, ¿Cuántos bloques puede almacenar cada una de
las divisiones de la caché de nivel 1?
a. 4
b. 8
c. 16
P3.-
(Ejem4.cfg y crafty_a.trd) Si el tamaño del bloque de memoria caché es
de
1024
Bytes ¿Cuántos bits son necesarios para representar el desplazamiento dentro
del bloque?
a. 4
b. 8
c. 10
P4.- (Ejem4.cfg y crafty_a.trd) ¿Qué ventajas aporta
que la memoria caché de nivel 1 esté dividida en dos?
a. No aporta ventaja, sólo permite ordenar mejor las páginas.
b. Aumenta el tamaño de la caché
de nivel 1.
c. Aprovecha mejor el principio de localidad.
P5.-
(Ejem4.cfg y crafty_a.trd) ¿En qué posición se coloca un nuevo bloque
dentro de la memoria caché sabiendo que estamos utilizando una estrategia de
colocación de mapeado directo?
a. En la posición
dada por la fórmula (Número de bloque) MOD (Número de bloques de caché).
b. En la posición dada por la fórmula (Identificador) MOD
(Número de bloques de caché).
c. En cualquier posición libre que se encuentre.
P6.-
(Ejem5.cfg y crafty_a.trd) ¿En qué posición se coloca un nuevo bloque
dentro de la memoria caché sabiendo que estamos utilizando una estrategia de
colocación completamente asociativa?
a. En la
posición dada por la fórmula (Número de bloque) MOD (Número de bloques de
caché)
b. En la
posición dada por la fórmula (Identificador) MOD (Número de bloques de caché)
c. En cualquier posición libre
que se encuentre.
P7.- (Ejem11.cfg y
crafty_a.trd) ¿En qué posición se coloca un nuevo bloque dentro de la
memoria caché sabiendo que estamos utilizando una estrategia de colocación
asociativa por conjuntos?
a. En la
posición dada por la fórmula (Número de bloque) MOD (Número de bloques de
caché).
b. En la
posición dada por la fórmula (Identificador) MOD (Número de bloques de caché).
c. En cualquier posición del
conjunto dado por la fórmula (Número de bloque) MOD (Número de conjuntos de la
caché).
P8.- (Ejem11.cfg y
crafty_a.trd) ¿Cuál es el tamaño del conjunto de una memoria asociativa por
conjuntos de 2 vías?
a. 1 bloque
b. 2 bloques
c. 4 bloques
P9.- (Ejem5.cfg y
crafty_a.trd) ¿Qué ocurre cuando no existe ninguna posición en la memoria
caché a la que copiar un nuevo bloque, y hemos elegido una política de
sustitución al azar?
a. Se elige un bloque cualquiera
para sustituir con el nuevo bloque.
b. El nuevo
bloque no se escribe en la memoria caché.
c. Se elige el
primer bloque de la memoria para sustituirlo con el nuevo bloque.
P10.- (Ejem6.cfg y
crafty_a.trd) ¿Qué bloque de caché se reemplaza cuando elegimos una
política de sustitución FIFO?
a. Un bloque
cualquiera elegido al azar.
b. El bloque que lleva más
tiempo en memoria.
c. Se reemplaza
aquel bloque que lleva más tiempo en memoria sin ser usado.
P11.- (Ejem7.cfg y
crafty_a.trd) ¿Qué bloque se reemplaza cuando elegimos una política de
sustitución LRU?
a. Un bloque
cualquiera elegido al azar.
b. El bloque
que lleva más tiempo en memoria.
c. Se reemplaza aquel bloque que
lleva más tiempo en memoria sin ser usado.
P12.- (Ejem9.cfg y
crafty_a.trd) ¿Qué bloque se reemplaza cuando elegimos una política de
sustitución LFU?
a. Un bloque
cualquiera elegido al azar.
b. El bloque
que lleva más tiempo en memoria.
c. Se reemplaza aquel bloque que
haya sido usado el menor número de veces.
P13.- (Ejem4.cfg y
crafty_a.trd) ¿Por qué no es necesaria una política de sustitución
utilizando mapeado directo?
a. Porque
nunca se reemplaza una página.
b. Porque la página a reemplazar
ya está determinada.
c. Porque la
página a reemplazar siempre se elige al azar.
P14.- (Ejem4.cfg y
crafty_a.trd) ¿Qué ocurre cuando la posición de la memoria caché a la que
debemos copiar la nueva página procedente de memoria principal no está vacía
sabiendo que estamos utilizando una estrategia de mapeado directo?
a. La página de esa posición de
memoria caché se sobrescribe con la nueva.
b. Se busca
una nueva posición que esté libre.
c. La nueva
página no se escribe en la memoria caché.
P15-. (Ejem5.cfg y
crafty_a.trd) ¿Por qué no es necesaria la parte de índice en la dirección
del bloque utilizando una estrategia de colocación completamente asociativa?
a. Porque la posición dentro de
memoria caché no está definida, el bloque puede colocarse en cualquier
posición.
b. Porque el
identificador determina la posición dentro de memoria caché.
c. Porque la
memoria caché nunca se llena.
P16.- (Ejem11.cfg y
crafty_a.trd) ¿Para qué se utiliza la parte de índice en la dirección del
bloque utilizando una estrategia de colocación asociativa por conjuntos?
a. Para obtener el conjunto
donde colocar el bloque.
b. Para
obtener la posición donde colocar el bloque.
c. Para
obtener la posición del conjunto donde colocar el bloque.
P17.- (Ejem4.cfg y
crafty_a.trd) Cuando se utiliza escritura directa (write-through):
a. La información se escribe en
la caché y en la memoria principal.
b. La
información se escribe sólo en la caché.
c. La
información se escribe en la caché, en la memoria principal y en la memoria
secundaria.
P18.- (Ejem4.cfg y
crafty_a.trd) Cuando se utiliza escritura retardada (write-back):
a. La
información se escribe en la caché y en la memoria principal.
b. La información se escribe
sólo en la caché.
c. La
información se escribe en la caché, en la memoria principal y en la memoria
secundaria.
P19.- (Ejem4.cfg y
crafty_a.trd) ¿Para qué se utiliza el bit de modificación de la memoria
caché?
a. Indica si el
bloque se ha modificado mientras se encontraba cargado en ese nivel de caché.
b. Indica si el bloque se ha
modificado mientras se encontraba cargado en cualquier nivel de caché.
c. Indica que
el bloque correspondiente a ese bloque en memoria principal se ha modificado.
P20.- (Ejem4.cfg y
Crafty_a.trd) Ejecuta algunas líneas del programa y contesta, ¿Cuándo se
actualiza el bit de modificación del bloque?
a. Cuando se produce una
escritura en memoria.
b. Cuando se
produce una lectura de memoria.
c. Cuando hay una instrucción.
ANEXO DE EXPLICACIONES
P1.- En la imagen podemos comprobar que son 256 bloques en
la memoria caché L3, ya que al ser de tipo directa, se utiliza un bloque por
cada línea.
P2.- En la imagen podemos comprobar que cada división posee
16 bloques, uno por línea al ser la caché de tipo directo, y además, al ser
dividida y no en conjunto, cada división utiliza sus bloques para instrucciones
o datos.
P3.- En la imagen comprobamos que utilizan 10 bits para el
desplazamiento dentro de la página.
P4.- La división de la L1 es solo útil para comprobar y
localizar cada página.
P5.-
En la memoria de tipo directa, el bloque sólo puede
ser emplazado en una posición de la caché, posición determinada
por la dirección que tiene ese bloque en memoria principal y con su formula “índice
= Dirección MOD nº de bloques”.
P6.- En la memoria de tipo asociativa, el bloque puede ser
emplazado en cualquier posición de
la caché por la propia ley de asociatividad (Diapositiva 14, T.2).
P7.- Se coloca el
bloque según la formula facilitada en los apuntes: “Índice = nº del bloque MOD
nº de conjuntos”. (Diapositiva 22. T.2).
P8.- En la imagen podemos ver como los bloques forman
conjuntos de 2 en 2, y así pues, queda respondida la pregunta visualmente.
P9.- Se selecciona un bloque al azar (como indica la
selección de reemplazo) para albergar el nuevo bloque, ya que a sido dispuesto
de esa forma. Otra forma podría haber sido del tipo LRU, en el cual hubiera
sido sustituido el bloque que mas tiempo llevara en memoria y sin ser usado (Diapositivas
37-39 T.2).
P10.- El dato que primero entra es el que primero sale, de
ahí sus siglas FIFO (first input first output). Podemos ver un ejemplo grafico
en el siguiente diagrama.
Imagen fuente: Wikipedia
P11.- El bloque reemplazado es aquel que lleve mas tiempo
en memoria pero sin ser usado, como bien indican sus siglas en este método de
reemplazo (LRU, Least recently used). (Diapositiva 38, T.2).
P12.- El bloque que saldrá si la memoria estuviese llena
seria el que, en un conteo de los bloques usados, fuese el menos utilizado. De
ahí sus siglas, LFU Least frequently used. (Fuente: Wikipedia).
P13.- En el mapeado directo se sustituye el nuevo dato en
la misma posición del dato que va a ser reemplazado, así que no es necesario
utilizar ningún método de reemplazo, pues ambas comparten la misma dirección.
14.- Al igual que en la anterior respuesta, el mapeado
directo obliga a sustituir en la misma dirección los datos tratados, con lo
que, queda sobrescrito el existente previo.
P15.- En el caso de colocación asociativa de bloques no se
necesita el uso de índices, ya que se colocan en cualquier posición de la
caché, y mas tarde para su búsqueda, se acuden a sus “etiquetas”. (Diapositiva
20, T.2).
P16.- El índice en el caso de la asignación de tipo
asociativa por conjuntos se utiliza para saber en cual de los conjuntos
posibles con esa dirección puede ser colocado, ya que dentro del propio
conjunto, se puede emplazar en cualquiera de sus posiciones. (Diapositiva
22. T.2).
P17.- Cito los
apuntes directamente ya que es trivial su solución: “El dato se escribe
a la vez en caché y memoria principal.”(Diapositiva 40. T.2).
P18.-
Cito los apuntes directamente ya que es trivial su
solución: “El dato sólo se escribe en caché. La memoria principal se
actualizará cuando se reemplace ese bloque.”(Diapositiva 40. T.2).
P19.-
Se observa en la imagen que todos los campos se modifican según el bloque
entrante sin importar el nivel de caché en el que se encontrara.
P20.-
Se puede comprobar en el propio programa como es lo que sucede.
•Mejoras/Errores:
- Posible errata/mejora
en la pregunta 7, en al formula “indice=nº de bloque…” quizas quedaria mas claro utilizando la misma facilitada en los apuntes: “indice=dirección…”
- Como mejora se podría
realizar un tutorial de uso básico del programa, además del manual completo
como en cada práctica.
- Otra mejora podría ser
un cambio de algunas preguntas. Algunas son de respuesta inmediata y a la hora
de exponerlas no desarrolla ningún reto ya que viene citado de manera explicita
en el temario.
No hay comentarios:
Publicar un comentario