universidad carlos iii de madrid departamento de ... · dada la estructura del computador...

25
1 UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: . Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal: a) 010011 b) 100111 Ejercicio 3 Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 6: int d; d = (a-2)*(a+b*c); Indique un fragmento de código en ensamblador del MIPS 32 que permita evaluar la expresión anterior. El resultado ha de almacenarse en el registro $t5. Ejercicio 2 Indique las fases de ejecución de una instrucción máquina.

Upload: others

Post on 27-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

1

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal:

a) 010011 b) 100111

Ejercicio 3 Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 6: int d; d = (a-2)*(a+b*c); Indique un fragmento de código en ensamblador del MIPS 32 que permita evaluar la expresión anterior. El resultado ha de almacenarse en el registro $t5. Ejercicio 2 Indique las fases de ejecución de una instrucción máquina.

Page 2: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

2

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 20 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Represente en el estándar de coma flotante IEEE 754 de 32 bits el valor -17.25. Exprese el resultado final en hexadecimal. Ejercicio 2. Indique el valor decimal del siguiente número representado en el estándar de coma flotante IEEE 754 de 32 bits. 0x00200000 Ejercicio 3. ¿Cuántos números no normalizados se pueden representar en el estándar IEEE 754 de 32 bits? Ejercicio 4. Dado el siguiente fragmento de programa .data a: .word 10 b: .word 5 .text li $t0 2 lw $t1, a lw $t2, b label1: bgt $t0, $t1, label2 addi $t2, $t2, 2 addi $t0, $t0, 1 b label1 label2: sw $t0, a sw $t2, b Indique el valor que tienen los registros $t0, $t1 y $t2 y las posiciones de memoria a y b al final de la ejecución del programa

Page 3: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

3

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 20 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Indique el modo de direccionamiento utilizado en los campos de las siguientes instrucciones: lw $t1, ($t3) addi $t1, $t2, 80 Ejercicio 2. Sea un computador de 32 bits con 64 registros y 100 instrucciones máquina. Indique el formato de la instrucción lw $t1, n($t2) asumiendo que la instrucción cabe en una palabra, que $t1 y $t2 son identificadores de registros y n es un número que representa un desplazamiento. Ejercicio 3. Represente el número -17.25 en el estándar de coma flotante IEEE 754 de 32 bits. Ejercicio 4. Dado el siguiente fragmento de programa .data a: .word 10 b: .word 5 .align 2 v: .space 800 .text . . . Si v representa un array de número enteros. Indique:

a) El número de elementos del vector. b) Indique las instrucciones en ensamblador necesarias para ejecutar la siguiente sentencia de alto

nivel v[20] = v[30]; c) Indique las instrucciones en ensamblador necesarias para ejecutar: v[10] = b;

Page 4: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

4

UNIVERSIDAD CARLOS III DE MADRID

DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: . Ejercicio 1. Dado el siguiente fragmento de programa

la $t1, 0x04000000 la $t2, 0x04100000 li $t3, 0 li $t4, 2000 bucle: bgt $t3, $t4, fin lw $t5, ($t1) addi $t5, $t5, 80 sw $t5, ($t2) addi $t3, $t3, 1 addi $t1, $t1, 4 addi $t2, $t2, 4 fin:

Indique de forma razonada el número de accesos que se realizan a memoria cuando se ejecuta dicho fragmento de programa. Ejercicio 2. Considere la siguiente función de un lenguaje de alto nivel:

int función(int A[ ], int B[ ], int N, int x) { int i = 0; for (i = 0; i < N; i = i + 1) B[i] = A[i] + X; return X; }

Donde A y B representan arrays de números enteros y N el número de elementos de los dos arrays. Escriba una función en ensamblador que implemente la misma funcionalidad, para ello debe seguirse el convenio de paso de parámetros visto en clase.

Page 5: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

5

