Examen de Fundamentos de Ordenadores 15 de septiembre de 2009
Duración: una hora y treinta minutos.
No está permitido consultar libros ni apuntes ni usar calculadora u otros dispositivos electrónicos. Responda en la hoja de respuestas que se adjunta (sin olvidar poner su nombre).
Publicación de calificaciones provisionales: 30 de septiembre. Fecha límite de solicitud de revisión: 2 de octubre.
Revisión: 7 de octubre a las 13:00 en el aula B-225.
Primera parte: preguntas (7 puntos)
Instrucciones:
Hay que responder con V (verdadero) o F (falso) a cada apartado de cada pregunta. Los apartados son independientes entre sí. Se considerará la respuesta en blanco como un fallo.
Cada pregunta se valorará sobre 1 punto: • Las tres respuestas correctas: 1 punto • Dos respuestas correctas: 0,5 puntos • Una o ninguna respuesta correcta: 0 puntos
1. La realización microprogramada del secuenciador de Símplez
a) Sigue el modelo propuesto por von Neumann en los años cincuenta. b) Incluye una memoria de control con direccionamiento explícito. c) Es más eficiente en tiempo de ejecución que una realización cableada. 2. El controlador de interrupciones de Algorítmez
a) Permite gestionar las prioridades y el anidamiento de interrupciones.
b) Tiene como propósito multiplicar por 8 el número máximo de periféricos de Algorítmez. c) Permite intercambiar datos procedentes de los ocho periféricos que tiene conectados a través
de su puerto de datos.
3. Sobre el controlador de ADM de Algorítmez:
a) Permite intercambiar datos entre un periférico y la memoria principal gracias a un bus dedi-cado.
b) Se accede a su registro de datos (DAT), que contiene la palabra que se intercambiará con la memoria principal, mediante instrucciones IN/OUT.
c) Mientras dure la transferencia de un bloque completo de información, la UCP no podrá ac-ceder a la memoria principal.
4. El controlador gráfico de Algorítmez
a) Incluye la memoria de fotograma, que forma parte del espacio de direccionamiento de la UCP.
b) Incluye una memoria de acceso serial (SAM) con cuatro registros para la lectura mediante ADM de cada uno de los planos de la memoria de fotograma.
6. Suponga que hemos diseñado una versión de Algorítmez con una memoria oculta de 2 KB con correspondencia rígida y 8 bytes por línea. Si decidimos hacer un rediseño para doblar el tamaño de la memoria oculta hasta 4 KB.
a) La tasa de acierto en el acceso a memoria oculta en la ejecución de cualquier programa se multiplicará por dos.
b) Habrá que rediseñar la memoria oculta para usar líneas de 16 bytes.
c) El tamaño de la memoria de etiquetas y bit de validez dependerá del tamaño de las líneas. 7. Sobre los algoritmos de remplazo para memorias ocultas:
a) No tienen sentido en el caso de correspondencia rígida, ya que el remplazo es trivial. b) Son distintos, según que la correspondencia sea libre (full associative) o por grupos (set
associative).
c) Si el remplazo es aleatorio, el sistema de memoria oculta no requiere el uso de memoria asociativa.
Segunda parte: ejercicio (3 puntos)
En la página siguiente se reproduce el listado que se obtiene al ensamblar la rutina de consulta de interrupciones de Algorítmez, pero ocultando los contenidos de algunos bytes y algunas instrucciones
1. Justifique la traducción que el ensamblador ha hecho para la instrucciónLD .0,#TBRF
2. Rellene lo que falta desde la dirección 33 a la 36 (contenidos en hexadecimal e instrucción en ensamblador)
3. Rellene lo que falta en la dirección 48 (hexadecimal y código ensamblador) 4. Rellene los contenidos en hexadecimal de los bytes de direcciones 28 y 55
MODULE RCI
EXPORT RCI_ENT ; dirección de comienzo
FROM GP IMPORT TBPRF ; dirección de la tabla de periféricos
MSKOP EQU H'0080 ; para comprobar si está operativo MSKIT EQU H'0003 ; para comprobar si (PR)=(IT)=1 MSKFIN EQU H'FF ; para comprobar si fin tabla [0] 6A RCI_ENT PUSH .0 ; guarda los registros que va a utilizar:
[1] 00 ; R0, R1 y R2 [2] 6A PUSH .1 [3] 01 [4] 6A PUSH .2 [5] 02 [6] 8A LD .0,#TBPRF ; R0 es puntero a la tabla [7] F0 [8] 00 [9] 00 [10] 6C CLR .1 ; R1 es puntero al vector [11] 01
[12] 8B BUCLE LD.B .1, [.0++] ; carga byte0 en R1 [13] 01
[14] C5 CMP.B .1, #MSKFIN; mira si fin de tabla [15] F1 [16] FF [17] DE BZ FIN [18] F0 [19] 16 [20] 8B LD.B .2, [.0++] ; carga byte1 en R2 [21] 02
[22] 88 AND .2, #MSKOP ; mira si operativo [23] F2 [24] 80 [25] 00 [26] DE BZ SIGUE [27] F0 [28] ??
[29] 68 IN .2, [.1] ; lee estado periférico
[30] 12
[31] 6D NOT .2
[32] 02
[33] ?? ????????? ; mira si interrupción pendiente
[34] ?? [35] ?? [36] ?? [37] DF BNZ SIGUE [38] F0 [39] 09 [40] E6 CALL [[.1++]] ; bifurca a RS [41] 10
[42] 6B FIN POP .2 ; restaura los registros
[43] 02
[44] 6B POP .1
[45] 01
Algorítmez
Formato de instrucciones: 7 4 3 0 CRX CR 7 0 CD0 7 0 CD1 7 6 5 4 3 0 T IMDX CO Modos de direccionamiento:MD Nombre Efecto Resultado cuando (CRX) = 15
00 autoincremento DE = (RX) (RX)+1 → RX ó (RX)+2 → RX inmediato (con CD de 1 o 2 bytes) 01 indexado DE = (CD)+(RX)
CD: 1 byte con signo
relativo a CP 10 autoincremento indirec-to DE = ((RX)) (RX)+2 →RX directo (con CD de 2 bytes) 11 indexado indirecto DE = ((CD)+(RX))
CD: 1 byte con signo
relativo a CP e indirecto Repertorio de instrucciones: Tipo 0: 7 6 5 4 3 0 I X ø ø CO 0 0
hex. nem. hex. nem.
00 CLRC 05 BRKV 01 CLRV 06 NOP 02 EI 07 WAIT 03 DI 08 HALT 04 BRK 09 RET 0A RETI Tipo 2:
Formato general, con T = 10 y con dos, tres o cuatro bytes, dependiendo del modo de direccionamiento
hex. nem. hex. nem.
?0 ADD ?8 AND ?1 ADD.B ?9 OR ?2 ADDC ?A LD ?3 ADDC.B ?B LD.B ?4 SUB ?C ST ?5 SUB.B ?D ST.B ?6 SUBC ?E — ?7 SUBC.B ?F — Tipo 1: 7 6 5 4 3 0 I X ø ø CO 0 1 7 4 3 0 CR ø ø ø ø
(salvo para IN y OUT)
hex. nem. hex. nem.
40 SHR 48 IN 41 SHL 49 OUT 42 ROR 4A PUSH 43 ROL 4B POP 44 RORC 4C CLR 45 ROLC 4D NOT 46 SHRA 4E NEG 47 SHLA 4F ADJ Tipo 3:
Formato general, con T = 11 y con dos, tres o cuatro bytes, dependiendo del modo de direccionamiento
hex. nem. hex. nem.
?0 LD .E ?8 BC ?1 ST .E ?9 BNC ?2 LD.B .E ?A BV ?3 ST.B .E ?B BNV ?4 CMP ?C BN ?5 CMP.B ?D BNN ?6 CALL ?E BZ ?7 BR ?F BNZ
Examen de Fundamentos de Ordenadores 15 de septiembre de 2009 HOJA DE RESPUESTAS Apellidos: Nombre:
Primera parte
(Las casillas en blanco o con cualquier signo distinto de «V» o «F» se considerarán falladas).
a b c 1 2 3 4 5 6 7
Segunda parte
1. Justifique la traducción que el ensamblador ha hecho para la instrucciónLD .0,#TBRF
dir. contenido justificación
[6] 8A
[7] F0
[8] 00
[9] 00
2. Rellene lo que falta desde la dirección 33 a la 36 (contenidos en hexadecimal e instrucción en ensamblador)
dir. hexadecimal ensamblador [33]
[34] [35] [36]
3. Rellene lo que falta en la dirección 48 (hexadecimal y código ensamblador) dir. hexadecimal ensamblador
[48]
4. Rellene los contenidos en hexadecimal de los bytes de direcciones 28 y 55 dir. hexadecimal
[28] [55]
Examen de Fundamentos de Ordenadores 15 de septiembre de 2009 SOLUCIONES
Primera parte
Apellidos: Nombre:(Las casillas en blanco o con cualquier signo distinto de «V» o «F» se considerarán falladas).
a b c 1 F V F 2 V F F 3 F F F 4 V V F 5 F V F 6 F F V 7 V F F
Segunda parte
1. Justifique la traducción que el ensamblador ha hecho para la instrucciónLD .0,#TBRF
dir. contenido justificación
[6] 8A tipo=10, MD=00 (autoincremento inmediato), CO=H’A
[7] F0 RX=R15; R=0
[8] 00 El valor deTBPRF no se conoce en tiempo de ensamblaje. (El ensamblador pone 0 y pone el símboloTBPRF
[9] 00 y la dirección 8 en la tabla de símbolos externos)
2. Rellene lo que falta desde la dirección 33 a la 36 (contenidos en hexadecimal e instrucción en ensamblador)
dir. hexadecimal ensamblador
[33] 88 AND .2, #MSKIT
[34] F2
[35] 03
[36] 00
3. Rellene lo que falta en la dirección 48 (hexadecimal y código ensamblador) dir. hexadecimal ensamblador
[48] 0A RETI
4. Rellene los contenidos en hexadecimal de los bytes de direcciones 28 y 55 dir. hexadecimal
[28] 14