Examen: Parcial 2:2023_11_13:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 2: 2023-11-13. GISAM

  • Tiempo: 50 minutos
  • Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
  • Temario: S5,S6,S7 y 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

Tenemos un computador de 32-bits que dispone de 8 registros de propósito general (a0-a7). La anchura de la memoria es de 32-bits. La ordenación que usa es Little-endian. Para acceder a los datos de la memoria utiliza un direccionamiento directo. Puede acceder tanto a datos alineados como no alineados. Estas son algunas de las instrucciones disponibles:

  • 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 direcció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

Este es el contenido de la memoria, a partir de la dirección 0xCAFEBAC0. Todos los valores están en hexadecimal

Dirección 0 1 2 3 4 5 6 7 8 9 A B C D E F
0xCAFEBAC0 00 11 AA CA FE FF FF FF FF FF FF FE CA BA DA 22

Resuelve los siguientes apartados, calculando el resultado y justificando cómo lo has obtenido

a) (2.5 ptos) Los registros están inicializados a 0. Indica el valor de los registros tras ejecutar las siguientes instrucciones:

lb a1, 0xCAFEBAC1
lb a2, 0xCAFEBACF
lh a3, 0xCAFEBAC3
lh a4, 0xCAFEBACC
lw a5, 0xCAFEBACB

b) (2.5 ptos) Indica el número de accesos a memoria que emplea cada instrucción de load para leer los datos

Solución al problema

a)

El procesador usa ordenación little endian por lo que el byte leido en la primera posición es el de menor peso

  • Inst 1: Leer el byte de la dirección 0xCAFEBAC1. a1 = 0x11
  • Inst 2: Leer el byte de la dirección 0xCAFEBACF. a2 = 0x22
  • Inst 3: Leer la media palabra de la dirección 0xCAFEBAC3. a3 = 0xFECA
  • Inst 4: Leer la media palabra de la direccion 0xCAFEBACC. a4 = 0xBACA
  • Inst 5: Leer la palabra de la dirección 0xCAFEBACB. a5 = 0xDABACAFE

El resto de registros valen 0

b)

  • Inst 1: Un acceso. Es una lectura de un byte. Nos da igual el alineamiento y la ordenación
  • Inst 2: Un Acceso. Mismo razonamiento que con la instrucción 1
  • Inst 3: Dos accesos a memoria. La media palabra tiene un byte en una palabra y el otro en la siguiente (Acceso a dirección no alineada)
  • Inst 4: Un Acceso. Lectura de la media palabra situada en una dirección alineada
  • Inst 5: Dos accesos. Lectura de una palabra situada en una dirección NO alineada

Número total de accesos: 1 + 1 + 2 + 1+ 2 = 7 (No pedido en el enunciado)

Autores

Licencia

Enlaces