El objetivo general es comprender cómo funciona un computador actual y los fundamentos de diseño y evaluación de los computadores. Se cubre el impacto de las decisiones de diseño en el rendimiento, potencia, consumo energético, coste y fiabilidad. Se tratan temas como jerarquía de memoria, memoria virtual, sistemas de almacenamiento, juego de instrucciones y técnicas avanzadas como segmentación, procesadores superescalares y multiprocesadores. Poniendo también cierto énfasis en la interacción hardware/software para lograr el rendimiento.
Profesorado
Responsable
Josep Llosa Espuny (
)
Otros
Miquel Moretó Planas (
)
Teresa Monreal Arnal (
)
Victor Soria Pardos (
)
Horas semanales
Teoría
2
Problemas
1
Laboratorio
1
Aprendizaje dirigido
0.4
Aprendizaje autónomo
5.6
Competencias
Competencias Técnicas
Competencias técnicas comunes
CT2 - Utilizar de forma apropiada teorías, procedimientos y herramientas en el desarrollo profesional de la ingeniería informática en todos sus ámbitos (especificación, diseño, implementación, despliegue -implantación- y evaluación de productos) de manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
CT2.3
- Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
CT2.4
- Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los Sistemas de información, incluidos los basados en web.
CT3 - Demostrar conocimiento y comprensión del contexto organizativo, económico y legal en el que desarrolla su trabajo (Conocimiento adecuado del concepto de empresa, marco institucional y jurídico de la empresa, organización y gestión de empresas.)
CT3.6
- Demostrar conocimiento de la dimensión ética en la empresa: la responsabilidad social y corporativa en general y, en particular, las responsabilidades civiles y profesionales del ingeniero en informática.
CT5 - Analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, escogiendo el paradigma y los lenguajes de programación más adecuados.
CT5.2
- Conocer, diseñar y utilizar de forma eficiente los tipos y las estructuras de datos más adecuados para la resolución de un problema.
CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
CT6.2
- Demostrar conocimiento, comprensión y capacidad de evaluar la estructura y la arquitectura de los computadores, así como los componentes básicos que los conforman.
CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
CT7.1
- Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
CT7.2
- Evaluar sistemas hardware/software en función de un criterio de calidad determinado.
CT7.3
- Determinar los factores que inciden negativamente en la seguridad y la fiabilidad de un sistema hardware/software, y minimizar sus efectos.
CT8 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social
CT8.1
- Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
CT8.4
- Elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y la normativa vigente.
Competencias Transversales
Sostenibilidad y compromiso social
G2 [Avaluable] - Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar. Ser capaz de analizar y valorar el impacto social y medioambiental
G2.2
- Aplicar criterios de sostenibilidad y los códigos deontológicos de la profesión en el diseño y la evaluación de soluciones tecnológicas. Identificar la necesidad de aplicar la legislación, regulaciones y normativas, en particular las que afectan al ejercicio de la profesión de ingeniero técnico en informática. Analizar y valorar el impacto medioambiental de las soluciones técnicas en el ámbito TIC.
Objetivos
El alumno debe ser capaz de traducir rutinas y fragmentos de código de alto nivel a ensamblador de una máquina real (IA32) y enlazar rutinas en ensamblador con un lenguaje de alto nivel (C) utilizando la Interfaz Binaria de Aplicaciones de Linux.
Competencias relacionadas:
CT5.2,
El alumno debe ser capaz de describir la estructura interna y funcionamiento de los principales componentes de la jerarquía de memoria y las técnicas para mejorar su rendimiento.
Competencias relacionadas:
CT8.1,
CT7.2,
CT6.2,
El alumno debe ser capaz de describir el funcionamiento y utilizar los principales mecanismos de detección y corrección de errores.
Competencias relacionadas:
CT7.3,
CT2.3,
El alumno debe ser capaz de describir la estructura y funcionamiento de los sistemas de almacenamiento de datos y evaluar su fiabilidad.
Competencias relacionadas:
CT8.1,
CT7.2,
CT7.3,
CT6.2,
CT2.4,
El alumno debe ser capaz de describir la taxonomía de los lenguajes máquina (ISA) y los rasgos característicos de los diferentes paradigmas (como RISC-CISC).
Competencias relacionadas:
CT7.2,
CT6.2,
El alumno debe de ser capaz de describir las técnicas empleadas en el diseño de computadores basadas en paralelismo (como: segmentación, procesadores superescalares, procesadores VLIW, extensiones vectoriales y SIMD, procesadores multihilo, multiprocesadores y multicomputadores) y sus principios de funcionamiento.
Competencias relacionadas:
CT7.2,
CT6.2,
CT2.3,
El alumno debe ser capaz de evaluar el rendimiento de fragmentos de código y / o aplicaciones (tanto en ensamblador como en alto nivel) teniendo en cuenta componentes como: la jerarquía de memoria, los sistemas de almacenamiento, el diseño del lenguaje máquina (ISA) y las principales técnicas de diseño de procesadores basadas en paralelismo.
Competencias relacionadas:
CT7.1,
CT7.2,
CT6.2,
CT5.2,
CT2.3,
El alumno debe ser capaz de evaluar el impacto en la potencia y el consumo energético de fragmentos de código y / o aplicaciones (tanto en ensamblador como en alto nivel) teniendo en cuenta componentes como: la jerarquía de memoria, los sistemas de almacenamiento, el diseño del lenguaje máquina (ISA) y las principales técnicas de diseño de procesadores basadas en paralelismo.
Competencias relacionadas:
G2.2,
CT7.1,
CT7.2,
CT6.2,
CT8.4,
CT3.6,
El alumno debe ser capaz de aplicar optimizaciones sencillas en fragmentos de código para mejorar su rendimiento y / o consumo teniendo en cuenta: la jerarquía de memoria, los sistemas de almacenamiento, el diseño del lenguaje máquina (ISA) y las principales técnicas de diseño de procesadores basadas en paralelismo.
Competencias relacionadas:
CT7.1,
CT5.2,
Contenidos
Fundamentos de diseño y evaluación de computadores
Interfaz alto nivel-ensamblador
Jerarquía de memoria
Sistemas de almacenamiento
Diseño del juego de instrucciones
Segmentación y paralelismo en el diseño de computadores
Actividades
ActividadActo evaluativo
C1
Objetivos:12789 Semana:
8 (Fuera de horario lectivo)
Teoría
0h
Problemas
2h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h
Fundamentos de diseño y evaluación de computadores
Clases de teoría magistrales con algún problema pequeño intercalado. En las clases de teoría se pondrán problemas a los estudiantes para la siguiente clase de problemas.
En las clases de problemas se harán actividades en grupo. A partir de la resolución individual de los problemas hechos en casa, los estudiantes harán una puesta en común en grupo y resolverán las dudas que hayan podido surgir. Debido a la metodología empleada en las clases de problemas se recomienda que los estudiantes no se matriculen con solapamiento, ya que las actividades de grupo serán realizadas al grupo que están matriculados.
Las clases de laboratorio servirán de soporte a la teoría. Los alumnos dispondrán de la información de prácticas antes de cada sesión. Es fundamental que los alumnos preparen la práctica antes de realizarla (leer la documentación, estudiar los conceptos utilizados, etc). Igualmente es recomendable, una vez acabada la sesión, repasar los conceptos vistos. Los estudiantes deben preparar un trabajo previo que entregarán al principio de cada sesión. Las sesiones de laboratorio son presenciales y evaluables, y se realizan en el grupo que está matriculado el alumno, por tanto es imprescindible que no haya solapamientos con el laboratorio a la hora de hacer la matriculación.
Método de evaluación
La evaluación se hace a partir de los dos controles (C1 y C2), la nota de laboratorio (LAB) y la nota de actividad en problemas (AP).
La nota final (NF) se calcula (con un solo decimal y redondeo al par) como:
NF = 0,3*C1 + 0,4*C2 + 0,2* LAB + 0,1* AP
Los estudiantes sólo serán evaluados de LAB y AP si ASISTEN a las clases del GRUPO DONDE ESTÁN MATRICULADOS.