UNIVERSIDAD CARLOS III DE MADRID. DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno:___________________________________________________________ Grupo:___________. Ejercicio 1. Considere un computador de 32 bits con una caché de 64 KB asociativa por conjuntos de 4 vías. El tamaño de la línea es de 128 bytes. El tiempo para servir un fallo es de 120 ns. El computador dispone de un sistema de memoria virtual que emplea páginas de 8 KB y tiene instalada una memoria principal de 1 GB. Indique de forma razonada:

a) El número de líneas de la caché b) El número de conjuntos de la caché c) El tamaño del bloque que se transfiere en un fallo entre memoria principal y caché. d) El formato de la dirección virtual. e) El número máximo de páginas en este computador. f) ¿Qué es un marco de página? g) El número de marcos de página de este computador. h) El tamaño del bloque que se transfiere entre disco y memoria principal cuando ocurre un fallo de página i) El elemento del computador que genera el fallo de página

Ejercicio 2. Considere la siguiente función de un lenguaje de alto nivel y un posible fragmento de la sección de datos en ensamblador. int función(int A, int B, int C, int D) {

int x; x = A + B * C + D; return x;

}

.data: N1: .word 8 N2: .word 7 N3: .word 9 N4: .wrod 6 N5: .word 0

a) Escriba una función en ensamblador que implemente la misma funcionalidad, para ello debe seguirse estrictamente el convenio de paso de parámetros visto en clase.

b) Escriba en ensamblador el código necesario para invocar a la función anterior pasando como parámetros los valores de las posiciones de memoria N1, N2, N3 y N4. El resultado que devuelve la función debe almacenarse en N5.

Page 6: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

6

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal:

a) 010011 b) 110111 c) 100000

Ejercicio 3 Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique un fragmento de código en ensamblador del MIPS 32 que permita evaluar la expresión anterior. El resultado ha de almacenarse en el registro $t5. Ejercicio 2 Represente en el estándar de coma flotante IEEE 754 el valor -23,25.

Page 7: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

7

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Sea un computador de 32 bits con 64 registros y 100 instrucciones máquina. Indique el formato de la instrucción moveM m($t1), n($t2), que copia el contenido de la posición de memoria indicada por n($t2) a la posición de memoria indicada por m($t1). Los desplazamientos utilizados (n y m) deben poder direccionar en complemento a dos el rango [-215 , 215 -1]. Ejercicio 2. Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias para poder ejecutar las siguientes operaciones elementales: RT1 ¬ R1 (siendo R1 el registro número 1 del banco de registros) RE ¬ R3 ( siendo R3 el registro número 3 del banco de registros) Ejercicio 3. Traduzca a ensamblador del MIPS 32 el siguiente fragmento de programa. // variables globales int a; int b; int c; int d; int main() int f (int x, int y, int z, int w) { { a = 2; b = 3; c = 4; d = 8; int s; int r; s = (x + y) * (z + w); return (s); r = func(a, b, c, d); } print(r); }

Page 8: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

8

UNIVERSIDAD CARLOS III DE MADRID. DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno:___________________________________________________________ Grupo:___________. Ejercicio 1. Considere un computador de 32 bits con una caché de 64 KB asociativa por conjuntos de 4 vías y un tiempo de acceso de 4 ns. El tamaño de la línea es de 128 bytes. El tiempo para servir un fallo es de 120 ns. El computador dispone de un sistema de memoria virtual que emplea páginas de 8 KB y tiene instalada una memoria principal de 1 GB. Indique de forma razonada:

j) El número de líneas de la caché k) El número de conjuntos de la caché l) El tamaño del bloque que se transfiere en un fallo entre memoria principal y caché. m) El formato de la dirección virtual. n) El número máximo de páginas en este computador. o) ¿Qué es un marco de página? p) El número de marcos de página de este computador. q) El tamaño del bloque que se transfiere entre disco y memoria principal cuando ocurre un fallo de página r) Calcular la tasa de aciertos necesaria para que el tiempo medio de acceso al sistema de memoria sea de 20

ns.

Ejercicio 2. Considere un controlador de un sensor de temperatura. El controlador dispone de 3 registros:

