Código: 250306 | Asignatura: ESTRUCTURA DE COMPUTADORES | ||||
Créditos: 6 | Tipo: Básica | Curso: 2 | Periodo: 1º S | ||
Departamento: Ingeniería Eléctrica, Electrónica y de Comunicación | |||||
Profesorado: | |||||
ARAMBURU MAYOZ, CANDIDO (Resp) [Tutorías ] | GARDE GURPEGUI, ANDRÉS [Tutorías ] | ||||
JUAN DE DIOS URSUA, CARLOS [Tutorías ] |
En esta asignatura se estudian los elementos esenciales de un computador ofreciendo al estudiante una visión general e independiente del tipo de aquitectura del funcionamiento de un computador. La representación de la información (datos e instrucciones), el procesador como unidad de procesamiento de dicha información, la jerarquía de memoria como unidad de almacenamiento de información y el sistema de entrada y salida como sistema de comunicación de información con el exterior son los puntos clave sobre los que se centra la asignatura.
En las sesiones prácticas se realizan proyectos de desarrollo software empleando las herramientas de edición, compilación, lincado, ensamblaje y depuración de programas informáticos en lenguajes de programación C y ensamblador x86 en el entorno del sistema operativo GNU/linux.
La lista de contenidos es la siguiente:
- Arquitectura de Von Neumann. CPU, memoria y entrada / salida.
- Representación de datos. Bit, byte y palabra. Caracteres, enteros y reales.
- Aritmética y lógica sobre enteros en binario. Redondeo y propagación de error en números reales.
- Representación de instrucciones. Lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel. Registros. Formato de instrucción. Fases de ejecución de una instrucción. Tipos de instrucción y modos de direccionamiento.
- Programación en lenguaje ensamblador de construcciones básicas de los lenguajes de alto nivel y llamadas a subrutina.
- Arquitectura y organización de la CPU. Conjunto de instrucciones. Camino de datos. Arquitecturas CISC, RISC y VLIW.
Sistema de entrada / salida. Control de entrada / salida: por encuesta, por interrupción, DMA. Vector de interrupciones. Programación en lenguaje ensamblador de rutinas de atención a interrupciones.
- Organización de la memoria. Latencia y ancho de banda. Jerarquía de memoria. Memoria cache Memoria virtual.
Las competencias genéricas que un alumno debería adquirir en esta asignatura son:
CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
CB4 - Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
G1 - Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
G6 - Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
G8 - Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
G9 - Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
G10 - Conocimientos para la realización de mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes, planificación de tareas y otros trabajos análogos de informática.
T1 - Capacidad de análisis y síntesis.
T3 - Comunicación oral y escrita.
T4 - Resolución de problemas.
T8 - Aprendizaje autónomo.
Las competencias específicas que un alumno debería adquirir en esta asignatura son:
FB4 - Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
FB5 - Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería.
Metodología - Actividad
|
Horas Presenciales
|
Horas no presenciales
|
A-1 Clases magistrales
|
10 |
|
A-2 Estudio autónomo
|
|
30 |
A-3 Sesiones prácticas
|
16
|
|
A-4 Programación / experimentación u otros trabajos en ordenador / laboratorio
|
|
20 |
A-5 Resolución de problemas, ejercicios y otras actividades de aplicación
|
|
12
|
A-6 Aprendizaje basado en problemas y/o casos
|
14
|
|
A-7 Elaboración de trabajos y/o proyectos y escritura de memorias
|
|
11
|
A-8 Preparación de presentaciones de trabajos, proyectos, etc...
|
12
|
15
|
A-9 Actividades de Evaluación |
8
|
|
A-10 Tutorías | 2 | |
Total
|
62 |
88 |
Resultados de aprendizaje |
Actividad de evaluación |
Peso (%) | Carácter recuperable |
Nota mínima requerida |
4Aprendizaje activo, motivación del estudiante | 15 | No | 0 | |
Desarrollar organigramas y código de programas básicos en los lenguajes C y ensamblador para las arquitecturas x86 y ARM basándose en conceptos de programación de cursos anteriores, así como su depuración y análisis mediante herramientas GNU como gcc, as, ld, gdb, file, objdump, elf, etc ..en un entorno de sistemas linux bien local , bien remoto mediante la herramienta Quartus. Implementación de un microprocesador soft en dispositivos FPGA. Finalizar las prácticas fuera del laboratorio para tener habilidad de programar de forma autónoma. Realización de las memorias durante y después de la sesión de prácticas como documento a utilizar durante los exámenes. | Entrega de guiones a través de las Tareas de miaulario en el plazo establecido será prescriptivo. Dos controles parciales con el mismo valor. Un control parcial después de las dos primeras sesiones y otro final una vez realizadas todas las prácticas con la ayuda de las memorias de las prácticas y el libro de apuntes de la asignatura. Nota media mínima de 4 puntos para aprobar la asignatura. Requisito para realizar el examen de recuperación es haber asistido al menos a 14 de las 16 horas de prácticas, haber entregado las memorias en el plazo establecido y haber realizado los dos controles. | 35 | Sí | 4 |
Conocer los fundamentos de los módulos básicos de la estructura de una computadora con arquitectura tipo von Neumann así con la estructura interna y operación de la unidad central de proceso, la jerarquía de memorias y los mecanismos de de operación de los módulos de entrada y salida | Dos parciales de 90 minutos de duración cada uno sobre conceptos teóricos y ejercicios de aula. Nota media mínima de 4 puntos para aprobar la asignatura. Examen de Recuperación de toda la asignatura en caso de no superar la convocatoria ordinaria. | 35 | Sí | 4 |
Desarrollar organigramas y código de programas básicos en los lenguajes C y ensamblador de diferentes arquitecturas como x86 y ARM basándose en conceptos de programación de cursos anteriores. Relacionar código C con código ensamblador. |Controles y Recuperación como en el caso anterior. Se permitirá la utilización de apuntes. Desarrollar programas en lenguaje C y ensamblador con/sin llamadas al sistema operativo, con/sin llamadas a librerías de C, con/sin llamadas a funciones y subrutinas. |
Un control parcial escrito sobre la realización de algoritmos y programación basados en los guiones de prácticas de laboratorio. Nota media mínima de 4 puntos para aprobar la asignatura. Examen de Recuperación de toda la asignatura en caso de no superar la convocatoria ordinaria. Se permitirá la utilización de los apuntes entregados por el profesor al comienzo del curso. | 15 | Sí |
1 - Introducción
2 - Arquitectura de Von Neumann
2.1 CPU
2.2 Memoria
2.3 Entrada / Salida
3 - Representación de datos
3.1 Bit, Byte y Palabra
3.2 Caracteres, enteros y reales
4 - Aritmética y lógica
4.1 Operaciones aritméticas y lógicas sobre enteros en binario
4.2 Redondeo y propagación de error en números reales
5 - Representación de instrucciones
5.1 Lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel
5.2 Formato de instrucción
5.3 Tipos de instrucción y modos de direccionamiento
6 - Programación en lenguaje ensamblador de construcciones básicas de los lenguajes de alto nivel
6.1 Sentencias de asignación
6.2 Sentencias condicionales
6.3 Bucles
6.4 LLamadas y retorno de funcion o subrutina
7 - Arquitectura y organización de la CPU
7.1 Conjunto de instrucciones
7.2 Arquitecturas CISC, RISC y VLIW
7.3 Fases de ejecución de una instrucción
7.4 Camino de datos
8 - Sistema de entrada / salida
8.1 Sincronización por encuesta
8.2 Sincornización por interrupción
8.3 Vector de interrupciones
8.4 Acceso directo a memoria DMA
8.5 Programación en lenguaje ensamblador de rutinas de entrada/salida
9 - Organización de la memoria
9.1 Jerarquía de memoria
9.2 Latencia y ancho de banda
9.3 Memoria cache
9.4 Memoria virtual
1-Introducción a la Programación en Lenguaje Ensamblador AT&T x86-32
2-Representación de los Datos
3-Operaciones Aritméticas y Lógicas e Instrucciones de Saltos Condicionales
4-LLamadas al Sistema Operativo (Kernel) y Subrutinas
5-Programación en Lenguaje Ensamblador ARM: Datos, Operaciones Aritmética, Instrucciones de Salto, Llamadas al Kernel y Subrutinas
6-Procesamiento de Imágenes: Bit Map Portable
Los programas para la arquitectura x86 se realizarán utilizando las estaciones de trabajo del aula de informática y los PC personales de los alumnos . Los programas para la arquitectura ARM se realizarán en los dispositivos SoC del laboratorio remoto pudiendo ser accedidos desde fuera del campus universitario.
Acceda a la bibliografía que el profesorado de la asignatura ha solicitado a la Biblioteca.
Basica
Complementaria