Estructura de Computadores. Examen 07.

Autor: Miguel Angel De la Vega Rodríguez


  • Asignatura: Estructura de Computadores.
  • Curso Académico: 2024-25.
  • Grado: Doble Grado en Ingeniería Informática y Matemáticas.
  • Grupo: Único.
  • Profesor: Ignacio Rojas Ruiz.
  • Fecha: 16-12-2024.
  • Descripción: Examen de Temas 3,4,5 y 6 de Teoría, y prácticas 4-6.

Cada persona tenía un examen, por lo que hubo muchas versiones de este examen. De una batería de preguntas del profesor (salía de forma aleatoria); por lo que no hay un único examen, sino muchos. Esta es la segunda versión subida.

Cada respuesta correcta suma 1 punto, y cada respuesta incorrecta resta 0.33 puntos. Las preguntas no respondidas no suman ni restan. La puntuación total es sobre 20.


  1. Una posible codificación en microinstrucciones de la instrucción call X es:

  2. En un camino de datos con un único bus, para realizar la operación de copia de un registro r1 en un registro r2, es decir r2 <- r1, es necesario:

  3. La ganancia de velocidad ideal en un cauce de K etapas de igual duración T ejecutando un programa de N instrucciones es:

  4. En la secuencia de instrucciones siguiente, siendo el primer registro el destino, ¿cuántos riesgos se dan?
    sub r4, r1, r3
    or r8, r6, r4

  5. La técnica de "adelanto de registros" (register forwarding) en un cauce segmentado se usa para limitar el impacto de los riesgos...

  6. Un procesador x86 a 4 GHz dispone de 7 unidades de ejecución en paralelo, con 20 etapas de segmentación, y es capaz de emitir (comenzar a ejecutar) 4 instrucciones en cada ciclo de reloj. ¿Qué velocidad aproximada de ejecución de instrucciones será capaz de alcanzar (MIPS = millones de instrucciones por segundo)?

  7. Suponga que la micropalabra de una máquina microprogramada tiene 8 bits de ancho y se usan 16 micropalabras diferentes en un microprograma de 32 micropalabras. Si se usa nanoprogramación...

  8. En popcount8, la variable:
    int SSE_LUTb[] = {0x02010100, 0x03020201, 0x03020201, 0x04030302};
    se usa:

  9. La siguiente función calcula el factorial:
    fact:
    pushq # preservar registro
    movl %edi, %ebx
    movl $1, %eax
    testl %edi, %edi
    je .L4
    leal -1(%rbx), %edi
    call fact
    imull %ebx, %eax
    .L4:
    popq # restaurar registro
    ret

    ¿Cuál es el registro que tiene que guardarse en la pila?

  10. ¿Cuál de las siguientes funciones NO calcula el factorial de un unsigned long?

  11. Tras dividir 0x00000000 00040000 (en EDX:EAX) entre 0x00008000 (ECX), el resultado será:

  12. ¿Cuál de las siguientes parejas de nemotécnicos de ensamblador corresponden a la misma instrucción máquina?

  13. ¿Cuál de las siguientes funciones en C NO puede traducirse al siguiente código en ensamblador?
    movslq %esi, %rsi
    movq (%rdi,%rsi,8), %rax
    ret

  14. Una función C devuelve el valor de un elemento de un array mediante el siguiente código ensamblador:
    leaq (%rdi,%rdi,4), %rax
    addq %rsi, %rax
    movl var(,%rax,4), %eax
    retq

    ¿Cuál de las siguientes afirmaciones es correcta?

  15. Para crear espacio en la pila para variables locales sin inicializar suele realizarse la siguiente operación:

  16. Diseñe un sistema de memoria de 128 KB direccionable por palabras de 16 bits a partir de módulos SRAM de 16Kx2 y ROM de 8Kx4. La memoria SRAM debe ocupar las direcciones 0x0000 a 0xBFFF y la ROM 0xC000 a 0xFFFF.

  17. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L1, el campo de conjunto tiene un tamaño de:

  18. Se dispone de un procesador, con palabras de 64 bits, con la siguiente jerarquía de memoria:
    Memoria principal: 64GB
    Tamaño de línea/bloque: 8 palabras
    Nivel 1 cache: 64 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 16 MB de 16 vías
    Sobre la memoria cache L1, el campo de conjunto tiene un tamaño de:

  19. Se dispone de un procesador, con palabras de 64 bits, con la siguiente jerarquía de memoria:
    Memoria principal: 64GB
    Tamaño de línea/bloque: 8 palabras
    Nivel 1 cache: 64 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 16 MB de 16 vías
    Sobre la memoria cache L1, el campo de etiqueta tiene un tamaño de:

  20. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L3, el campo de etiqueta tiene un tamaño de:

  21. Diseñe un sistema de memoria de 128 KB direccionable por palabras de 16 bits a partir de módulos SRAM de 16Kx4 y ROM de 8Kx2. La memoria SRAM debe ocupar las direcciones 0x0000 a 0xBFFF y la ROM 0xC000 a 0xFFFF.

  22. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L2, el tamaño total que ocupan los datos es:

  23. Se dispone de un procesador, con palabras de 64 bits, con la siguiente jerarquía de memoria:
    Memoria principal: 64GB
    Tamaño de línea/bloque: 8 palabras
    Nivel 1 cache: 64 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 16 MB de 16 vías
    Sobre la memoria cache L1, el tamaño total que ocupan las etiquetas es:

  24. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L1, el tamaño total que ocupan las etiquetas es:

  25. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L3, el tamaño total que ocupan las etiquetas es:

  26. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L2, el tamaño total que ocupan las etiquetas es:

  27. Se dispone de un procesador, con palabras de 64 bits, con la siguiente jerarquía de memoria:
    Memoria principal: 64GB
    Tamaño de línea/bloque: 8 palabras
    Nivel 1 cache: 64 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 16 MB de 16 vías
    Sobre la memoria cache L2, el campo de etiqueta tiene un tamaño de:

  28. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L3, el tamaño total que ocupan los datos es:

  29. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L2, el campo de conjunto tiene un tamaño de:

  30. Se dispone de un procesador, con la siguiente jerarquía de memoria:
    Memoria principal: 1GB
    Tamaño de línea/bloque: 64B
    Nivel 1 cache: 32 KB de 8 vías
    Nivel 2 cache: 256 KB de 4 vías
    Nivel 3 cache: 8 MB de 16 vías
    Sobre la memoria cache L1, el campo de etiqueta tiene un tamaño de: