Universidad Pública de Navarra



Año Académico: 2020/2021 | Otros años:  2019/2020  |  2018/2019 
Graduado o Graduada en Ingeniería Informática por la Universidad Pública de Navarra (Programa Internacional)
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 ]

Partes de este texto:

 

Módulo/Materia

Módulo: Formación Básica
Materia: Informática

Subir

Descripción/Contenidos

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.

Subir

Competencias genéricas

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.

Subir

Competencias específicas

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.

Subir

Resultados aprendizaje

  1. Conocer la organización de la máquina de Von Neumann y sus principales unidades funcionales.
  2. Mencionar ventajas e inconvenientes de la arquitectura Von Neumann.
  3. Representar en binario números enteros y reales y evaluar su rango y la precisión.
  4. Realizar operaciones de aritmética y lógica sencillas sobre datos enteros en binario.
  5. Conocer la relación entre lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel.
  6. Conocer las ventajas e inconvenientes de un determinado formato de instrucción respecto a otros.
  7. Implementar en lenguaje ensamblador, construcciones básicas de los lenguajes de alto nivel y llamadas a subrutinas.
  8. Conocer la relación entre el conjunto de instrucciones y el diseño de una arquitectura.
  9. Describir las principales fases de ejecución de los diferentes tipos de instrucción en el camino de datos de la CPU.
  10. Describir las características principales de las arquitecturas CISC, RISC y VLIW.
  11. Conocer las diferentes técnicas de entrada / salida: programadas, mediante interrupciones y DMA.
  12. Conocer cómo utilizar interrupciones para implementar el control de entrada / salida y transferencias de datos.
  13. Escribir sencillas rutinas de interrupción en lenguaje ensamblador.
  14. Conocer el efecto de la latencia y el ancho de banda de memoria en el rendimiento de un computador.
  15. Conocer el concepto de memoria cache y como afecta su uso al rendimiento del computador.
  16. Conocer los conceptos de memoria virtual y paginación.

Subir

Metodologí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

Subir

Evaluación

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
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

 

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%

 

Subir

Temario

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

Subir

Programa de prácticas experimentales

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.

Subir

Bibliografía

Acceda a la bibliografía que el profesorado de la asignatura ha solicitado a la Biblioteca.


Basica

  1. William Stallings. Computer Organization and Architecture: Designing for Performance. Prentice Hall. 9th Edition. 2012.
  2. Paul Carter. PC Assembly Language. Acceso libre. 2006.
  3. Jonathan Bartlett. Programming from the Ground Up. Acceso Libre. 2004.

 Complementaria

  1. K.N.King. C programming, a Modern Approach W.W. Norton 2ªEd. 2008.
  2. David A. Patterson, John L. Hennessy. Computer Organizarion and Design. The Hardware / Software Interface. Morgan Kaufmann. 2009.
  3. Randal E. Bryant, David R. O'Hallaron. Computer Systems: A Programmer's Perspective. Addison-Wesley. 2nd Edition. 2010.
  4. Jeff Duntemann. Assembly Language Step-by-Step: Programming with Linux. Wiley Ed. 3rd Edition. 2009.
  5. Kip R. Irvine. Assembly Language for x86 Processors. Pearson. 6th Edition. 2014.

Subir

Idiomas

Castellano

Subir

Lugar de impartición

Aulario

Subir