Autor: Miguel Angel De la Vega Rodríguez
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.
Una posible codificación en microinstrucciones de la instrucción call X es:
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:
La ganancia de velocidad ideal en un cauce de K etapas de igual duración T ejecutando un programa de N instrucciones es:
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
La técnica de "adelanto de registros" (register forwarding) en un cauce segmentado se usa para limitar el impacto de los riesgos...
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)?
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...
En popcount8, la variable:int SSE_LUTb[] = {0x02010100, 0x03020201, 0x03020201, 0x04030302};
se usa:
La siguiente función calcula el factorial:fact:
pushq
movl %edi, %ebx
movl $1, %eax
testl %edi, %edi
je .L4
leal -1(%rbx), %edi
call fact
imull %ebx, %eax
.L4:
popq
ret
¿Cuál es el registro
¿Cuál de las siguientes funciones NO calcula el factorial de un unsigned long?
Tras dividir 0x00000000 00040000 (en EDX:EAX) entre 0x00008000 (ECX), el resultado será:
¿Cuál de las siguientes parejas de nemotécnicos de ensamblador corresponden a la misma instrucción máquina?
¿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
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?
Para crear espacio en la pila para variables locales sin inicializar suele realizarse la siguiente operación:
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.
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:
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:
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:
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:
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.
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:
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:
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:
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:
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:
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:
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:
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:
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: