Vous êtes sur la page 1sur 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