Respuestas Test Ec Explicadas
Respuestas Test Ec Explicadas
Respuestas Test Ec Explicadas
jsgomez
Estructura de Computadores
TEMA 0: INTRODUCCIÓN
Son solo 5 preguntas que son fáciles de memorizar
TEMA 1: INTRODUCCIÓN
Arquitectura von Neumann:
Bus:
- Sistema: conecta CPU-M, ya sea un sistema con bus único o con múltiples buses
MAR y MBR
Funciones:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
RISC
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
debería emplear un único formato de instrucción
- Un computador RISC no debe emplear microprogramación.
- Se usa un porcentaje elevado de las instrucciones del repertorio
CISC
Modos de direccionamiento:
Perspectiva histórica
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
Estructura de Computadores
Banco de apuntes de la
o Aparece la microprogramación
- Cuarta generación (75-…): VLSI
o Procesador completo en 1 chip
o Arquitectura: mejoras segmentación cauce, cache, M virtual
o Hardware: portátiles, PCs, WS, redes
Ejercicio Típico 1:
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
En qué generación, dentro de la historia de los computadores digitales, aparece…
- Segunda generación:
o Transistores
- Tercera generación:
o La memoria virtual
o La memoria cache
o La microprogramación
o La segmentación de cauce
o Se alcanzan tiempo de conmutación de nanosegundos
Ejercicio Típico 2:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
PRÁCTICA 1: ENTORNO DE DESARROLLO GNU
Programa ensamblador
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
forma que éste no tenga que modificarse manualmente cuando el programa varíe
de tamaño.
- El lenguaje ensamblador elimina la posibilidad de errores en la generación de la
representación en lenguaje máquina de cada instrucción.
Sufijos
Lenguaje máquina
Ejercicio Típico 1:
Lenguaje C
- En una matriz declarada como “int a[n][n];” los n elementos de una fila se
almacenan en memoria de manera contigua.
x86-64
Modo de direccionamiento:
- Registro
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
- Inmediato
- Memoria
Características:
- Intel 8086:
o Incluía instrucciones de multiplicación
- 486
- Pentium MMX
- Pentium III
o No es de 64 bits
- Pentium 4
o El Pentium 4F fue el primer proceso de Intel de 64 bits
- Core 2
SystemV AMD64
- R12 es un registro salva-invocado, por eso en cualquier función hay que salvarlo
antes de modificarlo
- R10 es un registro salva-invocante, por eso si es necesario hay que salvarlo antes
de llamar a la función.
Instrucciones “salto …”
- Una instrucción “salto si menor”, para números sin signo, tiene que comprobar el
valor del bit de acarreo
- Una instrucción de “salto si igual” tiene que comprobar el valor del bit de cero
- El rasgo distintivo de la traducción “salta-en-medio” que gcc hace de un bucle
while de lenguaje C a lenguaje ensamblador es el salto condicional hacia adelante
Instrucciones
- JB Y JNAE si CF == 1
- JBE/JNA si CF == 1 || ZF == 1
- JNGE/JL si SF != OF
not: realiza el complemento a uno (cambiar unos por ceros y ceros por unos)
test:
cmp:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
- Modifica los flags aritmético-lógicos (ZF,SF,CF,OF)
Ejercicio Típico 1:
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Otra pregunta que aparece es popcount(2) == popcount(64), pues ambos números solo tienen
un 1 al pasarlos a binario.
Variantes:
Instrucciones erróneas
Ejercicio Típico 1:
En la práctica “media” se pide como ejercicio previo sumar una lista de N enteros sin
signo en doble precisión […]. Para aplicar esta técnica se sugiere utilizar la(s)
instrucción(es):
Si en los corchetes aparece:
Ejercicio Típico 2:
En la práctica “media” se pide como ejercicio previo sumar una lista de N enteros […]
signo produciendo un resultado. quad(doble precisión). El programa esqueleto ofrecido
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
(suma.s) no es válido. Se podría comprobar imprimiendo el resultado […] signo, y
usando como contraejemplo las siguientes listas:
- CON y CON: 0x4000 0000 y 0x4000 0000
- CON y SIN: ninguna de las dos
- SIN y SIN: 0x8000 0000 y 0xC000 0000
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ejercicio Típico 3
En la práctica “media” se pide sumar una lista de 16 enteros SIN signo de 32 bits
evitando acarreo. ¿Cuál es el […] valor que repetido en toda la lista […] en 32 bits?
Ejercicio Típico 4:
Los switches […] para trabajar en 32bit/64bit corresponden a la herramienta...
- --32 y –64: as
- -m elf_i386 y -m elf-x86_64: ld
Unidad de control
Se encarga de:
Ejercicio Típico 1:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
como unidad de control nanoprogramada, ¿qué tamaño ocuparía la nanomemoria que
contiene las microinstrucciones completas sin repeticiones?
Se multiplica el número de bits de las palabras (100) * el número de palabras diferentes (200)
Ejercicio Típico 2:
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
control de las cuales […] en un ciclo de reloj, nunca tres o más en el mismo ciclo de
reloj, y cuando se activan dos una es del grupo 1-7 y otra es del grupo 8-14, nunca las
dos del mismo grupo. Sería entonces posible...
Ejercicio Típico 3:
- Gettimeofday(): se usa para comparar las duraciones de las distintas soluciones del
programa
80x86
Si no se entendió en el día de la práctica, hay pocas preguntas que se puedan sacar, ya que casi
todas son de que pasaría si se modificase el código de la práctica. Las que se pueden sacar son:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
Si val es una variable de tipo unsigned long, entonces la sentencia: val += (val >> 32):
su traducción incluye una instrucción shr seguida de una suma
¿En qué registro se pasa el primer argumento a una función en Linux gcc x86-64? rdi
Ejercicio Típico 1:
TEMA 4: SEGMENTACIÓN
Procesamiento segmentado y superescalar
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Segmentación de cauce
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
ganancia máxima que se puede obtener.
- Existen limitaciones al rendimiento provocadas por las instrucciones de salto y por
las dependencias de datos.
Tipos de saltos
Tipos de riesgo
- Riesgo de datos: consiste en que una instrucción necesita un dato calculado por
otra anterior.
o Técnica “Register forwarding”: se usa para limitar el impacto de los riesgos
de datos
- Riesgo estructural: ocurre cuando dos o más instrucciones necesitan un recurso
hardware en el mismo ciclo.
Ejercicio Típico 1
Ejercicio Típico 2:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
Ejercicio Típico 3
sub r4,r1,r3
or r8,r6,r4
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Sub guarda en r4 la resta de los valores r1 y r3, teniendo en cuenta que r4 se usa en la
siguiente línea, se da un caso en el que una instrucción necesita un dato calculado por otra
(riesgo de datos) -> Sol = un riesgo por dependencia de datos
Ejercicio Típico 1:
Respecto a las bombas estudiadas en la práctica "bomba digital", ¿en cuál de los
siguientes tipos de bomba sería más difícil descubrir la contraseña? Se distingue entre
[enteros/string] definidos en el código fuente de la bomba, y [enteros/string] solicitados
al usuario mediante scanf()/por teclado.
Esta pregunta aparece mucho y se responde en función de lo que aparezca en los corchetes, si
aparece:
- String
o Si en el enunciado aparece la palabra clave “Invertir” : 1 string del usuario
se cifra, y se compara con el string del fuente.
o Si el enunciado acaba con “Por “cifrar” podemos entender la cifra del
César, por ejemplo.”: el string del usuario se cifra y se compara con 1 string
del fuente.
o Si el enunciado acaba como el anterior más (sumar o restar una constante
fija…): 1 string del fuente se cifra y se compara con el string del usuario
- Enteros
o Si el enunciado dice “descubrir la(s) contraseña(s)”: 2 enteros del usuario
se procesan, se suman los resultados, y se compara con el entero del
fuente
o Si el enunciado dice “descubrir la contraseña”: 1 entero del usuario se
procesa, y se compara con el entero del fuente
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
En esta práctica si no se fue a clase y se entendió es muy complicada, pero se pueden
memorizar muchos ejercicios del tipo “en el ejercicio 1/2/3 de la práctica se usa una función x
para”, también hay algunos ejercicios de bombas complejos que sin entenderlos se pueden
memorizar las soluciones, pues son números fáciles (uno de los ejercicios tiene como solución
42, otro 0x400600, otro tiene 4 opciones en las que aparece la palabra “abracadabra” mal
escrita en 3 de ellos, la solución buena es en la que aparece bien escrita), por lo que se pueden
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
memorizar fácilmente.
Interrupción
E/S Programada:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
E/S mapeada en memoria:
E/S independiente:
- Las instrucciones de acceso a memoria suelen ser más largas que las de E/S
- Ventaja frente a E/S mapeada: los programas pueden ser más rápidos, y las
instrucciones de E/S son fácilmente reconocibles.
- 8237
o Dispone de 4 canales de E/S independientes
- 8255
o Puede manejar 3 puertos de 8 bits
o El modo de funcionamiento 2 permite utilizar un bus bidireccional
- 8259
o 3 controladores pueden manejar 6(master) + 16(2 slaves) = 22 niveles de
interrupción
Ejercicio Típico 1:
¿Cuántos controladores de interrupciones 8259 hacen falta como mínimo para
manejar 25 líneas de interrupción?
El primero maneja 6(master) y los siguientes 8 cada uno. 6 + 8 +8 = 22 que se queda corto, por
lo que 6 + 8 + 8 + 8 = 30, por lo que 4 controladores
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
PRÁCTICA 5: E/S CON ARDUINO
Son 14 preguntas a memorizar.
Funciones/Instrucciones:
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
de reset, o se sube desde el entorno de desarrollo
- SBI: realiza una operación de bits
- CBI: realiza una operación de bits
- SBIW: realiza una resta de un valor inmediato
- Arduino map(sensorValue, sensorLow, sensorHigh, 50, 4000): si sensorValue vale
la mitad entre sensorLow y sensorHigh, devuelve 2025.
- digitalWrite(LED_BUILTIN, HIGH): enciende el led integrado en la placa Elegoo
Mega2560
TEMA 6: MEMORIA
Jerarquía de Memoria
Memorias DRAM
- Las memorias DRAM son en general más lentas que las SRAM
- La operación de lectura de una celda DRAM es destructiva
- Las memorias DRAM presentan generalmente una capacidad de almacenamiento
mayor que las SRAM.
- Es más densa que la memoria SRAM
- Cada celda está compuesta por un transistor y un condensador y almacena un bit
de información.
- Los bits de memoria se organizan dentro del circuito integrado en forma de matriz
de celdas de bit, en la que se pueden diferenciar filas y columnas.
- Un transistor en cada celda permite o no circular la corriente eléctrica a través de
él. Cuando el transistor no deja pasar la corriente, la información queda
almacenada durante un tiempo en el condensador. Cuando el transistor deja pasar
corriente, el condensador se carga o se descarga.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
Memorias RAM
Estáticas:
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Dinámicas:
Memorias SRAM
Ejercicio típico 1:
Los cálculos no salen exactos, pero como las soluciones que nos dan son valores en décimas
(10%, 20%, 30%...) nos quedamos con el valor en porcentaje:
F = 3 / (300-6) = más o menos a 3/300 = 1/100 = 0.01, vamos multiplicando por 10 y acaba
saliendo 10% = solución
Otro ejemplo:
F = 3 (900-9) = más o menos 3/900 = 1/300 = 0.003, vamos multiplicando por 10 y acaba
saliendo 30% = solución
Ejercicio típico 2:
1 MB = 2^20 / (16 * 32 * 8) = 2^20 / (2^4 * 2^5 * 2^3) = 2^20 / 2^12 = 2^8 = 8 bits
Ejercicio típico 3:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!
Ejercicio típico 4:
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ejercicio típico 5:
Una SRAM de 256Kx4bit (1Mbit) puede venir organizada en 1024 filas, dedicando por
tanto al decodificador de columnas...
Se divide 256K/1024 (filas) = 256 = 2^8 = 8 bits
Una SRAM de 32Kx8bit (256Kbit) puede venir organizada en 512 filas, dedicando por
tanto al decodificador de columnas...
32K/512 = 32 * 1024 / 512 = 2^5 * 2^10 / 2^9 = 2^6 = 6 bits
Ejercicio típico 6:
Ejercicio típico 8:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
En un sistema con memoria de bytes, ¿cuál sería el tamaño de una línea de cache, si
la cache del procesador fuera de 4MB, asociativa por conjuntos de 16-vías, y
contuviera 4096 conjuntos?
Se multiplica el entero de la cache del procesador (4) por el valor de los conjuntos de vías (16)
= 64B
Ejercicio típico 1:
Ejercicio típico 2:
Suponer una memoria cache con las siguientes propiedades: Tamaño: 512 bytes.
Política de reemplazo: LRU. Estado inicial: vacía (todas las líneas inválidas). Suponer
que para la siguiente secuencia de direcciones enviadas a la cache: 0, 2, 4, 8, 16, 32,
la tasa de acierto es 0.33. ¿Cuál es el tamaño de bloque de la cache?
- Si la secuencia es 0, 10, 16, 20, 30 y tasa acierto = 0.50: 16 bytes
- Si la secuencia es 0, 2, 4, 8, 16 y tasa acierto = 0.33: 8 bytes
- Si la secuencia es 1, 2, 4, 8, 16 y tasa acierto = 0.333: 8 bytes
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Ejercicio típico 3
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
L2, ese x se saca del enunciado : pasa de tiempo = 1 a tiempo = 3 (lo pone en el
enunciado) en este caso x = 3
Si en el examen cambiase el ejercicio poniendo el primer valor más alto que el segundo, la
solución sería la inversa: la cache L1 es al menos x veces más lenta que la cache L2
Ejercicio típico 4:
Suponer que:
• El computador tiene una cache de datos de 8 MB, 16-vías, líneas de 64 bytes.
• N es grande, una fila o columna no cabe completa en cache.
• El tamaño de los tipos de datos es como en IA32.
• El compilador optimiza el acceso a C[i][j] en un registro.
Aproximadamente, ¿qué tasa de fallos se podría esperar de esta función para valores
grandes de N?
Si el enunciado acaba aquí, la solución es ½, si no, si después aparece otro párrafo diciendo:
imaginar que se modifica la última sentencia… el resultado es 1/16.
Ejercicio típico 5:
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9710285
¿Y la de estudiar te la sabes? No se trata de estudiar más, se trata de estudiar mejor ¡Clic aquí!