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 ] |
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
|
24 |
|
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...
|
|
15
|
A-9 Actividades de Evaluación |
6
|
|
A-10 Tutorías | 2 | |
Total
|
62 |
88 |
Resultado de aprendizaje | Sistema de evaluación | Peso (%) | Carácter recuperable |
Aprendizaje activo, motivación del estudiante | 10 | No | |
Desarrollar organigramas y código de programas básicos en los lenguajes C y ensamblador desde cero para la arquitectura intel x86, 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. 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. Realización de un test durante los últimos 15 minutos de la sesión de prácticas. 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. | 30 | No |
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 | Controles individuales escritos de evaluación parciales de 30 minutos de duración cada dos temas del programa de la asignatura sobre conceptos teóricos y ejercicios. 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. | 45 | Sí |
Desarrollar organigramas y código de programas básicos en los lenguajes C y ensamblador de diferentes arquitecturas como iassim, x86, ARM, 68000, megaAVR, etc. Traducir manualmente programas en código C a código ensamblador. 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. | Controles individuales escritos de evaluación parciales de 30 minutos de duración cada dos temas del programa de la asignatura sobre realización de algoritmos y progamación. 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í |
Aspecto | Criterios | Instrumento | Peso |
- Asistencia y participación activa en clase. - Evaluación competencias: G8, G9, FB4, FB5 |
- Asistencia a las sesiones presenciales. - Intervención y aportaciones tanto en el planteamiento de cuestiones como en la solución de ejercicios y problemas. - Expresión oral correcta. | - Control de firmas y/o registro del profesor/a. - No obligatorio para aprobar la asignatura. - No recuperable. | 10% |
- Trabajos y supuestos prácticos. - Evaluación competencias: CB3, CB4, G1, G6, G8, G9, G10, T3, T4, T8, FB4, FB5 - Resultados de aprendizaje: 4, 5, 7, 11 | - Solución correcta a los problemas y/o casos prácticos en laboratorio. - Entregas de trabajos y ejercicios en el plazo y formatos acordados. - Expresión escrita correcta. |
- Conjunto de ejercicios prácticos realizados durante el curso en grupo o individualmente en laboratorio y cuyos resultados se han de entregar mediante un informe escrito y/o programa informático. - Control de laboratorio individual. Carácter Obligatorio: Nota media mínima 4.0 y nota mínima del control 4.0. - Recuperable mediante una prueba práctica individual en laboratorio. - Requisito para tener acceso a la prueba de recuperación: haber asistido al menos a 14 de las 16 horas prácticas (salvo casos debidamente justificados a criterio del profesor). | 30% |
- Conceptos teóricos. - Evaluación competencias: CB3, CB4, G-6, G-8, G-9, G-10, T1, T3, T4, T8, FB-4, FB-5 - Resultados de aprendizaje: 1, 2, 3, 6, 8, 9, 10, 12, 13, 14, 15, 16 | - Solución correcta de ejercicios y/o preguntas teóricas por escrito. - Expresión escrita correcta |
- Controles individuales de evaluación continua mediante pruebas por escrito individuales. - Carácter Obligatorio. Nota Mínima en esta parte para aprobar la asignatura: 4.0 - Recuperable mediante una prueba individual escrita. - Requisito para tener acceso a la prueba de recuperación: haber realizado todos los controles de evaluación continua (salvo casos debidamente justificados a criterio del profesor). |
45% + 15% |
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 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