• Registro de datos (dirección 0x1000), registro de 32 bits que almacena la temperatura. • Registro de control (dirección 0x1004), registro de 32 bits. Cuando se escribe en el registro el valor 010 se

le indica al controlador que inicie una toma de temperatura. • Registro de estado (dirección 0x1008), registro de 32 bits. Si el valor del registro es 0, el controlador no

dispone de una medida estable. Si el valor es 1, el controlador dispone de una medida estable. Si el computador al que se conecta este controlador tiene un mapa de E/S y memoria común y dispone del juego de instrucciones del MIPS 32, realice un programa que de forma indefinida lea temperaturas. Cada vez que se lee un nuevo valor de la temperatura se almacena dicho valor en la posición de memoria 0x0000A0000.

Page 9: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

9

UNIVERSIDAD CARLOS III DE MADRID

DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Represente en el estándar IEEE 754 de simple precisión el valor -13,125 Ejercicio 2. Dada la siguiente expresión de un lenguaje de alto nivel

int a = 4; int b = 3; int c = 2: int d; d = (a+b)*(c+3);

Indique un fragmento de código en ensamblador del MIPS 32 que permita evaluar la expresión anterior. El resultado ha de almacenarse en el registro $s0. Ejercicio 3. ¿Qué son los bits de guarda y el redondeo en el estándar IEEE 754?

Page 10: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

10

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. ¿Qué es y para qué se utiliza el registro $ra en MIPS? Ejercicio 2. Represente en el estándar de coma flotante IEEE 754 de 32 bits el valor -0,25. Exprese el resultado final en hexadecimal. Ejercicio 3. Sea un computador de 32 bits que direcciona la memoria por bytes y que tiene un repertorio de 130 instrucciones máquina. El procesador incluye un banco con 64 registros. Indicar el formato de la siguiente instrucción máquina addi $t1, $t2, n, similar a la que existe en el MIPS 32, donde $t1 y $t2 representan registros y n un número en complemento a dos. Indique el formato asumiendo que la instrucción debe ocupar sólo una palabra. Considerando el formato indicado y asumiendo que n se representa en complemento a dos, ¿cuál es el mayor valor positivo que puede tomar n? Ejercicio 4. Considere el siguiente fragmento: .data .align 3 v1: .space 80 v2: .space 80 n: .word 9

a) Si v1 y v2 son vectores de tipo entero ¿Cuántos elementos tiene cada vector?

b) ¿Para qué sirve align 3? ¿Tiene sentido utilizarlo en este ejemplo?

c) Traduzca a ensamblador la siguiente sentencia escrita en un lenguaje de alto nivel: n = v1[2] * v2[8];

Page 11: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

11

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Explique cuáles son los registros que se utilizan para pasar parámetros a subrutinas y qué registros se usan para recoger resultados en el ensamblador del MIPS estudiado. Ejercicio 2. ¿Cuál es la principal funcionalidad de la memoria caché en un ordenador? Ejercicio 3. Considere un computador de 32 bits con una caché de 1 MB asociativa por conjuntos de 4 vías con un tiempo de acceso de 2 ns, y una memoria principal con 2 GB. El tamaño de la línea es de 128 bytes. El computador emplea un esquema de memoria virtual con páginas de 4 KB. Indique de forma razonada:

a) El número de líneas de la caché. b) El número de conjuntos de la caché. c) El formato de la dirección virtual. d) El número máximo de páginas que puede tener un proceso en este computador. e) El número de marcos de página de este computador. f) El número de líneas de caché que se pueden almacenar en una página

Page 12: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

12

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. ¿Qué es el ciclo de fetch? Ejercicio 2. ¿Cuál es la principal funcionalidad de la memoria virtual? Ejercicio 3. Considere un computador de 64 bits con una caché de 512 KB asociativa por conjuntos de 8 vías con un tiempo de acceso de 2 ns, y una memoria principal con 1 GB. El tamaño de la línea es de 128 bytes. El computador emplea un esquema de memoria virtual con páginas de 8 KB. Indique de forma razonada:

