Está en la página 1de 7

MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores

I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.
1.- Calcular el porcentaje de aprovechamiento de la capacidad total de la memoria que se usa para diseñar un
circuito combinacional que multiplica dos números binarios de 5 bits y 4 bits respectivamente, partiendo de
módulos de memoria ROM de 26 palabras × 6 bits/palabra.
A) Un aprovechamiento inferior al 50%.
B) Un aprovechamiento comprendido entre el 50% y el 80%.
C) Un aprovechamiento superior al 80%.
D) Ninguna de las anteriores.
2.- Se considera un procesador que dispone de 20 líneas de direcciones (A19 - A0). Para la construcción de su
unidad de memoria se dispone de módulos de 32K palabras, utilizándose las líneas más significativas (A19 -
A17) para la selección de cada módulo. En el mapa de memoria, las direcciones 5FFFF y 80000 (en notación
hexadecimal) se encuentran respectivamente en los módulos:
A) 3 y 4. B) 2 y 3. C) 2 y 4. D) Ninguna de las anteriores.
Nota: Los sucesivos módulos de memoria se comienzan a numerar desde el módulo 0, que corresponde a las
direcciones más bajas de memoria
3.- Un computador tiene conectado un ratón cuya rutina de actualización de su posición y posterior localización
del puntero en la pantalla requiere de 2000 ciclos para su ejecución. Esta rutina debe ejecutarse al menos 30
veces para poder actualizar la posición del ratón en la pantalla. Si el computador tiene una frecuencia de
2,7 GHz, indicar en que rango se encuentra el porcentaje de tiempo que dedica el computador a ejecutar esta
rutina.
A) Menor que 0,05%. B) Mayor que 0,05% y menor que 0,5%.
C) Mayor que 0,5% y menor que 1%. D) Ninguna de las anteriores.
4.- El siguiente algoritmo describe una determinada operación de un sistema digital:
1: Declaración: A[8], B[8], Cont[3]; A1 y A0 son los dos bits menos significativos del
2: A  Bus-Entrada; registro A. Si inicialmente se cargan los registros A y
3: B Bus-Entrada; B desde el bus de entrada con los valores 00010011 y
4: for Cont = 0 to 2 do 11100011 respectivamente, ¿cuáles son los valores
5: if A1 A0  0 1 then contenidos en A y B al finalizar el algoritmo?
6: B 0; A) A = 01001100; B =11100011.
7: endif; B) A = 01001100; B =00000000.
8: Despl.CerradoDcha(A); C) A = 00100110; B =00000000.
9: Despl.CerradoDcha(A); D) Ninguna de las anteriores.
10: endfor;
11: Bus B;
12: Parar;
5.- Dada una memoria caché de tamaño 32 bytes que utiliza correspondencia directa, indicar en qué bloque se
localiza el byte 36 de la memoria principal.
I. Si los bloques tienen un tamaño de 4 bytes.
II. Si los bloques tienen un tamaño de 8 bytes.
A) I: 1, II: 4. B) I: 1, II: 0. C) I: 4, II: 0. D) I: 4, II: 1.
6.- Un bus síncrono tiene un ancho de banda de 5,56 Mbytes/s (1Mbyte= 106 bytes). Sabiendo que multiplexa
16 líneas de datos y que el tiempo de acceso a memoria es de 240 ns en el proceso de lectura, ¿cuál es el tiempo
de ciclo del bus?
A) 80 ns. B) 40 ns. C) 60 ns. D) 30 ns.

7.- Indique si las siguientes afirmaciones son verdaderas:


I. En un procesador de n direcciones todas sus instrucciones deben tener n direcciones explícitas.
II. En los procesadores de pila puede haber instrucciones con una dirección explícita.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

8.- Un ordenador con 24 líneas de dirección tiene una memoria de 16Mbytes (224 bytes) y utiliza E/S aislada de
memoria. Si cada periférico ocupa 8 direcciones, ¿cuál es el número máximo de periféricos que pueden
conectar a este ordenador?
A) 218. B) 221. C) 220. D) Ninguna de las anteriores.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


