Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ejercicios memoria caché, Ejercicios de Ingeniería Infórmatica

Asignatura: Fundamentos de Arquitectura de Computadores, Profesor: no me acuerdo, Carrera: Ingeniería Informática, Universidad: UJAEN

Tipo: Ejercicios

2014/2015

Subido el 26/01/2015

eidrieen
eidrieen 🇪🇸

4.5

(2)

1 documento

1 / 20

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Ejercicios
de
Arquitectura
de
Computadoras
José Garzía
2009
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Vista previa parcial del texto

¡Descarga Ejercicios memoria caché y más Ejercicios en PDF de Ingeniería Infórmatica solo en Docsity!

Ejercicios

de

Arquitectura

de

Computadoras

José Garzía

En este tipo de ejercicios debemos tener siempre presentes estas tres ecuaciones:

 

porpartición

Cantidadde palabras

MP (Cantidad depalabrasenMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·

 

porpartición

Cantidadde palabras

por conjunto

Cantidaddeparticione s

caché ( Cantidaddepalabrasenlacaché)Cantidaddeconjuntosenlacaché ·

Cantidaddeconjuntos enla caché

CantidaddeparticionesenMemoria Principal

(Cantidad depáginasenlaMemoriaPrincipal )

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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

partición 2

k

partición 2 k

conjunto 2

c

c

p bits c bits

p

 Un computador tiene una unidad de memoria con 16 líneas de dirección, y una memoria caché de 1K palabras. La memoria caché utiliza

correspondencia asociativa por conjunto s, con un tamaño de partición de 16 palabras y 4 particiones por conjunto. Explique razonadamente

en qué campos se divide la dirección de memoria principal 0000110111000011 e indique el valor de cada uno de estos campo en decimal.

 

porpartición

Cantidadde palabras ·

por conjunto

Cantidaddeparticione s caché (Cantidaddepalabrasencaché)Cantidaddeconjuntos ·

    conjuntos

Cantidadde conjuntos

por partición

palabras

por conjunto

particione s

2 Cantidaddeconjuntos ·

 

porpartición

Cantidadde palabras

MP (CantidaddepalabrasenlaMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·

    particiones

CantidaddeparticionesenMemoriaPrincipal

por partición

2 palabras CantidaddeparticionesenMemoriaPrincipal ·

4

  2 páginas

conjuntos

particione s

Cantidaddeconjuntosenla caché

CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal

8   

 Una memoria caché asociativa por conjuntos consta de 16 conjuntos con 4 particiones por conjunto. La memoria principal tiene una

capacidad de 1 Mb (

20

palabras) dividida en particiones de 2

7

palabras. La palabra almacenada en la dirección de memoria principal,

expresada en binario es: 1010 0001 1001 0011 0000.

a) ¿A qué conjunto debe ir?.

b) ¿Qué etiqueta deberá tener la partición donde vaya?.

 

porpartición

Cantidadde palabras ·

por conjunto

Cantidaddeparticione s caché (Cantidaddepalabrasencaché)Cantidaddeconjuntos ·

caché palabras

por partición

palabras

por conjunto

particione s

conjuntos ·

caché 2

  ^2

 , pero este resultado no se necesitaba en este ejercicio.

 

porpartición

Cantidadde palabras

MP (CantidaddepalabrasenlaMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·

    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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

partición 3

partición 3

conjunto 2

4

9 bits 4 bits

partición 2

partición 2

partición 2

 Un computador tiene una unidad de memoria de 2

13

palabras y una memoria caché asociativa por conjuntos de 2

7

palabras, suponiendo

que la UCP genera la dirección de memoria principal 00101 1011 0111 , indique cuál es el conjunto caché donde irá y qué etiqueta

tendrá su partición.

a) Si la memoria caché tiene 4 conjuntos y 8 particiones por conjunto.

b) Si la memoria caché tiene 8 conjuntos y 4 particiones por conjunto.

a) Si la memoria caché tiene 4 conjuntos y 8 particiones por conjunto.

  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 ·

 ^ 

 