a) El número de líneas de la caché. b) El número de conjuntos de la caché. c) El tamaño del bloque que se transfiere en un fallo entre memoria principal y caché. d) El formato de la dirección virtual. e) El número de marcos de página de este computador. f) El tamaño máximo que puede ocupar la imagen de memoria de un proceso en este computador.

Page 13: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

13

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Sea un procesador con memoria virtual paginada de direcciones virtuales de 32 bits y páginas de 8 KB. Se pide:

a) Indique el formato de la dirección virtual. b) Señale el número máximo de páginas que puede tener un programa en ejecución en este computador

Ejercicio 2. En el ámbito del procesador ¿Qué es una interrupción y por qué se puede producir? Ejercicio 3. Sea un disco con las siguientes características:

• Platos: 5, con 2 superficies por plato • Velocidad de rotación: 7200 rpm • Número de pistas de una cara del plato: 30000 • Tiempo de búsqueda: 1 ms por cada 100 pistas atravesadas • Sectores por pista: 600

Suponiendo que la cabeza está en la pista 0 y se solicita un sector de la pista 500. Calcular:

a) Capacidad del disco duro b) La latencia de rotación c) Tiempo de transferencia de un sector d) Tiempo de acceso a un sector

Page 14: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

14

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Indique el valor decimal del siguiente número representado en el estándar IEEE 754 de simple precisión: 0xBE800000 Ejercicio 2. Dada la siguiente expresión de un lenguaje de alto nivel

int a = 0; int b = 8; int c; c = 3 * 3 * (a+b*b);

Indique un fragmento de código en ensamblador del MIPS 32 que permita evaluar la expresión anterior. El resultado ha de almacenarse en el registro $t3. Ejercicio 3. Dada una variable de tipo int y otra de tipo float en un computador de 32 bits. ¿se puede almacenar el valor 230 + 5 de forma exacta en las dos variables? Razone su respuesta.

Page 15: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

15

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. ¿Qué es y para qué se utiliza el registro de instrucción? Ejercicio 2. ¿Cuál es el valor decimal del número 0x40200000 representado según el estándar IEEE 754 de coma flotante? Ejercicio 3. Sea un computador de 32 bits con 32 registros y 115 instrucciones máquina. Indique el formato de la instrucción hipotética beqz $t1, dirección($t2) donde $t1 y $t2 son identificadores de registros y dirección representa una dirección de memoria. Ejercicio 4. Considere el siguiente fragmento: .data v1: .space 80 v2: .space 80 c: .byte 0

a) ¿Para qué sirve .space?

b) Si v1 y v2 son vectores que almacenan elementos de tipo char, ¿Cuántos elementos tiene cada vector?

c) Traduzca a ensamblador la siguiente sentencia escrita en un lenguaje de alto nivel:

if (v1[5] > v2[10]) c = v1[5]; else c = v2[10];

Page 16: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

16

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Considere una función F que recibe 8 argumentos de tipo entero y no devuelve ningún resultado. Escriba el fragmento de código necesario para invocar a la función F, con los valores 1, 2, 3, 4, 5, 6, 7 y 8. Ejercicio 2. Dado el siguiente fragmento de programa

la $t1, 0x4000 li $t3, 0 li $t4, 500

bucle: bgt $t3, $t4, fin lw $t5, ($t1) addi $t5, $t5, 80 sw $t5, ($t1) addi $t3, $t3, 1 addi $t1, $t1, 4 fin:

Indique de forma razonada el número de accesos que se realizan a memoria cuando se ejecuta dicho fragmento de programa. Si este fragmento de código en un procesador MIPS de 32 bits con una caché de 128 KB, un tiempo de acceso de 4 ns y un tamaño de línea 16 bytes. Indique de forma razonada la tasa de aciertos que tiene este fragmento de código asumiendo que la caché está inicialmente vacía.

Page 17: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

17

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno: . Grupo: .