Se tiene un computador con una memoria caché que utiliza correspondencia directa. Inicialmente la memoria
caché está vacía, consta de 16 bytes por bloque (4 palabras) y un tamaño total de 16 palabras. Dada la siguiente
secuencia de referencias a palabras de memoria:

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

A) (1.5 ptos) Mostrar los aciertos y los fallos de la memoria caché.


B) (1 pto) Mostrar el contenido final de la memoria caché.
C) (1.5 ptos) Calcular la tasa de fallos y la tasa de aciertos.
SOLUCIONES

1.- Calcular el porcentaje de aprovechamiento de la capacidad total de la memoria que se usa para diseñar un
circuito combinacional que multiplica dos números binarios de 5 bits y 4 bits respectivamente, partiendo de
módulos de memoria ROM de 26 palabras × 6 bits/palabra.
A) Un aprovechamiento inferior al 50%.
B) Un aprovechamiento comprendido entre el 50% y el 80%.
C) Un aprovechamiento superior al 80%.
D) Ninguna de las anteriores.

Solución
Con un número de 5 bits se representa como máximo el número 31 y con un número de 4 bits el número 15, por
tanto, el mayor número que se puede representar es 465 (31×15), para lo cual se necesitan 9 bits. Este será el
número de bits necesario para almacenar la palabra.

Para almacenar todas las posibles palabras para realizar la multiplicación hacen falta 25+4 palabras. Con
módulos como los disponibles hacen falta 8 filas de este tipo de módulos (29 / 26 = 23) y en cada una de estas
filas se necesitan 2 módulos, por tanto un total de 16 módulos.

Porcentaje = [(29 × 9) / (16 × (26 × 6))] × 100 = 75 %

Respuesta : B (Un aprovechamiento comprendido entre el 50% y el 80%).


2.- Se considera un procesador que dispone de 20 líneas de direcciones (A19 - A0). Para la construcción de su
unidad de memoria se dispone de módulos de 32K palabras, utilizándose las líneas más significativas (A19 -
A17) para la selección de cada módulo. En el mapa de memoria, las direcciones 5FFFF y 80000 (en notación
hexadecimal) se encuentran respectivamente en los módulos:
A) 3 y 4. B) 2 y 3. C) 2 y 4. D) Ninguna de las anteriores.
Nota: Los sucesivos módulos de memoria se comienzan a numerar desde el módulo 0, que corresponde a las
direcciones más bajas de memoria

Solución
La dirección base de un módulo es la dirección de memoria principal que hay que emplear para acceder a la
primera posición de dicho módulo. En este caso concreto las sucesivas direcciones base de cada módulo las
generaremos con valores sucesivos de los bits A19A17, que son los empleados para seleccionar cada módulo, y
el resto de los bits de la dirección, A16..A0, con el valor cero. En la tabla siguiente se muestra el resultado.

Dirección base en binario Dir. base en


A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A hexadecima
0 l
Módulo 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000
Módulo 1 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20000
Módulo 2 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40000
Módulo 3 0 1 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60000
Módulo 4 1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80000
Módulo 5 1 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A0000
Módulo 6 1 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 0 0 00
Módulo 7 1 1 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 E 0 0 00

Respuesta: C (módulos 2 y 4).

3.- Un computador tiene conectado un ratón cuya rutina de actualización de su posición y posterior localización
del puntero en la pantalla requiere de 2000 ciclos para su ejecución. Esta rutina debe ejecutarse al menos 30
veces para poder actualizar la posición del ratón en la pantalla. Si el computador tiene una frecuencia de
2,7 GHz, indicar en que rango se encuentra el porcentaje de tiempo que dedica el computador a ejecutar esta
rutina.
A) Menor que 0,05%. B) Mayor que 0,05% y menor que 0,5%.
C) Mayor que 0,5% y menor que 1%. D) Ninguna de las anteriores.

Solución

2000 ciclos  30 = 60000 ciclos

60000 ciclos / 2,7 109 Hz = 22,22 µs