porpartición

Cantidadde palabras

MP (CantidaddepalabrasenlaMemoriaPrincipal)CantidaddeparticionesenMemmoriaPrincipal ·

    particiones

CantidaddeparticionesenMemoriaPrincipal

por partición

palabras

CantidaddeparticionesenMemoriaPrincipal ·

  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 ·

palabras

por partición

Cantidadde palabras

por partición

Cantidadde palabras

por conjunto

Cantidadparticione s

conjuntos ·

 ^ 

 

porpartición

Cantidadde palabras

MP (CantidaddepalabrasenlaMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·

    particiones

CantidaddeparticionesenMemoriaPrincipal

por partición

de palabras

CantidaddeparticionesenMemoriaPrincipal *

  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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

partición 3

partición 3

conjunto 2 3

8 bits 3 bits

partición 2

partición 2

partición 2

 Sea una memoria caché de 128 bytes con estrategia de ubicación asociativa por conjuntos, de forma que hay 4 conjuntos y cada uno

puede almacenar 4 particiones. Las direcciones físicas están compuestas por 32 bits y la unidad más pequeña direccionable es el byte.

a) Trace un esquema de la sección de control y la zona de almacenamiento de la caché, indicando cómo se relacionan las direcciones

físicas con las direcciones caché.

b) ¿A qué particiones de la caché puede asignarse la dirección física 000010AF (hexadecimal)?

c) Si las direcciones físicas (hexadecimales) 00001AF y FFFF7A xy pueden ser asignadas simultáneamente al mismo conjunto caché, ¿qué

valores pueden tener x e y ?.

  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

 

porpartición

Cantidadde palabras

MP (CantidaddepalabrasenlaMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·

    particiones

CantidaddeparticionesenlaMemoriaPrincipal 2

por partición

de palabras

CantidaddeparticionesenlaMemoriaPrincipal ·

  páginas

conjuntos

particione s

Cantidaddeconjuntosenla caché

CantidaddeparticionesenlaMemoria Principal Cantidad depáginasenlaMemoria Principal  

a)

b)

DF: 000010AF

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

0 2 4 6 8 A C E

8 9 A B C D E F

conjunto

ZA: 0000215

DL: 000085 w

000010AF: 0000 0000 0000 0000 0001 0000 101 0 1 111

FFFF7Axy: 1111 1111 1111 1111 0111 1010

x y

número de página (etiqueta) conjunto

offset

DF

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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

27 bits^2 bits

 Sea un computador con una memoria caché de una capacidad de 8 particiones de 2 bytes cada una, incluida en un sistema sin memoria

virtual. La caché está organizada asociativamente en 4 conjuntos. La operación de búsqueda en la caché es por demanda. El reemplazo es

FIFO (el primero en entrar es el primero en salir). La actualización de la memoria principal es mediante post-escritura bajo fallo. La memoria

principal está organizada en bytes y tiene una capacidad de 32 bytes, de forma que el contenido de la posición  es 2·. Si definimos W ( x , )

como la escritura del contenido de la variable x sobre la posición de memoria de dirección ; y la función R ( x , ) como la lectura sobre la

variable x del contenido de la posición de memoria de dirección , analice cómo evoluciona el contenido de la zona de almacenamiento y del

directorio de la caché y el contenido de la memoria principal cuando el procesador emite la siguiente secuencia de operaciones:

R(x 0 , 17)

R(x 1 , 6)

W(100, 8)

W(101, 16 )

R(x 2 , 9)

R(x 3 , 25 )

Analice también el contenido de las variables x 0 , x 1 , x 2 y x 3.

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:

✔ Conjunto 0.

✔ 2ª palabra dentro de la línea.

✔ Almacenar 10b=2d en el directorio.

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:

✔ Conjunto 3.

✔ Almacenar 0b=0d en el directorio.

Estado actual:

número de página (etiqueta) conjunto

offset

DF

página 1

1 bit

MEMORIA PRINCIPAL

2 bits 2 bits

