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


Relacion de Problemas, Ejercicios de Ingeniería Infórmatica

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

Tipo: Ejercicios

2016/2017

Subido el 13/12/2017

vsur
vsur 🇪🇸

5

(1)

2 documentos

1 / 3

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Problema de Fundamentos de Arquitectura de Computadores. Tema 3.
Ejercicios Tema 3: Gestión de Memoria.
1. Calcular el tiempo de acceso medio a memoria de una máquina con una frecuencia
de reloj de 400 Mhz, una penalización de fallo de 20 ciclos de reloj, una tasa de fallos
de 0.05 fallos por instrucción y un tiempo de acceso a la cache de 1 ciclo de reloj
(incluido el tiempo para la detección de acierto). Suponer que las penalizaciones de
fallos en lectura y escritura son iguales.
400 Mhz = 1/4 · 10^8 = 2.5ns por ciclo
Ta = Tacierto · Frec_acierto + Tfallo · Frec_fallo = 1·2.5ns·0.95 + 20·2.5ns·0.05 = 4,875
ns.
2. Suponer que en la caché anterior mejoramos la tasa de fallos de 0.05 a 0.03 fallos
por instrucción duplicando el tamaño de la memoria caché. Esto causa que el tiempo
de acceso a la caché pase a ser de 1.2 ciclos de reloj. En base al tiempo de acceso
medio a la memoria, ¿crees que es una buena solución?
Sí lo es porque el tiempo de acceso medio pasa a ser 4.41 ns que es menor que en el
caso anterior. Ta = 1.2·2.5·0.97 + 20·2.5·0.03 = 4,41 ns.
3. ¿Cuántos bits se necesitan para realizar una cache de correspondencia directa con
64KiB de datos? Supóngase bloques de una palabra, direccionamiento a nivel de
bytes y ancho del bus de datos y direcciones de 32 bits.
Se sabe que 64KiB son 16 K palabras (29 / 25 = 24), que son 214 palabras y, con puesto
que el tamaño de bloque es equivalente a una palabra, dispondremos por tanto de 214
bloques.
Cada bloque tiene 32 bits de datos más la etiqueta, que tiene, en función del tipo de
caché determinado por el enunciado (correspondencia directa) 32 14 2 bits (bits
direcciónbits bloque bytes por palabra), más un bit de validez y otro de suciedad.
Por tanto el tamaño de la caché es:
214 · (32 + (32 14 2) + 1 + 1) = 214 · 50 = 800· 210 = 800 Kibits
Ó 100 KiB para una caché de 64 KiB.
Por tanto, para esta cache, el número total de bits en la cache es más de 1.5 veces más
de lo necesario para almacenar los datos.
4. Dada la siguiente secuencia de referencias a palabras de una memoria de 256 MiB y
suponiendo una memoria caché de correspondencia directa de 16 bloques y 4 bytes
por bloque que inicialmente está vacía, etiquetar cada referencia de la lista como un
acierto o un fallo y mostrar el contenido final de la cache.
1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4, 43, 5, 6, 9, 17
1
pf3

Vista previa parcial del texto

¡Descarga Relacion de Problemas y más Ejercicios en PDF de Ingeniería Infórmatica solo en Docsity!

Ejercicios Tema 3: Gestión de Memoria.

1. Calcular el tiempo de acceso medio a memoria de una máquina con una frecuencia de reloj de 400 Mhz, una penalización de fallo de 20 ciclos de reloj, una tasa de fallos de 0.05 fallos por instrucción y un tiempo de acceso a la cache de 1 ciclo de reloj (incluido el tiempo para la detección de acierto). Suponer que las penalizaciones de fallos en lectura y escritura son iguales.

400 Mhz = 1/4 · 10^8 = 2.5ns por ciclo

Ta = Tacierto · Frec_acierto + Tfallo · Frec_fallo = 1·2.5ns·0.95 + 20·2.5ns·0.05 = 4, ns.

2. Suponer que en la caché anterior mejoramos la tasa de fallos de 0.05 a 0.03 fallos por instrucción duplicando el tamaño de la memoria caché. Esto causa que el tiempo de acceso a la caché pase a ser de 1.2 ciclos de reloj. En base al tiempo de acceso medio a la memoria, ¿crees que es una buena solución?

Sí lo es porque el tiempo de acceso medio pasa a ser 4.41 ns que es menor que en el caso anterior. Ta = 1.2·2.5·0.97 + 20·2.5·0.03 = 4,41 ns.

3. ¿Cuántos bits se necesitan para realizar una cache de correspondencia directa con 64KiB de datos? Supóngase bloques de una palabra, direccionamiento a nivel de bytes y ancho del bus de datos y direcciones de 32 bits.

Se sabe que 64KiB son 16 K palabras (2 9 / 2 5 = 2 4 ), que son 2 14 palabras y, con puesto que el tamaño de bloque es equivalente a una palabra, dispondremos por tanto de 2 14 bloques.

Cada bloque tiene 32 bits de datos más la etiqueta, que tiene, en función del tipo de caché determinado por el enunciado (correspondencia directa) 32 – 14 – 2 bits (bits dirección – bits bloque – bytes por palabra), más un bit de validez y otro de suciedad. Por tanto el tamaño de la caché es:

2 14 · (32 + (32 – 14 – 2) + 1 + 1) = 2 14 · 50 = 800· 2 10 = 800 Kibits

Ó 100 KiB para una caché de 64 KiB.

Por tanto, para esta cache, el número total de bits en la cache es más de 1.5 veces más de lo necesario para almacenar los datos.

4. Dada la siguiente secuencia de referencias a palabras de una memoria de 256 MiB y suponiendo una memoria caché de correspondencia directa de 16 bloques y 4 bytes por bloque que inicialmente está vacía, etiquetar cada referencia de la lista como un acierto o un fallo y mostrar el contenido final de la cache.

1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4, 43, 5, 6, 9, 17

Nota: Estos valores marcan indican la dirección de memoria en formato decimal , obviando los bits de desplazamiento.

En primer lugar obtenemos los valores necesarios para definir el contenido de la caché:

16 bloques => 4 bits indican el bloque

4 bytes por bloque => 2 bits indican el byte dentro del bloque (en este caso se omitirá)

256MiB de memoria => 2 28 bytes / 2 2 bytes/bloque = 2^26 bloques 26 (MP) – 4 (Cache) = 22 bits para definir el bloque de memoria dentro de cada línea de caché.

Referencia

de palabra

Referencia de byte (en

binario)

Acierto/Fallo Nº bloque

1 (0…000000000) (0001) (00) Fallo 1

4 (0…000000000) (0100) (00) Fallo 4

8 (0…000000000) (1000) (00) Fallo 8

5 (0…000000000) (0101) (00) Fallo 5

20 (0…000000001) (0100) (00) Fallo 4

17 (0…000000001) (0001) (00) Fallo 1

19 (0…000000001) (0011) (00) Fallo 3

56 (0…000000011) (1000) (00) Fallo 8

9 (0…000000000) (1001) (00) Fallo 9

11 (0…000000000) (1011) (00) Fallo 11

4 (0…000000000) (0100) (00) Fallo 4

43 (0…000000010) (1011) (00) Fallo 11

5 (0…000000000) (0101) (00) Acierto 5

6 (0…000000000) (0110) (00) Fallo 6

9 (0…000000000) (1001) (00) Acierto 9

17 (0…000000001) (0001) (00) Acierto 1

Contenido final de la caché:

Nº Bloque Validez Tag Datos (en su lugar referencia de palabra) 0 0 - -