Ejercicio 1. Considere un computador de 64 bits con una caché de 1 MB asociativa por conjuntos de 4 vías con un tiempo de acceso de 2 ns, y una memoria principal con 2 GB. El tamaño de la línea es de 128 bytes. El computador emplea un esquema de memoria virtual con páginas de 4 KB. Indique de forma razonada:

a) El número de líneas de la caché. b) El número de conjuntos de la caché. c) El formato de la dirección virtual. d) El número máximo de páginas que puede tener un proceso en este computador. e) El número de marcos de página de este computador. f) El número de líneas de caché que se pueden almacenar en una página

Ejercicio 2. Considere la hipotética instrucción máquina PUSHREGS R1, R2, R3. Esta instrucción, ocupa una palabra y almacena en la cima de la pila tres valores en este orden: el contenido de R1, el contenido de R2 y el contenido de R3, actualizando el puntero de pila adecuadamente Considere que el registro puntero de pila es el registro 29 del banco de registros y que la ALU incluye un código de operación que permite sumar un 4 (0100) al operando que entra a la ALU procedente del multiplexor A. Indique las operaciones elementales necesarias para ejecutar esta instrucción.

Memoriaprincipal

Procesador

Banco deregistros

Unidad de ControlMAR MBR RI

ALU

RE

Señales de control

Bus de direccionesBus de datos

Bus de control

Señales de interrupción

RT1 RT2

RT3

PC

4

A

T1

Td Ta

T3

T2

B

E

RCSC

RA

Cod. OP

RB

L

E

MUX A MUX B

+

MA0 MB1 0 1

T4

T5

T6

T7

T8

C1 C2C3

C4

C9 C10

C11

C5

C7C8

C6

Businterno

Page 18: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

18

UNIVERSIDAD CARLOS III DE MADRID. DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado Alumno:___________________________________________________________ Ejercicio 1. Considere la siguiente función de un lenguaje de alto nivel y un fragmento de la sección de datos en ensamblador. int función(int A, int B, int C)

{ int x; if ((A == B) && (A == C)) x = A + C;

else x = B; return x; }

.data: N1: .word 8 N2: .word 7 N3: .word 9

a) Escriba una función en ensamblador que implemente la misma funcionalidad, para ello debe seguirse estrictamente el convenio de paso de parámetros visto en clase.

b) Escriba en ensamblador el código necesario para invocar a la función anterior pasando como parámetros los valores de las posiciones de memoria N1, N2, y N3. El resultado que devuelve la función debe escribirse por pantalla

Ejercicio 2 Se quiere comprobar qué mejora se obtiene cuando se sustituye un controlador de un ratón que funciona con E/S programada por otro que funciona con interrupciones. En el primer caso el controlador debe activarse 30 veces por segundo y en cada activación consume 6000 ciclos de reloj para la consulta y posible actualización del puntero. En el segundo caso, la rutina de actualización del puntero solo se activa cuando se produce la correspondiente interrupción producida por el movimiento del ratón. Esta rutina consume 4000 ciclos de reloj. Si en un computador de 1 GHZ, se mueve el ratón una media de dos veces por segundo, calcule qué porcentaje de mejora se obtiene al sustituir el controlador que emplea E/S programada por el que emplea interrupciones.

Page 19: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

19

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni dispositivos electrónicos de ningún tipo. Responda en el espacio reservado. Duración del examen: 20 minuttos

Ejercicio 1. Represente en el estándar IEEE754 de simple precisión el valor -24,25. Exprese el resultado en hexadecimal. Ejercicio 2. Considere un hipotético computador con las siguiente características: tamaño de palabra de 16 bits, código de operación de las instrucciones de 3 bits y cuatro registros. El computador dispone del siguiente juego de instrucciones. Indique las instrucciones máquina que permiten sumar el valor 5 al contenido del registro 1 y almacenar el resultado en la posición de memoria 0x000F. Explique el significado de cada instrucción indicada.

Ejercicio 3. Conteste correctamente y de forma breve a la siguientes pregunta: ¿qué se almacena en el contador de programa y para que se usa?

Page 20: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

20

