El principal objetivo de esta asignatura es que el alumno adquiera los fundamentos de las técnicas utilizadas a nivel de microarquitectura en los computadores de altas prestaciones, teniendo en cuenta las implicaciones en energía y potencia. Otro objetivo es la adquisición de las técnicas utilizadas a nivel de arquitectura para soportar la implementación eficiente de sistemas operativos.
El contenido de la asignatura cubre la aplicación de las técnicas de segmentación y paralelismo en el diseño de procesadores. En concreto los temas desarrollados capacitan para la evaluación del rendimiento de un sistema de cómputo al ejecutar aplicaciones y el conocimiento del soporte de la arquitectura para una implementación eficiente de sistemas operativos. Además capacitan para la utilización de lenguajes de descripción hardware y su utilización para la descripción de elementos de un procesador.
Profesorado
Responsable
Jose M. Llaberia Griñó (
)
Otros
Miquel Moretó Planas (
)
Horas semanales
Teoría
1.5
Problemas
1.5
Laboratorio
1
Aprendizaje dirigido
0
Aprendizaje autónomo
7.11
Competencias
Competencias Técnicas de cada especialidad
Específicas
CTE1 - Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
CTE6 - Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.
CTE7 - Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.
Competencias Técnicas Genéricas
Genéricas
CG1 - Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la ingeniería informática.
CG3 - Capacidad para dirigir, planificar y supervisar equipos multidisciplinares.
CG4 - Capacidad para el modelado matemático, cálculo y simulación en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación, desarrollo e innovación en todos los ámbitos relacionados con la Ingeniería en Informática.
CG6 - Capacidad para la dirección general, dirección técnica y dirección de proyectos de investigación, desarrollo e innovación, en empresas y centros tecnológicos, en el ámbito de la Ingeniería Informática.
CG8 - Capacidad para la aplicación de los conocimientos adquiridos y de resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y mulitidisciplinares, siendo capaces de integrar estos conocimientos.
Competencias Transversales
Actitud frente al trabajo
CTR5 - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
Básicas
CB6 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
Objetivos
Capacitación para aplicar las técnicas de segmentación y paralelismo en el diseño de procesadores.
Competencias relacionadas:
CTE1,
CTR5,
Capacitación para evaluar el rendimiento de un sistema de cómputo al ejecutar aplicaciones.
Competencias relacionadas:
CTE6,
CTE7,
CTR5,
CG4,
Capacitación para explotar las capacidades de un sistema de cómputo y soportar u ocultar las debilidades.
Competencias relacionadas:
CTE7,
CTR5,
CG4,
Capacitación para diseñar y evaluar el soporte de la arquitectura para una implementación eficiente de sistemas operativos.
Competencias relacionadas:
CTE6,
CTR5,
Capacitación para la utilización de un lenguaje de descripción hardware y su aplicación en la especificación de elementos de un procesador.
Competencias relacionadas:
CTE1,
CTE7,
CG1,
CG3,
CG6,
CG8,
Contenidos
Computador y métricas de evaluación
Elementos constituyentes de un computador, funcionamiento, jerarquía de memoria, multihilo, consumo de energía y métricas de evaluación
Segmentación y paralelismo
Utilización de la técnicas de segmentación y paralelismo para incrementar la productividad. Recursos necesarios
Segmentación del proceso de interpretación de instrucciones
Camino de datos de un procesador segmentado lineal y el control del mismo. Concepto de riesgos de datos y de secuenciamiento. Adecuación de semánticas
Incremento de prestaciones
Técnicas software y hardware para reducir el número de ciclos perdidos en un procesador segmentado
Procesador multiciclo y superescalar
Interpretación de instrucciones con latencia de ejecución mayor que la latencia de inicio. Utilización de la técnica de paralelismo para interpretar instrucciones
Excepciones e interrupciones
Necesidades en el camino de datos y en el control del mismo para la atención de interrupciones y excepciones y su gestión
Multiprocesadores
Elementos de un sistema multiprocesador. Cache privadas. Conceptos de consistencia de memoria y coherencia de cache.
Lenguaje de descripción hardware VHDL
Aprendizaje de un lenguaje de descripción de hardware
Actividades
ActividadActo evaluativo
Lenguaje de descripción hardware
Aprendizaje del lenguaje VHDL para describir y simular circuitos lógicos. Descripción de componentes básicos en el camino de datos de un procesador y su verificación posterior
Laboratorio: Aprendizaje del los constructores básicos del lenguaje VHDL. Descripción y verificación de un sumador de un bit. Utilización de la descripción previa para describir y verificar un sumador de cuatro bits. Descripción y verificación de un camino de datos con un banco de registros y un sumador
Aprendizaje autónomo: Aprendizaje de los constructores básicos VHDL para describir circuitos combinatorios y secuenciales. Aprendizaje de las técnicas de verificación de circuitos. Preparación de las prácticas de laboratorio asociadas, contestar a les preguntes i reflexionar sobre les respostes
Estudio del camino de datos de un procesador serie. Identificación de las partes del camino de datos utilizadas por cada tipo de instrucción. Análisis y cálculo del retardo para cada tipo de instrucción y determinación del tiempo de ciclo del procesador
Laboratorio: Realizar las acciones y comprobaciones que se indican en la documentación
Aprendizaje autónomo: Estudiar la documentación de la práctica, contestar a las preguntas y reflexionar sobre las respuestas
Diseño del control de un procesador segmentado. Determinación del tiempo de ciclo
Análisis de camino de datos. Diseño del control para un funcionamiento que se adecue a la semántica del lenguaje máquina. Determinación del tiempo de ciclo
Laboratorio: Realizar las acciones y comprobaciones que se indican en la documentación e implementar el control del camino de datos
Aprendizaje autónomo: Estudiar la documentación de la práctica, diseñar el control del camino de datos, contestar a las preguntas y reflexionar sobre las respuestas
Diseño de un procesador segmentado con cortocircuitos para reducir los ciclos perdidos y el control del camino de datos resultante
Laboratorio: Realizar las acciones y comprobaciones que se indican en la documentación e implementar el control del camino de datos con cortocircuitos
Aprendizaje autónomo: Estudiar la documentación de la práctica, diseñar el control del camino de datos con cortocircuitos, contestar a las preguntas y reflexionar sobre las respuestas
Teoría: Descripción de los componentes básicos de un computador Von-Neumann incluyendo la jerarquía de memoria. Exposición de las métricas de evaluación utilizadas usualmente
Problemas: Realización de problemas relacionados con el tema
Aprendizaje autónomo: Estudio de los conceptos del tema y conceptos relacionados y realización de problemas para consolidar los conceptos
Teoría: Descripción de las técnicas de segmentación y paralelismo para incrementar la productividad. Utilización de métricas para evaluar incrementos o reducciones de productividad y consumo energético
Problemas: Realización de problemas relacionados con el tema
Aprendizaje autónomo: Estudio de los conceptos del tema y conceptos relacionados y realización de problemas para consolidar los conceptos
Segmentación del proceso de interpretación de instrucciones
Desarrollo del tema 3 de la asignatura
Teoría: Aplicación de la técnica de segmentación al proceso de interpetación de instrucciones realizado por un procesador. Observación y análisis de la necesidad de adecuar una segmentación ingénua a la semántica del lenguaje máquina
Problemas: Realización de problemas relacionados con el tema
Aprendizaje autónomo: Estudio de los conceptos del tema y conceptos relacionados y realización de problemas para consolidar los conceptos
Teoría: Utilización de varias ramificaciones en la microarquitectura para mejorar el rendimiento y soportar la capacidad de interpretar instrucciones en paralelo
Problemas: Realización de problemas relacionados con el tema
Aprendizaje autónomo: Estudio de los conceptos del tema y conceptos relacionados y realización de problemas para consolidar los conceptos
Teoría: Control de excepciones en un procesador segmentado para que se adecue a la semántica del lenguaje máquina. Control de interrupciones para atender a dispositivos externos
Problemas: Realización de problemas relacionados con el tema
Aprendizaje autónomo: Estudio de los conceptos del tema y conceptos relacionados y realización de problemas para consolidar los conceptos
Evaluación de la consolidación de los conceptos expuestos durante el curso mediante la respuesta a problemas y preguntas de razonamiento sobre conceptos expuestos Objetivos:1234 Semana:
15
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Prueba
Evaluación de los objetivos correspondientes a los tres primeros temas Objetivos:123 Semana:
8
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Prueba
Evaluación de los objetivos correspondientes a los tres primeros temas Objetivos:123 Semana:
8
Teoría
0h
Problemas
1h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
Clases de teoria en las cuales se desarrollan los conceptos y hay participación de los alumnos.
Clases de problemas donde se aplican los conceptos desarrollados en las clases de teoría y el agente activo es el alumno.
Clases de laboratorio donde se aplican los conceptos desarrollados en clase de teoría en un ejemplo concreto de procesador. El agente activo es el alumno y la colaboración entre los elementos que componen el grupo es el medio para incrementar o asentar el conocimiento.
El curso se desarrolla de forma contructiva. Esto es, se parte de los conceptos adquiridos en el grado y en cada tema de la asignatura se incrementa el conocimiento y la capacidad de comprender, analizar y razonar sobre aspectos de un procesador. Esta capacitación es además cuantitativa.
Método de evaluación
Las competencias tienen un peso proporcional al tiempo dedicado a ellas en las actividades y se evalúan de forma indirecta apartir de las notas de la prueba, examen final y laboratorio.
Las dos pruebas se realizan de forma consecutiva el mismo día y constituyen un único examen.
Prueba (P): Prueba escrita donde se evalúan los objetivos correspondientes a los tres primeros temas.
Examen final (F): Prueba escrita donde se evalúan todos los objetivos de la asignatura.
Laboratorio (L): Se evalúa a partir de los informes entregados en cada una de las sesiones prácticas y, en su caso, de una entrevista personal.
La nota final (NF) se calcula mediante la siguiente expresión:
NF = max (0.8 x F, (0.65 x F + 0.15 x P) ) + 0.2 x L
El nivel de consecución de la competencia transversal se evalúa
indirectamente a partir de las notas de la prueba y del examen final.
La nota correspondiente es:
A si 8.5 =< NF; B si 7 =< NF < 8.5; C si 5 =< NF < 7; D si NF < 5
Circuitos lógicos combinacionales y secuenciales. Funcionamiento de un computador: componentes, interconexiones, excepciones e interrupciones. Lenguaje máquina: programación y representación de datos. Jerarquía de memoria: funcionamiento y mecanismos que la soportan. Sistemas operativos: traducción de direcciones, gestión de excepciones e interrupciones