(22,22 µs /106 (µs /s)) 100% = 0,00222 %

Respuesta : A (Menor que 0,05%).

4.- El siguiente algoritmo describe una determinada operación de un sistema digital:


1: Declaración: A[8], B[8], Cont[3]; A1 y A0 son los dos bits menos significativos del
2: A  Bus-Entrada; registro A. Si inicialmente se cargan los registros A y
3: B Bus-Entrada; B desde el bus de entrada con los valores 00010011 y
4: for Cont = 0 to 2 do 11100011 respectivamente, ¿cuáles son los valores
5: if A1 A0  0 1 then contenidos en A y B al finalizar el algoritmo?
6: B 0; A) A = 01001100; B =11100011.
7: endif; B) A = 01001100; B =00000000.
8: Despl.CerradoDcha(A); C) A = 00100110; B =00000000.
9: Despl.CerradoDcha(A); D) Ninguna de las anteriores.
10: endfor;
11: Bus B;
12: Parar;

Solución
Primera iteración del bucle Cont = 0:

Nº instrucción A B
2: A  Bus-Entrada; 00010011 --
3: B Bus-Entrada; 11100011
4: for Cont = 0 to 2 do
5: if A1 A0  0 1 then
6: B 0; 00000000
7: endif;
8: Despl.CerradoDcha(A); 10001001
9: Despl.CerradoDcha(A); 11000100
10: endfor
11:

Segunda iteración del bucle Cont = 1:

Nº instrucción A B
11000100 00000000

4: for Cont = 0 to 2 do
5: if A1 A0  0 1 then
6: B 0; 00000000
7: endif;
8: Despl.CerradoDcha(A); 01100010
9: Despl.CerradoDcha(A); 00110001
10: endfor

Primera iteración del bucle Cont = 2:

Nº instrucción A B
00110001 00000000

4: for Cont = 0 to 2 do
5: if A1 A0  0 1 then
6: B 0; 00000000
7: endif;
8: Despl.CerradoDcha(A); 10011000
9: Despl.CerradoDcha(A); 01001100
10: endfor
Bus B
Respuesta: B (A = 01001100; B =00000000).

5.- Dada una memoria caché de tamaño 32 bytes que utiliza correspondencia directa, indicar en qué bloque se
localiza el byte 36 de la memoria principal.
I. Si los bloques tienen un tamaño de 4 bytes.
II. Si los bloques tienen un tamaño de 8 bytes.
A) I: 1, II: 4. B) I: 1, II: 0. C) I: 4, II: 0. D) I: 4, II: 1.

Solución

I. El número de bloques de la memoria caché es C =32/4 = 8


El byte 36 de la memoria principal se localiza en el bloque j = 9
El número de bloque i asignado en la memoria caché al bloque j de la memoria principal se calcula mediante
la siguiente función de transformación:
i = j módulo C = 9 módulo 8 = 1

II. El número de bloques de la memoria caché es C =32/8 = 4


El byte 36 de la memoria principal se localiza en el bloque j = 4
El número de bloque i asignado en la memoria caché al bloque j de la memoria principal se calcula mediante
la siguiente función de transformación:
i = j módulo C = 4 módulo 4 = 0

Respuesta: B (I: 1, II: 0)

6.- Un bus síncrono tiene un ancho de banda de 5,56 Mbytes/s (1Mbyte= 106 bytes). Sabiendo que multiplexa
16 líneas de datos y que el tiempo de acceso a memoria es de 240 ns en el proceso de lectura, ¿cuál es el tiempo
de ciclo del bus?
A) 80 ns. B) 40 ns. C) 60 ns. D) 30 ns.

Solución

Con el ancho de banda dado y sabiendo que se disponen de 16 líneas (2 bytes), se puede calcular el tiempo de
ejecución de la operación de lectura:
t = 2bytes/ 5,56 Mbytes/s = 0,360 µs= 360 ns
Como se necesitarán dos ciclos adicionales, además de los que se usan en el acceso a memoria, uno para el
direccionamiento y otro para el envío de datos a la CPU, se obtiene la siguiente ecuación para el tiempo de
ciclo del bus:
t = 2x+240=360.
Por tanto x=60 ns, y el número de ciclos para el acceso a memoria es 4.