Ejercicio 4. Dada el siguiente programa escrito en C int a = 8; int b = 5; int c; main() { scanf(“%d” , &b); // lee un valor y lo almacena en b if (a + 2 == b) c = c + b; else c = 5; }

Page 21: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

21

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 20 minutos. NO se podrán utilizar libros, apuntes ni dispositivos electrónicos de ningún tipo. Responda en el espacio reservado.

Ejercicio 1. En relación al estándar IEEE 754 de simple precisión, se pide:

a) Indique el valor decimal correspondiente al mayor número negativo representable. b) Indique el valor de 0xFFF00000, que se corresponde con los bits almacenados en una variable de tipo float.

Ejercicio 2. Sea un computador de 64 bits, con un juego de 130 instrucciones máquina y una banco con 128 registros. Indique de forma justificada el formato de la hipotética instrucción máquina addm $t1, $t2, dir, que suma el contenido del registro $t2, con el contenido de la posición de memoria dir y deja el resultado en el registro $t1. Ejercicio 3. Conteste correctamente y de forma brevemente razonada a las siguientes preguntas:

a) Dado el siguiente código, indicar si la codificación de la función func es correcta o no. En caso negativo proponga una solución para corregir el código. En caso afirmativo, justifique su respuesta.

func: li $s1, 1 #s1 para r li $s0, 1 #s0 para i li $t0, 7

bucle: bgt $s0, $a0, fin div $s1, $st0, $s0 addi $s0, $s0, 3 b bucle

fin: move $v0, $s1 #resultado li $a0, 5 li $a1, ‘a’ jal funcYY li $s4, 5

jr $ra

b) Si la función func es una función que acepta 3 parámetros de tipo char, indique el código necesario para invocar a la función func de la siguiente forma: func(‘a’, ‘b’, ‘c’);

Page 22: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

22

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 20 minutos. NO se podrán utilizar libros, apuntes ni dispositivos electrónicos de ningún tipo. Responda en el espacio reservado.

Ejercicio 1. Escriba una función (denominada intercambiar) en el ensamblador del MIPS 32 (siguiendo estrictamente el convenio de paso de parámetros) que acepte tres argumentos: la dirección de inicio de un vector de números enteros, la dirección de inicio de otro vector de números enteros y otro tercer argumento que es un número entero que representa el número de elementos de los dos vectores. La función debe intercambiar el contenido de los dos vectores, es decir, el elemento i-esimo del primer vector se debe almacenar en el elemento i-esimo del segundo y viceversa. Ejercicio 2. Dada el procesador con la siguiente estructura.

especifique las operaciones elementales y señales de control necesarias para ejecutar la instrucción máquina: adds R1, R2. Esta función suma el contenido de los dos registros R1 y R2 y deja el resultado en la cima de la pila (esto implica hacer hueco en la pila para almacenar el resultado). Asuma que el número del registro R1 es el 1, el del registro R2 es el 2 y el del puntero de pila es el 16.

Page 23: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

23

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado _ Ejercicio 1. Dado el siguiente fragmento de programa escrito en el ensamblador del MIPS 32

la $t1, 0x04000 li $t2, 0 li $t3, 0 li $t4, 1000 bucle: bgt $t3, $t4, fin lw $t5, ($t1) addi $t2, $t2, $t5 addi $t1, $t1, 4 addi $t3, $t3, 1 b bucle fin:

Se pide: a) Indique de forma razonada el número de bytes que ocupa dicho programa en memoria y el número de

accesos que se realizan a memoria cuando se ejecuta dicho fragmento de programa. b) Si el fragmento de programa se ejecuta en un computador que dispone de una única caché de 4 MB de

tamaño y un tamaño de línea de 16 bytes, indique el número de aciertos y fallos que se producen, teniendo en cuenta que la caché se encuentra inicialmente vacía.

Ejercicio 2. Considere la siguiente función de un lenguaje de alto nivel:

int función(float A[ ], int N, float x) { int i; for (i = 0; i < N; i = i + 1) A[i] = x; return 0; }

