












Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Fundamentos de Arquitectura de Computadores, Profesor: no me acuerdo, Carrera: Ingeniería Informática, Universidad: UJAEN
Tipo: Ejercicios
1 / 20
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!













porpartición
Cantidadde palabras
MP (Cantidad depalabrasenMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·
c
número de página (etiqueta) conjunto
w bits
offset
conjunto 0
Directorio caché
partición 0 partición 1
c
partición 2 k
partición 0 partición 1
partición 0 partición 1
conjunto 1
Número
de
conjunto
página 0 página 1 página 2 p ... -
conjunto 0
conjunto 1
conjunto 2 c
partición 2
k
partición 2 k
conjunto 2
c
c
p bits c bits
p
porpartición
Cantidadde palabras ·
por conjunto
Cantidaddeparticione s caché (Cantidaddepalabrasencaché)Cantidaddeconjuntos ·
Cantidadde conjuntos
por partición
palabras
por conjunto
particione s
2 Cantidaddeconjuntos ·
particiones
CantidaddeparticionesenMemoriaPrincipal
por partición
2 palabras CantidaddeparticionesenMemoriaPrincipal ·
4
2 páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal
8
20
7
porpartición
Cantidadde palabras ·
por conjunto
Cantidaddeparticione s caché (Cantidaddepalabrasencaché)Cantidaddeconjuntos ·
particiones
CantidaddeparticionesenlaMemoriaPrincipal 2
por partición
2 palabras CantidaddeparticionesenlaMemoriaPrincipal ·
7
páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal
4 bits
conjunto 0
Directorio caché
partición 0 partición 1
partición 3
partición 0 partición 1
partición 0 partición 1
conjunto 1
Número
de
conjunto
página 0 página 1 página 2 8 ... -
conjunto 0
conjunto 1
conjunto 2
4
partición 3
partición 3
conjunto 2
4
8 bits 4 bits
partición 2
partición 2
partición 2
7 bits
conjunto 0
Directorio caché
partición 0 partición 1
partición 3
partición 0 partición 1
partición 0 partición 1
conjunto 1
Número
de
conjunto
página 0 página 1 página 2
9 ... -
conjunto 0
conjunto 1
conjunto 2
4
partición 3
partición 3
conjunto 2
4
9 bits 4 bits
partición 2
partición 2
partición 2
13
7
a) Si la memoria caché tiene 4 conjuntos y 8 particiones por conjunto.
porpartición
Cantidadde palabras · por conjunto
Cantidaddeparticione s caché (Cantidaddepalabrasenlacaché)Cantidaddeconjuntos ·
particiones
2 páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal
9
b) Si la memoria caché tiene 8 conjuntos y 4 particiones por conjunto.
porpartición
Cantidadde palabras · por conjunto
Cantidaddeparticione s caché (Cantidaddepalabrasenlacaché)Cantidaddeconjuntos ·
particiones
2 páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemmoria Principal Cantidad depáginasenlaMemoria Principal
8
%001011011 = &91 %01=&
2 bits
%11=&
conjunto 0
Directorio caché
partición 0 partición 1
partición 2
3
partición 0 partición 1
partición 0 partición 1
conjunto 1
Número
de
conjunto
página 0 página 1 página 2
9
conjunto 0
conjunto 1
conjunto 2 2
partición 2 3
partición 2
2
conjunto 2
2
9 bits 2 bits
partición 0 partición 1 partición 2
2
... conjunto 2
conjunto 2
%0101101=&45 %101=&
2 bits
%11=&
conjunto 0
Directorio caché
partición 0 partición 1
partición 3
partición 0 partición 1
partición 0 partición 1
conjunto 1
Número
de
conjunto
página 0 página 1 página 2
8 ... -
conjunto 0
conjunto 1
conjunto 2
3
partición 3
partición 3
conjunto 2 3
8 bits 3 bits
partición 2
partición 2
partición 2
porpartición
Cantidadde palabras · por conjunto
Cantidaddeparticione s caché (Cantidaddepalabrasenlacaché)Cantidaddeconjuntos ·
palabras
por partición
Cantidadde palabras
por partición
Cantidadde palabras ·
por conjunto
particione s
conjuntos ·
palabras 2
particiones
páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal
a)
b)
A las cuatro líneas del conjunto 01
c)
Pueden ser asignadas al mismo conjunto: 01
x Todas las combinaciones de x con el bit menos significativo a 0.
y Todas las combinaciones con el bit más significativo a 1.
x y
conjunto
DL: 000085 w
FFFF7Axy: 1111 1111 1111 1111 0111 1010
x y
número de página (etiqueta) conjunto
offset
conjunto 0
Directorio caché
partición 0 partición 1 partición 2 partición 3
partición 0 partición 1 partición 2 partición 3
partición 0 partición 1^ partición 2^ partición 3
partición 0 partición 1 partición 2 partición 3
conjunto 1
conjunto 2
conjunto 3
página 0 página 1 página 2
27 ... -
conjunto 0
conjunto 1
conjunto 2
conjunto 3
3 bits
Número
de
conjunto
27 bits^2 bits
R(x 0 , 17)
R(x 1 , 6)
W(100, 8)
R(x 2 , 9)
R(x 3 , 25 )
Organización y contenidos (en base decimal) iniciales:
Instrucción 1ª: R(x 0
Se debe acceder a la posición 10001 (17) de la MP. Por supuesto, ocurre un fallo de página caché, pues inicialmente está vacía.
10001 determina:
Como es almacenada una línea entera, también se almacena el contenido de la dirección anterior (&16)=&32.
Estado actual:
Instrucción 2ª: R(x 1 , 6)
00110 determina:
Estado actual:
número de página (etiqueta) conjunto
offset
página 1
1 bit
2 bits 2 bits
Directorio caché Zona de almacenamiento
conjunto 0
conjunto 1
conjunto 2
conjunto 3
página 0 página 2 página 3 2
página 1
Directorio caché Zona de almacenamiento
conjunto 0 2032 034
conjunto 1
conjunto 2
conjunto 3
página 0 página 2 página 3 2
x 034
x 1
x 2
x 3
página 1
Directorio caché Zona de almacenamiento
conjunto 0 2032 034
conjunto 1
conjunto 2
conjunto 3 0012 014
página 0 página 2 página 3 2
x 34 0
x 112
x 2
x 3
particiones
| MP | = 64 Kbytes = 2
16 bytes || DF || = 16 bits
porpartición
Cantidadde palabras ·
por conjunto
Cantidaddeparticione s caché (Cantidaddepalabrasenlacaché)Cantidaddeconjuntos ·
a) Con algoritmo de ubicación totalmente asociativa.
palabras
por partición
palabras
por conjunto
particione s
conjuntos ·
caché 2
(^) páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal
Evolución de la caché:
número de página (etiqueta)
offset
conjunto 0
Directorio caché
partición 0 partición 1 partición 2 partición 3 página 0 página 1 página 2
13 ... -
conjunto 0^ ...
3 bits
13 bits
Directorio caché
partición 0 partición 1 partición 2 partición 3
Instrucción 1ª: 32B
Fallo de caché (inicialmente está vacía).
etiqueta offset
(directorio caché)
DC = 1622
Directorio caché
partición 0 partición 1 partición 2 partición 3
Instrucción 2ª: 32B
Fallo de caché.
etiqueta offset
(directorio caché)
DC = 1623
Directorio caché
partición 0 partición 1 partición 2 partición 3
Instrucción 3ª: 4A
Fallo de caché.
etiqueta offset
(directorio caché)
DC = 2366
Directorio caché
partición 0 partición 1 partición 2 partición 3
Instrucción 4ª: 4220
Fallo de caché.
etiqueta offset
(directorio caché)
DC = 2096
Directorio caché
partición 0 partición 1 partición 2 partición 3
Instrucción 5ª: A
Fallo de caché y reemplazo.
etiqueta offset
(directorio caché)
DC = 5348
Directorio caché
partición 0 partición 1 partición 2 partición 3
Instrucción 6ª: C0AA
Fallo de caché y reemplazo.
etiqueta offset
(directorio caché)
DC = 6129
b) Con algoritmo de ubicación directa.
palabras
por partición
palabras
por conjunto
particione s
conjuntos ·
caché (^2)
páginas
conjuntos
particione s
Cantidaddeconjuntosenla caché
CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal
Evolución de la caché:
número de página (etiqueta) conjunto
offset
conjunto 0
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 1
conjunto 2
conjunto 3
página 0 página 1 página 2
11 ... -
conjunto 0
conjunto 1
conjunto 2
conjunto 3
3 bits
Número
de
conjunto
11 bits^2 bits
conjunto
C = 3
etiqueta offset
(directorio caché)
DC = 405
partición física: 1623
conjunto 00
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 01
conjunto 10
conjunto 11
Instrucción 2ª: 32B
Fallo de caché.
conjunto
C = 2
etiqueta offset
(directorio caché)
DC = 596
partición física: 2366
conjunto 00
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 01
conjunto 10
conjunto 11
Instrucción 3ª: 4A
Fallo de caché y reemplazo.
conjunto
C = 0
etiqueta offset
(directorio caché)
DC = 529
partición física: 2096
conjunto 00
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 01
conjunto 10
conjunto 11
Instrucción 4ª: 4220
Fallo de caché.
conjunto
C = 0
etiqueta offset
(directorio caché)
DC = 1337
partición física: 5348
conjunto 00
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 01
conjunto 10
conjunto 11
Instrucción 5ª: A
Fallo de caché y reemplazo.
conjunto
C = 2
etiqueta offset
(directorio caché)
DC = 405
partición física: 1622
conjunto 00
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 01
conjunto 10
conjunto 11
Instrucción 1ª: 32B
Fallo de caché (inicialmente está vacía).
conjunto
C = 1
etiqueta offset
(directorio caché)
DC = 1541
partición física: 2366
conjunto 00
Directorio caché
partición 0
partición 0
partición 0
partición 0
conjunto 01
conjunto 10
conjunto 11
Instrucción 6ª: C0AA
Fallo de caché.
c)
(^0011) h 0000 00 00 0 001 0001. Fallo , pues en el conjunto 0 de la caché no nabía nada.
(^0016) h 0000 00 00 0 001 0110.
Total de fallos en este segmento del programa: 1
0017 h 0000 00 00 0 001 0111. Entrada en el bucle externo.
007Fh 0000 00 00 0 111 1111.
(^0080) h 0000 00 00 1 000 0000. Fallo , pues en el conjunto 1 de la caché no nabía nada.
(^0081) h 0000 00 00 1 000 0001.
00A5h 0000 00 00 1 010 0101. Entrada en el bucle interno.
00EFh 0000 00 00 1 110 1111. Fin del bucle interno.
Ahora (si este bucle interno aún no se ha repetido 20 veces) se vuelve a la dirección 00A5h. Fijémonos que todas las direcciones del bucle
interno están en el conjunto 1 de la página 0. Por este motivo, durante la ejecución del bucle interno no se producen fallos ni se provocan
reemplazos.
Continuamos tras salir del bucle interno:
00F0h 0000 00 00 1 111 0000.
00FFh 0000 00 00 1 111 1111.
(^0100) h 0000 00 01 0 000 0000. Fallo , pues en el conjunto 2 de la caché no nabía nada.
0101 h 0000 00 01 0 000 0001.
017Fh 0000 00 01 0 111 1111.
(^0180) h 0000 00 01 1 000 0000. Fallo , pues en el conjunto 3 de la caché no nabía nada.
(^0181) h 0000 00 01 1 000 0001.
01FFh 0000 00 01 1 111 1111.
(^0200) h 0000 00 10 0 000 0000. Fallo , pues en el conjunto 4 de la caché no nabía nada.
(^0201) h 0000 00 10 0 000 0001.
027Fh 0000 00 10 0 111 1111.
(^0280) h 0000 00 10 1 000 0000. Fallo , pues en el conjunto 5 de la caché no nabía nada.
(^0281) h 0000 00 10 1 000 0001.
02FFh 0000 00 10 1 111 1111.
0300 h 0000 00 11 0 000 0000. Fallo , pues en el conjunto 6 de la caché no nabía nada.
(^0301) h 0000 00 11 0 000 0001.
037Fh 0000 00 11 0 111 1111.
(^0380) h 0000 00 11 1 000 0000. Fallo , pues en el conjunto 7 de la caché no había nada.
0381 h 0000 00 11 1 000 0001.
03FFh 0000 00 11 1 111 1111.
(^0400) h 0000 01 00 0 000 0000. Fallo y reemplazo , pues el conjunto 0 de la caché procedía de la página 0.
(^0401) h 0000 01 00 0 000 0001.
047Fh 0000 01 00 0 111 1111.
(^0480) h 0000 01 00 1 000 0000. Fallo y reemplazo , pues el conjunto 1 de la caché procedía de la página 0.
(^0481) h 0000 01 00 1 000 0001.
04B0h 0000 01 00 1 001 0000. Fin del bucle externo.
Total de fallos en este segmento del programa: 9
Se produce fallo y reemplazo al pedir los conjuntos 0 y 1 de la página 0 , pues son reemplazados al final del bucle, al pedir sus conjuntos
tocayos de la página 1.
No se produce fallo al pedir los conjuntos 2 , 3 , 4 , 5 , 6 ni 7 de la página 0 , pues ya estaban en la caché desde la primera pasada por el
bucle; y nunca son reemplazados.
Se produce fallo y reemplazo al pedir los conjuntos 0 y 1 de la página 1 , pues son reemplazados al comienzo del bucle, al pedir sus
conjuntos tocayos de la página 0.
Total de fallos en este segmento del programa: 4
Bucle interno
04B1h 0000 01 00 1 001 0001.
04FFh 0000 01 00 1 111 1111.
(^0500) h 0000 01 01 0 000 0000. Fallo y reemplazo , pues el conjunto 2 de la caché procedía de la página 0.
(^0501) h 0000 01 01 0 000 0001.
057Fh 0000 01 01 0 111 1111.
(^0580) h 0000 01 01 1 000 0000. Fallo y reemplazo , pues el conjunto 3 de la caché procedía de la página 0.
(^0581) h 0000 01 01 1 000 0001.
05DCh 0000 01 01 1 101 1100. Fin del programa.
Total de fallos en este fragmento del programa: 2
Número total de fallos : 1 + 9 1 + 4 9 + 2 = 48
d) Según nos especifican, cuando se produce un fallo, el contenido de la dirección fallida no se lleva desde la memoria principal
simultaneamente a la caché y a la CPU. Tal como está diseñado este sistema de caché, cuando se produce el fallo, primero se lleva el
contenido de las 128 direcciones cuya partición contiene a la dirección pedida desde la memoria principal a la caché y después se lee en la
caché la dirección de marras. Por este motivo, siempre se lee en la caché, tanto si no hay fallo, como si lo hay. La conclusión es que:
Coste total = (Número total de direcciones buscadas) (Tiempo de caché) + (Número total de fallos) (penalización por fallo)
Siendo:
c)
Iteración 1ª:
00 00 Provoca fallo, pues la caché está inicialmente vacía. Va a la partición 0 con la etiqueta 00.
01 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 01. Va a la partición 1 con la etiqueta 01.
02 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 02. Va a la partición 2 con la etiqueta 02.
03 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 03. Va a la partición 3 con la etiqueta 03.
04 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 04. Va a la partición 4 con la etiqueta 04.
05 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 05. Va a la partición 5 con la etiqueta 05.
06 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 06. Va a la partición 6 con la etiqueta 06.
07 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 07. Va a la partición 7 con la etiqueta 07.
Hasta aquí ha habido 8 fallos y ningún reemplazo. Pero ahora acaba de llenarse la caché. A partir de ahora, en cada fallo habrá reemplazo.
08 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 08.
Reemplaza a la más recientemente usada (la que había en la partición 7 con la etiqueta 07 ), actualizando la etiqueta a 08.
Estado actual del directorio caché:
.. .. Aciertos
.. .. Aciertos
01 FF
.. .. Aciertos
02 FF
.. .. Aciertos
03 FF
.. .. Aciertos
.. .. Aciertos
05 FF
.. .. Aciertos
06 FF
.. .. Aciertos
.. .. Aciertos
Directorio caché
partición
partición
partición
partición
partición
partición
partición
partición
Iteración 2ª:
07 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 07.
Reemplaza a la más recientemente usada (la que había en la partición 6 con la etiqueta 06 ), actualizando la etiqueta a 07.
Estado actual del directorio caché:
.. .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF
.. .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF
.. .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
.. .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
.. .. Aciertos, pues la etiqueta 05 está presente en la partición 5 de la caché.
.. .. Aciertos, pues la etiqueta 06 está presente en la partición 6 de la caché.
.. .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
.. .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.
.. .. Aciertos
Directorio caché
partición
partición
partición
partición
partición
partición
partición
partición
Iteración 4ª:
05 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 05.
Reemplaza a la más recientemente usada (la que había en la partición 4 con la etiqueta 04 ), actualizando la etiqueta a 05.
Estado actual del directorio caché:
.. .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF
.. .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF
.. .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
.. .. Aciertos, pues la etiqueta 03 está pesente en la partición 3 de la caché.
.. .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
.. .. Aciertos
05 FF
.. .. Aciertos, pues la etiqueta 06 está presente en la partición 5 de la caché.
06 FF
.. .. Aciertos, pues la etiqueta 07 está presente en la partición 6 de la caché.
07 FF
.. .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
08 FC
Directorio caché
partición
partición
partición
partición
partición
partición
partición
partición
Iteración 5ª:
04 00 Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 04.
Reemplaza a la más recientemente usada (la que había en la partición 3 con la etiqueta 03 , actualizando la etiqueta a 04.
Estado actual del directorio caché:
d) Haciendo el recuento de fallos:
9 fallos en la primera pasada
1 fallo en la segunda pasada
1 fallo en la tercera pasada
1 fallo en la cuarta pasada
1 fallo en la quinta pasada
En total 13 fallos.
e) Según nos especifican, cuando se produce un fallo, el contenido de la dirección fallida no se lleva desde la memoria principal
simultáneamente a la caché y a la CPU. Tal como está diseñado este sistema de caché, cuando se produce el fallo, primero se lleva el
contenido de las 256 direcciones cuya partición contiene a la dirección pedida desde la memoria principal a la caché y después se lee en la
caché la dirección de marras. Por este motivo, siempre se lee en la caché, tanto si no hay fallo, como si lo hay. La conclusión es que:
Coste total = (Número total de direcciones buscadas) (Tiempo de caché) + (Número total de fallos) (penalización por fallo)
Siendo:
(penalización por fallo) = 256 7 = 1792
Coste total = 2301 5 + 13 1792 = 34801
.. .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF
.. .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
.. .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.
.. .. Aciertos
04 FF
.. .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
05 FF
.. .. Aciertos, pues la etiqueta 06 está presente en la partición 5 de la caché.
06 FF
.. .. Aciertos, pues la etiqueta 07 está presente en la partición 6 de la caché.
07 FF
.. .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
08 FC
Directorio caché
partición
partición
partición
partición
partición
partición
partición
partición
.. .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF