Estructura de Computadors II (ECII)
Objetivos
Lista no Ordenada de los Objetivos de EC2.
- El alumno ha de ser capaz de realizar programas de 15-25
líneas en ensamblador de una máquina real (IA32).
- El alumno ha de ser capaz de enlazar programas escritos
en ensamblador con programas escritos en C, llamando desde alto nivel a una
rutina escrita en ensamblador y vicerversa. Incluye el paso de parámetros y
la gestión de las variables locales.
- El alumno ha de ser capaz de traducir código escrito en C
a ensamblador. El código generado ha de ser razonablemente eficiente.
- No es un objetivo que el alumno sea un experto programador
en ensamblador del IA32.
- El alumno ha de saber cómo se almacenan las estructuras de
datos complejas (vectores, matrices, struct’s, ...) y cómo acceder a ellas de
forma eficiente.
- El alumno ha de ser capaz de realizar optimizaciones
simples sobre una porción de código dada.
- El alumno ha de aprender a desarrollar programas en C y
ensamblador en un entorno de trabajo Linux.
- El alumno ha de ser capaz de utilizar un depurador
(debugger) para eliminar errores en un programa en ensamblador y/o C.
- El alumno ha de ser capaz de programar operaciones
básicas de entrada / salida, utilizando sincronización por encuesta y
por interrupciones. La programación podrá ser en ensamblador,o C,
o en una mezcla de ambos.
- El alumno ha de conocer los dispositivos básicos de
entrada /salida en una máquina real (PC compatible).
- El alumno ha de comprender las implicaciones que tiene
en el rendimiento del computador, la velocidad, el ancho de banda y la
jerarquía de buses.
- Dada una configuración del subsistema de entrada /
salida, el alumno debería ser capaz de escoger la que obtenga mejor
rendimiento.
- El alumno ha de conocer las características de los
diferentes tipos de DRAM existentes en el mercado.
- El alumno ha de comprender y saber evaluar el
rendimiento de un esquema idealizado de memoria principal entrelezada.
- El alumno ha de comprender y saber evaluar los esquemas
básicos de memorias cache que incluyen: mapeos, diferentes tamaños de cache
y de línea, políticas de escritura, algoritmos de reemplazo, y varios niveles
de cache.
- El alumno ha de comprender las implicaciones (tiempo de
respuesta, complejidad, coste, ...) de la implementación hardware de los
diferentes esquemas de Memoria Cache.
- El alumno ha de ser capaz de seguir una traza de
referencias a memoria, indicando aciertos/fallos, etc. La traza puede ser
explícita o implícita en un programa en C.
- El alumno ha de comprender algunos conceptos
"avanzados" de Memoria Cache (prefetch, buffers de escritura, etc.)
y ha de ser capaz de evaluar configuraciones simples que apliquen estos
conceptos.
- El alumno ha de comprender los conceptos básicos de
Memoria Virtual: traducción de direcciones, concepto de fallo de página,
implementación de la tabla de páginas,TLB y fallo de TLB.
- El alumno ha de ser capaz, dado un programa sencillo
escrito en C, de calcular cuántas páginas utiliza y cuántos fallos de TLB
provoca.
- El alumno ha de comprender la interrelación entre la
memoria virtual y la memoria cache, cuándo se realiza la traducción de
direcciones, y qué relacion existe entre el tamaño de las páginas y el
tamaño de la Memoria Cache.
- El alumno ha de saber evaluar el impacto de realizar
transformaciones simples en un programa escrito en C cuando éste se ejecuta
en procesador con una configuración dada de Memoria Cache.
Ultima modificación: 5 de febrero de 2007.