Respuesta: C (60 ns)

7.- Indique si las siguientes afirmaciones son verdaderas:


I. En un procesador de n direcciones todas sus instrucciones deben tener n direcciones explícitas.
II. En los procesadores de pila puede haber instrucciones con una dirección explícita.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

I. Es Falsa. Por ejemplo, existen operaciones binarias en procesadores con tres direcciones que se especifican
con dos direcciones.
II. Es verdadera. Las operaciones para sacar y meter en la pila tienen explícita una dirección.
Respuesta: C (I: no, II: sí)

8.- Un ordenador con 24 líneas de dirección tiene una memoria de 16Mbytes (224 bytes) y utiliza E/S aislada de
memoria. Si cada periférico ocupa 8 direcciones, ¿cuál es el número máximo de periféricos que puede
conectarse a este ordenador?
A) 218. B) 221. C) 220. D) Ninguna de las anteriores.

Solución

Como es E/S aislada de memoria, el nº de direcciones para acceder a palabras en periféricos es igual al número
total de direcciones disponibles: 224
Como cada periférico ocupa 8 direcciones, el número máximo de periféricos que puede conectarse es:
224 direcciones/(8 direcciones/periférico) = 221 periféricos
Respuesta : B

PROBLEMA
Se tiene un computador con una memoria caché que utiliza correspondencia directa. Inicialmente la memoria
caché está vacía, consta de 16 bytes por bloque (4 palabras) y un tamaño total de 16 palabras. Dada la siguiente
secuencia de referencias a palabras de memoria:

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

A) (1.5 ptos) Mostrar los aciertos y los fallos de la memoria caché.


B) (1 pto) Mostrar el contenido final de la memoria caché.
C) (1.5 ptos) Calcular la tasa de fallos y la tasa de aciertos.

Solución

16 bytes por bloque → 2 bits indican la palabra dentro del bloque y 2 bits indican el byte dentro de la palabra
16 palabras en total/4 palabras por bloque → 4 bloques diferentes → 2 bits indican el número de bloque

Referencias a memoria
Referencia Referencia Referencia de byte Acierto/Fallo Nº bloque
de palabra de byte (en binario)

1 4 (0...00000000) (00) (01) (00) Fallo 0


4 16 (0...00000000) (01) (00) (00) Fallo 1
8 32 (0...00000000) (10) (00) (00) Fallo 2
5 20 (0...00000000) (01) (01) (00) Acierto 1
20 80 (0...00000001) (01) (00) (00) Fallo 1
17 68 (0...00000001) (00) (01) (00) Fallo 0
19 76 (0...00000001) (00) (11) (00) Acierto 0
56 224 (0...00000011) (10) (00) (00) Fallo 2
9 36 (0...00000000) (10) (01) (00) Fallo 2
11 44 (0...00000000) (10) (11) (00) Acierto 2
4 16 (0...00000000) (01) (00) (00) Fallo 1
43 172 (0...00000010) (10) (11) (00) Fallo 2
5 20 (0...00000000) (01) (01) (00) Acierto 1
6 24 (0...00000000) (01) (10) (00) Acierto 1
9 36 (0...00000000) (10) (01) (00) Fallo 2
17 68 (0...00000001) (00) (01) (00) Acierto 0

Contenido final de la memoria caché

Nº Bloque Etiqueta Datos (en su lugar


referencia de palabra)
0 0...0000 0001 = 1 17
1 0...0000 0000 = 0 4
2 0...0000 0000 = 0 9
3 - -

El número de accesos total es 16. De los 16 accesos, 10 son fallos y 6 son aciertos, así que la tasa de fallos es de
10/16  100 = 62.5 % de fallos. La tasa de aciertos es 100-tasa de fallos, o también 6/16  100 = 37.5 % de
aciertos.