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


E3 2014 solució, Apuntes de Ingeniería Infórmatica

Asignatura: Introducció als Computadors, Profesor: , Carrera: Enginyeria de Sistemes de Telecomunicació, Universidad: UPC

Tipo: Apuntes

2014/2015

Subido el 26/05/2015

konoth
konoth 🇪🇸

2 documentos

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Examen E3 (12 de mayo de 2014) IC - 13-14-Q2
Apellidos y nombre: ………………………………………………………………………………………………………………… Grup: …………… DNI:…………………………
1 / 4
Examen 3. (Temas 8, 9, 10 y 11)
Duración del examen: 1 hora y 45 minutos
La solución de cada ejercicio se tiene que escribir en el espacio reservado para ello en el propio enunciado.
No podéis utilizar calculadora, móvil, apuntes, etc.
La solución del examen se publicará en Atenea mañana y las notas antes del 19 de mayo.
Ejercicio 1 (2 puntos)
a) Indicad el valor que debe tener cada uno de los bits de la palabra de control de la UPG (sin subsistema de I/O ni memoria)
para que realice, durante un ciclo, la acción concreta especificada mediante el mnemotécnico. Indicad con x las casillas cuyo
valor no importe para la ejecución de la instrucción. En caso de que no se pueda realizar la acción tachad toda la línea de
señales. (1 punto)
Mnemotécnico
@A
@B
Rb/N
OP
F
In/Alu
@D
WrD
N
(hexa)
SHLI R2, R4, -2
100 xxx 0 00
111 0 010 1 FFFE
CMPLT -, R9, R5
OUT R5 // ADD R2, R5, R4
101 100 1 00
100 0 010 1 xxxx
AND R0, R0, R0
000 000 1 00
000 0 000 1 xxxx
b) Indicad el mnemotécnico que corresponde a cada una de las siguientes palabras de control de la UPG (sin subsistema de I/O
ni memoria). (1 punto)
Mnemotécnico
@A
@B
Rb/N
OP
F
In/Alu
@D
WrD
N
(hexa)
MOVE R7, R4 100 xxx x 10
000 0 111 1 X X X X
CMPLEI -, R5, 0xFF32 101 xxx 0 01
001 x xxx 0 F F 3 2
XOR R1, R0, R2 000 010 1 00
010 0 001 1 X X X X
CMPEQ R2, R5, R2 101 010 1 01
011 0 010 1 X X X X
Criterio de corrección:: cada fila con 1 o más errores, -0.25.
Ejercicio 2 (0,75 puntos)
Completad la siguiente tabla ensamblando las instrucciones en ensamblador SISA o desensamblando las instrucciones en lenguaje
máquina según sea necesario. Indica poniendo NA en la casilla aquellos casos en los que la instrucción no corresponda al lenguaje
SISA.
Lenguaje máquina SISA Lenguaje ensamblador SISA
0x1034 CMPLTU R6, R0, R0
0x51BE LDB R6, -2(R0)
0xAFE0 OUT 224, R7
Criterio de corrección:: cada fila con 1 o más errores, -0.25
pf3
pf4

Vista previa parcial del texto

¡Descarga E3 2014 solució y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Examen E3 (12 de mayo de 2014) IC - 13-14-Q

Apellidos y nombre: ………………………………………………………………………………………………………………… Grup: …………… DNI:…………………………

Examen 3. (Temas 8, 9, 10 y 11)

  • Duración del examen: 1 hora y 45 minutos
  • La solución de cada ejercicio se tiene que escribir en el espacio reservado para ello en el propio enunciado.
  • No podéis utilizar calculadora, móvil, apuntes, etc.
  • La solución del examen se publicará en Atenea mañana y las notas antes del 19 de mayo.

Ejercicio 1 (2 puntos) a) Indicad el valor que debe tener cada uno de los bits de la palabra de control de la UPG (sin subsistema de I/O ni memoria) para que realice, durante un ciclo, la acción concreta especificada mediante el mnemotécnico. Indicad con x las casillas cuyo valor no importe para la ejecución de la instrucción. En caso de que no se pueda realizar la acción tachad toda la línea de señales. (1 punto)

Mnemotécnico

@A @B Rb/NOP F In/Alu@D WrD N (hexa) SHLI R2, R4, -2 100 xxx 0 00 111 0 010 1 FFFE

CMPLT -, R9, R

OUT R5 // ADD R2, R5, R4 101 100 1 00 100 0 010 1 xxxx

AND R0, R0, R0 000 000 1 00 000 0 000 1 xxxx

b) Indicad el mnemotécnico que corresponde a cada una de las siguientes palabras de control de la UPG (sin subsistema de I/O ni memoria). (1 punto)

Mnemotécnico

@A @B Rb/NOP F In/Alu@D WrD N (hexa) MOVE R7, R4 100 xxx x 10 000 0 111 1 X X X X

CMPLEI -, R5, 0xFF32 (^) 101 xxx 0 01 001 x xxx 0 F F 3 2

XOR R1, R0, R2 000 010 1 00 010 0 001 1 X X X X

CMPEQ R2, R5, R2 101 010 1 01 011 0 010 1 X X X X

Criterio de corrección:: cada fila con 1 o más errores, -0.25.