Directorio caché Zona de almacenamiento

MEMORIA CACHÉ

conjunto 0

conjunto 1

conjunto 2

conjunto 3

C

C

C

C

página 0 página 2 página 3 2

página 1

MEMORIA PRINCIPAL

Directorio caché Zona de almacenamiento

MEMORIA CACHÉ

conjunto 0 2032 034

conjunto 1

conjunto 2

conjunto 3

C

C

C

C

página 0 página 2 página 3 2

x 034

x 1

x 2

x 3

VARIABLES

página 1

MEMORIA PRINCIPAL

Directorio caché Zona de almacenamiento

MEMORIA CACHÉ

conjunto 0 2032 034

conjunto 1

conjunto 2

conjunto 3 0012 014

C

C

C

C

página 0 página 2 página 3 2

x 34 0

x 112

x 2

x 3

VARIABLES

 Sea un sistema caché capaz de almacenar 4 particiones, cada una de ellas de 8 bytes. La memoria principal es de 64 Kbytes. La caché

inicialmente está vacía. Si es necesario reemplazar alguna partición, ésta se elige mediante el algoritmo LRU. El procesador emite la

siguiente secuencia de direcciones físicas (en notación hexadecimal):

32B5, 32B8, 4A91, 4220 , A727 y C0AA

Analice cómo evoluciona el contenido de la zona de almacenamiento y del directorio de la caché, haciendo un recuento de los fallos de línea

con cada algoritmo de ubicación:

a) Totalmente asociativa.

b) Directa

 

porpartición

Cantidadde palabras

MP (CantidaddepalabrasenlaMemoriaPrincipal)CantidaddeparticionesenlaMemoriaPrincipal ·

    particiones

CantidaddeparticionesenlaMemoriaPrincipal 2

por partición

de palabras

CantidaddeparticionesenlaMemoriaPrincipal ·

| 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

DF

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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

13 bits

Directorio caché

partición 0 partición 1 partición 2 partición 3

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

1622 (1622)^1623 (1623)^2366 (2366)

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

MEMORIA CACHÉ

1622 (1622)^1623 (1623)^2366 (2366)^2096 (2096)

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

DF

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

MEMORIA PRINCIPAL

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

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

MEMORIA CACHÉ

Instrucción 6ª: C0AA

Fallo de caché.

c)

✔ Instrucciones previas a la entrada en el bucle externo

(^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

✔ Primera ejecución del bucle externo.

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

✔ Siguientes ejecuciones del bucle externo.

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

✔ Instrucciones posteriores a la salida del bucle externo.

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 + 91 + 49 + 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:

(penalización por fallo) = 128  10  = 1280 

Coste total = 26336  + 48  1280  = 87776 

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

00  FF

..  .. Aciertos

01 FF

..  .. Aciertos

02 FF

..  .. Aciertos

03 FF

..  .. Aciertos

04 FF

..  .. Aciertos

05 FF

..  .. Aciertos

06 FF

..  .. Aciertos

07 FF

..  .. Aciertos

07 FC

07 FC

DF

Directorio caché

MEMORIA CACHÉ

C

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é.

02 FF

..  .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.

04 FF

..  .. Aciertos, pues la etiqueta 05 está presente en la partición 5 de la caché.

05 FF

..  .. Aciertos, pues la etiqueta 06 está presente en la partición 6 de la caché.

06 FF

..  .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.

08 FC

..  .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.

03 FF

..  .. Aciertos

07 FF

DF 08 FC

Directorio caché

MEMORIA CACHÉ

C

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é.

02 FF

..  .. Aciertos, pues la etiqueta 03 está pesente en la partición 3 de la caché.

03 FF

..  .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.

04 FF

..  .. 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

DF 08 FC

Directorio caché

MEMORIA CACHÉ

C

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) = 2567   = 1792 

Coste total = 23015   + 131792  = 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é.

02 FF

..  .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.

03 FF

..  .. 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

08 FC

DF

Directorio caché

MEMORIA CACHÉ

C

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