Examen: Parcial 1:2025_11_19:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 2: 2025-11-19. GISAM

  • Tiempo: 30 minutos
  • Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
  • Temario: S5-S8

Contenido

Enunciado

El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un problema

Test (5 ptos)

  • Realizado a través de Aula virtual
  • 10 preguntas tipo test
  • Las respuesats incorrectas restan un 25% del valor de la pregunta
  • Solución disponible en Aula virtual

Problema (5 ptos): Ordenacion/alineamiento/direccionamiento

Disponemos de un computador CISC de 32-bits que tiene 16 registros de propósito general, denominados r1-r16. Puede acceder tanto a datos alineados como no alineados, y tiene una ordenación little-endian. Utiliza direccionamiento directo para el acceso a las variables en memoria

Este es el formato de alguna de las instrucciones:

alt text

Descripción:

  • lb rd, dir: Leer el byte que hay en la dirección dir y guardarlo en el registro rd
  • lh rd, dir: Leer la media palabra que hay en la direción dir y guardarla en el registro rd
  • lw rd, dir: Leer la palabra que hay en la dirección dir y guardarla en el registro rd
  • add rd, rs1, dir: Almacenar en el registro rd el valor del registro rs1 sumado a la variable que está en la dirección dir. La operación realizada es rd = rs1 + mem[dir]

En esta tabla se muestra el volcado, en hexadecimal, de una parte del segmento de datos:

Dirección 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x10010000 0A 1B 2C 3D 4E 5F 60 71 72 AA BA CB DE EF F1 10
0x10010010 FA 00 2B 01 00 40 03 4C 10 01 01 40 00 00 2D 01

Resuelve los siguientes apartados, aportando una justificación precisa, clara y concisa:

a) (1 pto) Indica el valor del registro r1 al ejecutarse la instrucción:

  lb r1, 0x10010003 

b) (1 pto) Indica el valor del registro r2 al ejecutarse la instrucción:

  lh r2, 0x1001000F

c) (1 pto) Indica el valor del registro r3 al ejecutarse la instrucción:

  lw r3, 0x10010005

d) (1 pto) Indica el número de accesos al segmento de datos que genera el siguiente programa:

  lw r4, 0x10010017  
  add r5, r4, 0x1001008  

e) (1 pto) Indica el tamaño en bytes del siguiente programa

  lw r5, 0x10010009  
  lw r6, 0x1001000C  
  add r7, r5, 0x10010000  
  add r8, r6, 0x1001001C  

Evaluación

Los apartartados se evalúan de manera independiente. Cada uno vale 1 punto. Se divide en dos partes: La justificación (0.5) y el resultado final (0.5)

Justificación (0.5)

La solución tiene que estar justificada de forma directa, precisa y concisa.

  • Directa: Usa el camino más corto para llegar a la solución
  • Precisa: Usa el lenguaje técnico aprendido en la asignatura. Usa la nomenclatura dada y Define claramente la que añadas para cada término de las ecuaciones usadas, sin ambiguedad
  • Concisa: Tienes que ir al grano. Aporta sólo el texto y los datos estrictamente necesarios para entender la justificación

La justificación indica de dónde ha salido el resultado final. Debes mencionar los datos de partida y qué ecuaciones o cálculos realizas para llegar a la solución

Estos son algunos de los errores que restan puntos

  • Redundancia. Enunciado repetido (-0.2). No debes volver a escribir el enunciado ni el apartado. Con indicar el número de apartado que se resuelve es suficiente
  • Rodeo. Hay una forma más directa para obtener la solución (-0.2). Siempre debes elegir el camino más directo para llegar a la solución
  • Nomenclatura no definida (-0.2). Utilizas un término no definido (ni tampoco es el habitual en la asignatura)
  • Redundancia en unidades (-0.2). Hay conceptos que ya incluyen la unidad, como por ejemplo CPI (no hay que repetirla)
  • No indicas explícitamente el nombre de lo que estás calculando (-0.2). Si estas calculando por ejemplo el tiempo de cpu, menciónalo explícitamente
  • Notación ambigua (-0.2). Usas un término para denotar un concepto, cuando normalmente se usa de otra manera (Por ejemplo usar T para indicar el tiempo de cpu, cuando T se suele usar para referirse al periodo del reloj)
  • Lenguaje poco preciso (-0.2)
  • Lenguaje poco directo (-0.2)
  • Justificación no concisa (-0.2)

Resultado numérico (0.5)

El resultado obtenido sólo será evaluado si hay una justificación. En caso de no haberla, la puntuación es de 0. Estos son algunos de los errores que restan puntos:

  • No hay justificación (-0.5)
  • Resultado incorrecto (-0.5)
  • No utilizas los prefijos G, M, K, m, µ, n, p (-0.2)
  • Solución no aproximada (-0.2). Usa los decimales justos para abordar el problema, aproximando el resultado final
  • No indicas explícitamente que lo calculado es una aproximación (-0.2). Has hecho una aproximación sin mencionarlo
  • Dato incorrecto (-0.2)

Solución al problema

a)

r1 = 0x3D. Lectura de un byte de la dirección 0x10010003. No aplica la ordenación ni la alineación

b)

r2 = 0xFA10. Lectura de una media palabra de la dirección 0x1001000F. Como la ordenación es Little-endian, el byte de menor peso es el de esa dirección (0x10)

c)

r3 = 0x7271605F. Lectura de una palabra de la dirección 0x10010005. Como la ordenación es little-endia, el byte de menor peso es el de esa dirección (0x5F)

d)

El número de accesos es 3
La primera instrucción genera 2 accesos a memoria, porque se lee una palabra de una dirección no alineada
La segunda instrucción genera 1 acceso, por se lee una palabra de una dirección alineada
Sabemos si es una dirección alineada si es múltiplo de 4 (el número hexadecimal acaba en 0, 4, 8 ó C)

e)

A partir del formato de las instrucciones vemos que las instrucciones de load ocupan 9 + 3 + 4 + 32 = 48 bits --> 6 bytes
Las instrucciones add ocupan: 9 + 7 + 4 + 4 + 32 = 56 bits --> 7 bytes
El tamaño del programa es 26 + 27 = 26 bytes

Autores

Licencia

Enlaces