Ejercicio 2 (0,75 puntos) Completad la siguiente tabla ensamblando las instrucciones en ensamblador SISA o desensamblando las instrucciones en lenguaje máquina según sea necesario. Indica poniendo NA en la casilla aquellos casos en los que la instrucción no corresponda al lenguaje SISA.

Lenguaje máquina SISA Lenguaje ensamblador SISA 0x1034 CMPLTU R6, R0, R 0x51BE (^) LDB R6, -2(R0) 0xAFE0 OUT^ 224,^ R

Criterio de corrección:: cada fila con 1 o más errores, -0.

Examen E3 (12 de mayo de 2014) IC – 13-14-Q

Ejercicio 3 (1,5 puntos) Dado el siguiente fragmento de código en C (el código no tiene que hacer algo útil), indicad como se implementaría en un procesador que use la UPG vista en clase, utilizando la UC de propósito específico (UCe) y la UP de propósito general (UPG). Todos los datos son enteros.

if (R0 > -500) { R1 = R0+R1-6; } else { R1 = R2 / 4; } R6=-4;

a) Completad el fragmentos de grafo de estados de la UC de propósito específico para que junto con la UPG formen un procesador que realice la funcionalidad descrita en el fragmento de código anterior. Indicad los arcos que faltan, las etiquetas de los arcos (z, !z, o nada) y completad las casillas de cada palabra de control que se especifica con mnemotécnicos a la derecha de cada nodo del grafo. (0.75 puntos)

b) Completad el fragmento de programa en lenguaje ensamblador SISA para que el procesador formado por la unidad de control de propósito general (UCG) junto con la UPG realice la funcionalidad descrita en el fragmento de código en C (el código no tiene que hacer algo útil). El código SISA ya escrito siempre utiliza el registro R7 para valores temporales. En las comparaciones, hay que interpretar los datos como valores enteros. Rellenad la parte subrayada que falta. (0.75 puntos)

Criterio de corrección: En cada uno de los cuatro apartados, un error -0.25, dos errores -0.5, tres o más errores 0.

CMPLEI - ,R 0, -

ADD R1, R0,R 1

SUBI R1,R 1, 6

SHAI R1,R 2,- 2

MOVEI R6,- 4

@I-Mem 0x0000 MOVI R7, 0x0C 0x0001 MOV HI R7, 0xFE 0x0002 CMP LE R7, R0, R 0x0003 B NZ R7, 3 0x0004 ADD^ R1,^ R0,^ R 0x0005 ADDI R1, R1, - 0x0006 B Z R7, 2 0x0007 MOV I R7, - 0x0008 SHA R1, R2, R 0x0009 MOVI R6, -

!z z

Examen E3 (12 de mayo de 2014) IC – 13-14-Q

Ejercicio 6 (2,5 puntos)

Sobre un SISC-Harv uniciclo (UCG+UPG+IO+Memoria) y dado un vector almacenado en memoria que contiene números naturales codificados en 16 bits, queremos calcular cuántos elementos del vector son pares y cuántos son impares.

  • El número de elementos del vector, N, se leerá del teclado. Nos garantizan que N será mayor que cero.
  • El primer elemento del vector se almacena a partir de la posición 0xD0CE. Los siguientes elementos se almacenan en posiciones consecutivas.
  • El resultado debe mostrarse por impresora. En primer término la cantidad de números pares y a continuación la cantidad de números impares.
  • Los puertos de entrada/salida son los vistos en teoría (KEY-DATA, KEY-STATUS, PRINT-STATUS, PRINT_DATA) con efecto lateral. Nos facilitan una versión incompleta de la solución. Completad (en los espacios subrayados) el código ensamblador SISA para que realice la función anteriormente descrita. ; Inicializaciones MOV I R3, 0xCE MOV HI R3, 0xD0 ; carga dirección de inicio del vector MOVI R4, 0x00 ; contador números pares R4 = 0x MOVI R5, 0x01 ; máscara R5 = 0x IN R7, KEY-STATUS BZ R7, - IN R1, KEY-DATA ; lectura de N sobre R1 desde teclado OR R2, R1, R1 ; copia de R1 sobre R ; Bucle principal LD R6, 0(R3) AND R7, R6, R B NZ R7, 1 ADDI R4, R4, 1 ADDI R3, R3, 2 ADDI R1, R1, - B NZ R1, - ; Presentación resultados SUB R2, R2, R4 ; guarda en R2 la cantidad de números impares IN R7, PRINT-STATUS BZ R7, - OUT PRINT-DATA, R4 ; imprime cantidad de números pares IN R7, PRINT-STATUS BZ R7, - OUT PRINT-DATA, R2 ; imprime cantidad de números impares

Además, contestad las siguientes preguntas:

  1. Si los datos del vector fuesen naturales codificados en 8 bits almacenados en posiciones consecutivas, ¿cómo debería modificarse el código anterior? El puntero utilizado para recorrer el vector (R3) debería incrementarse en un a unidad y el LD debería ser substituido por LDB.
  2. Con la instrucción OR R2, R1, R1 (octava instrucción del programa) copiamos el valor actual de R1 sobre R2. Indicad otra instrucción SISA que permita realizar la misma operación. Podría obtenerse el mismo resultado con las instrucciones AND R2, R1, R1 y con ADDI R2, R1, 0

Criterio de corrección: 0.25 inicialización R3, 0.25 Entrada/salida, 1 bucle principal (0.5 obtención elementos vector, 0. actualización contador), 0.5 cada pregunta