Donde A representan un array de números de tipo float y N el número de elementos del array. Escriba una función en ensamblador que implemente la misma funcionalidad, para ello debe seguirse el convenio de paso de parámetros visto en clase.

Page 24: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

24

UNIVERSIDAD CARLOS III DE MADRID. DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 20 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado.

Ejercicio 1. Sea un computador de 32 bits, con el juego de instrucciones del MIPS32 y un mapa de entrada/salida común. Este computador dispone de un sensor con los siguientes tres registros de 32 bits:

• Registro de datos (con dirección 0x108). En él se almacena el valor de temperatura leído. • Registro de control (con dirección 0x104). Cuando se escribe en el registro el valor 0x2 se inicializa el

sensor. El sensor se encuentra inicializado cuando en el registro de estado se almacena un 1. Mientras haya un valor 0, el registro no se considera inicializado.

• Registro de estado (con dirección 0x100). Si el valor del registro es 0, no se ha realizado ninguna lectura. Si el valor es 1, se ha realizado una lectura de temperatura y el sensor dispone en el registro de datos del valor de temperatura. Si el valor es -1, se ha producido un error y ha de volver a inicializar el lector (solo hay que inicializar una vez el lector, salvo error).

Escriba el código de dos funciones, que sigan estrictamente el convenio de paso de parámetros: - InicialiarSensor: Esta función no acepta argumentos ni devuelve ningún resultado. La función

inicializa el sensor y retorna cuando el sensor está inicializado. - LeerTemperatura: Esta función lee el valor de temperatura. La función devuelve dos resultados: el

valor leído y un código: 0 si se ha leído correctamente y -1 en caso de error.

Ejercicio 2. Dada el procesador de 32 bits con la siguiente estructura.

considere la siguiente instrucción máquina: addm R1, dir, donde R1 es un registro y dir una dirección de memoria. Si el valor de dir es 0, esta instrucción no hace nada. En caso contrario suma el contenido de la posición de memoria dir con el valor del registro R1 y almacena el resultado en R1.

a) Indique el formato de dicha instrucción. b) Especifique las operaciones elementales necesarias para ejecutar dicha instrucción, excluyendo el fetch.

Page 25: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE ... · Dada la estructura del computador elemental, proporcionado en el material de apoyo, Indicar las señales de control necesarias

25

UNIVERSIDAD CARLOS III DE MADRID. DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo. Responda en el espacio reservado.

Ejercicio 1. Sea un disco con 600 sectores por pista, con una velocidad de rotación de 7200 RPM y un tiempo medio de búsqueda de 2ms. Calcule el tiempo medio de acceso a un sector.

Ejercicio 2. Se desea desarrollar un controlador para un dispositivo que permite medir la tensión arterial de una persona. El módulo de E/S del medidor de tensión se conecta a un computador que dispone de un procesador de 32 bits, mapa de E/S común y juego de instrucciones del MIPS 32. El módulo dispone de los siguientes registros de 32 bits:

• Registro con dirección 1000. Cuando se carga en este registro el valor 1, se le indica al módulo que se quiere comenzar una medida de la tensión.

• Registro con dirección 1004. Cuando la medición ha acabado en este registro se almacena un 1, mientras el dispositivo se encuentra realizando la medición, su valor es 0.

• Registro con dirección 1008. Cuando el dispositivo finaliza la medición de la tensión, en este registro se almacena el valor correspondiente a la tensión sistólica.

• Registro con dirección 1012. Cuando el dispositivo finaliza la medición de la tensión, en este registro se almacena el valor correspondiente a la tensión diastólica.

Escriba una función en ensamblador, denominada Controlador_tension que permita controlar el funcionamiento de este equipo. Esta función no recibirá ningún parámetro de entrada. La función se encargará de realizar una medición de la tensión y devolverá como parámetros de salida el valor de la tensión sistólica y el valor de la tensión diastólica. Para el desarrollo de este ejercicio ha de seguirse la convención de paso de parámetros vista en el temario de la asignatura.