Universidad de Jaén

Menú local

Guía docente 2020-21 - 13313012 - Programación hardware

TITULACIÓN: Grado en Ingeniería informática
CENTRO: ESCUELA POLITÉCNICA SUPERIOR (JAÉN)

CURSO ACADÉMICO: 2020-21
GUÍA DOCENTE
1. DATOS BÁSICOS DE LA ASIGNATURA
NOMBRE: Programación hardware
CÓDIGO: 13313012 CURSO ACADÉMICO: 2020-21
TIPO: Optativa
Créditos ECTS: 6.0 CURSO: 4 CUATRIMESTRE: SC
WEB: http://dv.ujaen.es/docencia/goto.php?target=crs_432814&client_id=docencia
 
2. DATOS BÁSICOS DEL PROFESORADO
NOMBRE: CHARTE OJEDA, FRANCISCO
IMPARTE: Teoría - Prácticas [Profesor responsable]
DEPARTAMENTO: U118 - INFORMÁTICA
ÁREA: 035 - ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES
N. DESPACHO: A3 - 245 E-MAIL: fcharte@ujaen.es TLF: 953-213016
TUTORÍAS: https://uvirtual.ujaen.es/pub/es/informacionacademica/tutorias/p/73570
URL WEB: http://fcharte.com
 
NOMBRE: RUEDA RUIZ, ANTONIO JESÚS
IMPARTE: Teoría - Prácticas
DEPARTAMENTO: U118 - INFORMÁTICA
ÁREA: 570 - LENGUAJES Y SISTEMAS INFORMÁTICOS
N. DESPACHO: A3 - 141 E-MAIL: ajrueda@ujaen.es TLF: 953212893
TUTORÍAS: https://uvirtual.ujaen.es/pub/es/informacionacademica/tutorias/p/58261
URL WEB: http://www4.ujaen.es/~ajrueda
 
3. PRERREQUISITOS, CONTEXTO Y RECOMENDACIONES
PRERREQUISITOS:
-
CONTEXTO DENTRO DE LA TITULACIÓN:

Tras la realización de la asignatura el alumno deberá tener un amplio conocimiento de los siguientes conceptos:

  • Hardware de computadores.
  • Programación a bajo nivel.
  • Programación de interfaces de E/S.
  • Programación de buses.
  • Programación de GPUs.
  • Diseño e implementación de drivers.
RECOMENDACIONES Y ADAPTACIONES CURRICULARES:

Para el correcto aprovechamiento del curso se requieren conocimientos como mínimo medios de hardware de ordenadores, programación en C++ e Informática Gráfica.

El alumnado que presente necesidades específicas de apoyo educativo, lo ha de notificar personalmente al Servicio de Atención y Ayudas al Estudiante para proceder a realizar, en su caso, la adaptación curricular correspondiente.
4. COMPETENCIAS Y RESULTADOS DE APRENDIZAJE
código Denominación de la competencia
CB2R Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
CB3R 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.
CB5R Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
CC8R Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
CC9R Capacidad de conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
Resultados de aprendizaje
Resultado 1 Conocer 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
Resultado 15R Ser capaz de comprender y aplicar la programación hardware a bajo nivel, interfaces de E/S, buses, GPUs y drivers
Resultado CTI2R Competencia CTI2 Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.
5. CONTENIDOS

Hardware de computadores. Programación a bajo nivel. Programación de interfaces de E/S. Programación de buses. Programación de GPUs. Diseño e implementación de drivers.

 

Programa de teoría

Módulo 1: Programación hardware

  • Controladores de dispositivo
    • Tipos de drivers
    • Estructura de drivers en GNU/Linux y Windows
  • Programación de E/S y buses
    • E/S mapeada y no mapeada
    • Interrupciones, DMA
    • Servicios BIOS y UEFI

Módulo 2: Hardware reconfigurable

  • Introducción al hardware reconfigurable
    • Dispositivos lógicos programables
    • Lenguajes de descripción de hardware
  • Tecnologías de hardware reconfigurable
    • Dispositivos lógicos simples: PAL, PLA, GAL
    • Dispositivos lógicos complejos: CPLD y FPGAs
  • Programación de hardware reconfigurable
    • Tipos de circuitos y sus componentes
    • Diseños hardware con el lenguaje VHDL

Módulo 3: Procesadores gráficos programables

  • Introducción a la computación GPU
    • Evolución de las unidades de proceso gráfico (GPUs)
    • GPGPU y computación GPU
    • Evolución de la computación GPU. Hardware y entornos de desarrollo
  • Programación de shaders
    • Arquitectura del pipeline gráfico
    • Evolución de las capacidades de programación en las GPUs mediante shaders
    • Vertex shaders y pixel shaders. Shaders avanzados. Lenguajes de programación de shaders
    • Programación de shaders mediante OpenGL Shading Language (GLSL)
    • Resolución de problemas de propósito general mediante programación de shaders (GPGPU)
  • Computación GPU en arquitecturas unificadas
    • Arquitecturas unificadas en GPUs
    • Introducción a la tecnología CUDA de NVIDIA
    • Shaders para computación GPU
    • Programación de arquitecturas multicore mediante OpenCL

Programa de prácticas

  1. Desarrollo de controladores de dispositivo
  2. Uso de interrupciones y servicios BIOS/UEFI
  3. Simulación y síntesis de circuitos hardware VHDL/Verilog
  4. Programación de shaders
  5. Programación en CUDA
  6. Programación en OpenCL

6. METODOLOGÍA Y ACTIVIDADES
ACTIVIDADES HORAS PRESEN­CIALES HORAS TRABAJO AUTÓ­NOMO TOTAL HORAS CRÉDITOS ECTS COMPETENCIAS (códigos)
A1 - Clases expositivas en gran grupo
  • M1 - Clases magistrales
  • M2 - Exposición de teoría y ejemplos generales
  • M4 - Conferencias
25.0 37.5 62.5 2.5
  • CB2R
  • CB3R
  • CB5R
  • CC8R
  • CC9R
A2R - Clases en pequeño grupo
  • M10R - Aulas de informática
  • M11R - Resolución de ejercicios
  • M12R - Presentaciones/exposiciones
  • M6R - Actividades practicas
  • M7R - Seminarios
  • M9R - Laboratorios
30.0 45.0 75.0 3.0
  • CB2R
  • CB3R
  • CB5R
  • CC8R
  • CC9R
A3R - Tutorías colectivas
  • M17R - Aclaración de dudas
0.0 12.5 12.5 0.5
  • CB2R
  • CB3R
  • CB5R
  • CC8R
  • CC9R
TOTALES: 55.0 95.0 150.0 6.0  
 
INFORMACIÓN DETALLADA:

La asignatura se divide en dos partes fuertemente relacionadas: teoría y prácticas.


La teoría se impartirá en su mayor parte con sesiones magistrales, incluyendo varias sesiones de actividades, resolución de dudas y debate con las que se evaluará la participación del estudiante en la asignatura.

La parte práctica se realizará en el laboratorio de informática, utilizando el ordenador para el desarrollo de dichas sesiones. Se evaluará la resolución de diversos problemas relacionados con la programación de controladores, E/S,  GPU y diseño de circuitos para su implementación en FPGA.

7. SISTEMA DE EVALUACIÓN
 
ASPECTO CRITERIOS INSTRUMENTO PESO
Asistencia y/o participación en actividades presenciales y/o virtuales -Participación activa en clases teóricas y prácticas. -Participación en los debates. -Participación en el trabajo grupal. Observación y notas del profesor 5.0%
Conceptos teóricos de la materia Dominio de los conocimientos teóricos y operativos de la materia. El alumno deberá superar esta parte de la asignatura para poder sumar con el resto de aspectos evaluables. Entrega de un trabajo tutelado con relación a la temática de la asignatura 25.0%
Realización de trabajos, casos o ejercicios Realización de trabajos, casos o ejercicios Realización de trabajos, casos o ejercicios 0.0%
Prácticas de laboratorio/campo/uso de herramientas TIC Validación de guiones de prácticas. Dominio de conceptos prácticos de la materia Presentación de trabajos, se valorará: - Estructura del trabajo - Calidad de la documentación - Originalidad - Presentación El alumno deberá superar esta parte de la asignatura para poder sumar con el resto de aspectos evaluables. Un guión para cada sesión práctica Entrega y defensa de un trabajo práctico 70.0%
El sistema de calificación se regirá por lo establecido en el RD 1125/2003 de 5 de septiembre por el que se establece el sistema europeo de créditos y el sistema de calificaciones en la titulaciones universitarias de carácter oficial
INFORMACIÓN DETALLADA:

Atendiendo a lo recogido en el art. 13 del Reglamento de Régimen Académico y de Evaluación del alumnado de la Universidad de Jaén, la evaluación de la asignatura será global

- Prácticas (70%)

A lo largo del cuatrimestre se completarán varias prácticas en cada uno de los bloques, evaluadas individualmente. La calificación acumulada de dichas prácticas representará el 70% de la calificación final en la asignatura, con un peso del 50% (35% del global) para las prácticas de primer y segundo bloque y un 50% (el otro 35% del global) para las prácticas del tercero.

- Trabajo teórico (25%)

Los conocimientos teóricos se evaluarán a través de la realización y presentación de un trabajo individual en relación a la temática de la asignatura.

- Asistencia y participación (5%)

Se valorará la asistencia a las sesiones de teoría y prácticas, así como la participación activa en clase.

La evaluación del trabajo teórico, prácticas, asistencia y trabajo autónomo inciden en los resultados de aprendizaje de la asignatura (R1 y R5R1) y permite mejorar en el nivel de alcance de las competencias CB2R, CB5R, CC8R y CC9R.

 

 

8. DOCUMENTACIÓN / BIBLIOGRAFÍA
ESPECÍFICA O BÁSICA:
  • VHDL: de la tecnología a la arquitectura de computadores. Edición: -. Autor: Ruz Ortiz, José Jaime. Editorial: Madrid : Síntesis, 2003  (C. Biblioteca)
  • Fundamentos de sistemas digitales. Edición: 11ª ed. Autor: Floyd, Thomas L.. Editorial: Madrid : Pearson Educación, D.L. 2016  (C. Biblioteca)
  • Linux device drivers development : develop customized drivers for embedded Linux. Edición: -. Autor: Madieu, John, author. Editorial: Birmingham, UK : Packt Publishing, 2017  (C. Biblioteca)
GENERAL Y COMPLEMENTARIA:
  • Arquitectura de computadores: un enfoque cuantitativo. Edición: -. Autor: Hennessy, John L.. Editorial: Madrid [etc.]: McGraw-Hill, D.L. 1994  (C. Biblioteca)
  • VHDL : lenguaje para síntesis y modelado de circuitos. Edición: 3a ed. actualizada. Autor: Pardo Carpio, Fernando. Editorial: Madrid : Ra-ma, 2011  (C. Biblioteca)
  • Digital electronics with VHDL, Quartus II version. Edición: -. Autor: Kleitz, William. Editorial: Upper Saddle River, N.J. : Pearson Prentice Hall, c2006  (C. Biblioteca)
  • OpenGL shading language. Edición: 2nd ed., 4th printing.. Autor: Rost, Randi J.. Editorial: Upper Saddle River, NJ [etc.]: Addison Wesley, 2007  (C. Biblioteca)
9. CRONOGRAMA (segundo cuatrimestre)
Semana A1 - Clases expositivas en gran grupo A2R - Clases en pequeño grupo A3R - Tutorías colectivas Trabajo autónomo Observaciones
Nº 1
1 - 7 feb. 2021
2.02.00.0 6.0 Teoría: 1) Presentación 2) Introducción hardware: capas, anillos, privilegios Práctica: Introducción al desarrollo de controladores de dispositivos 
Nº 2
8 - 14 feb. 2021
2.02.00.0 6.0 Teoría: 1) Estructura de un driver en GNU/Linux 2) Examen del código de controladores básicos Práctica: Esqueleto de un driver, compilación y pruebas  
Nº 3
15 - 21 feb. 2021
2.02.00.0 6.0 Teoría: 1) Programación de E/S y buses 2) Preparación del entorno de desarrollo Práctica: Interrupciones para acceso a E/S y esqueleto de un SO 
Nº 4
22 - 28 feb. 2021
2.02.00.0 6.0 Teoría: 1) E/S: mapeada, no mapeada, DMA 2) Servicios de la BIOS Práctica: Completar el esqueleto de SO, compilación y pruebas 
Nº 5
1 - 7 mar. 2021
2.02.00.0 6.0 Teoría: 1) Introducción al hardware reconfigurable 2) Herramientas software para trabajo con FPGA Práctica: Configuración de circuitos simples  
Nº 6
8 - 14 mar. 2021
2.02.00.0 6.0 Teoría: 1) Los lenguajes VHDL y Verilog 2) Circuitos combinacionales y secuenciales Práctica: Implementación funcionalidades en driver y kernel SO I  
Nº 7
15 - 21 mar. 2021
1.02.01.0 6.0 Teoría: 1) Discusión trabajos teóricos a desarrollar Práctica: Implementación funcionalidades en driver y kernel SO II  
Nº 8
22 - 28 mar. 2021
0.02.02.0 6.0 Práctica: Defensa de las prácticas  
Nº 9
29 mar. - 4 abr. 2021
0.00.00.0 0.0 No lectivo  
Nº 10
5 - 11 abr. 2021
4.00.00.0 6.0 Teoría: 1) Introducción a la programación de GPUs 2) Programación de shaders (1)  
Nº 11
12 - 18 abr. 2021
2.02.00.0 6.0 Teoría: 1) Programación de shaders (2) Práctica: Programación de shaders (1)  
Nº 12
19 - 25 abr. 2021
2.02.00.0 6.0 Teoría: 1) GPGPU con shaders Práctica: Programación de shaders (2)  
Nº 13
26 abr. - 2 may. 2021
2.02.00.0 6.0 Teoría: 1) Arquitecturas unificadas (CUDA) Práctica: GPGPU con shaders (1) 
Nº 14
3 - 9 may. 2021
2.02.00.0 6.0 Teoría: 1) Arquitecturas unificadas (OpenCL) Práctica: GPGPU con shaders (2)  
Nº 15
10 - 16 may. 2021
0.04.00.0 6.0 Práctica: 1) Arquitecturas unificadas (1) 2) Arquitecturas unificadas (2) 
Nº 16
17 - 19 may. 2021
0.02.02.0 6.0 Presentación de trabajos Práctica: Arquitecturas unificadas (3) 
Total Horas 25.0 30.0 5.0 90.0  
10. ESCENARIO MIXTO

1. Metodología docente y actividades formativas

Actividades Formativas

Formato (presencial/online)*

Metodología docente Descripción

A1 ‐ Clases
expositivas en gran
grupo

Presencial 100% (*)

Clase a todos los estudiantes del grupo en el
horario y aula asignados.

Sesiones de clases magistrales participativas, de una hora de duración cada una, realizadas en laboratorios.

A2 ‐ Clases en
pequeño grupo

Presencial 100% (*)

Clase a todos los estudiantes del grupo en el
horario y aula asignados.

Desarrollo de sesiones prácticas, de dos horas de duración cada una, en laboratorios.

A3 - Tutorías colectivas

Presencial + Online

Consistirán en sesiones presenciales u online, de una hora de duración cada una.

Tutorías

Presencial + Online

Algunas sesiones de tutorías se realizarán de forma presencial y otras online (síncrona y asíncrona)

 (*) El Centro podrá establecer presencialidad rotativa dependiendo del número de
estudiantes y aforo del aula/laboratorio de acuerdo con las medidas sanitarias (clase en el
horario y aula/laboratorio asignados a una parte del grupo y retransmisión por
videoconferencia al resto, con rotación periódica de estudiantes, según determine el Centro).

2. Sistema de evaluación

Tanto las actividades de evaluación como los pesos serán los mismos que para el escenario de normalidad.

3. Recursos

Los propios del laboratorio en el que se desarrollarán las actividades y los medios de comunicación virtual puestos a disposición por la UJA (ILIAS, Google Meet, etc.)

11. ESCENARIO NO PRESENCIAL

1. Metodología docente y actividades formativas

Actividades Formativas

Formato (presencial/online)*

Metodología docente Descripción

A1 ‐ Clases
expositivas en gran
grupo

No presencial

Sesiones de clases magistrales participativas, de una hora de duración cada una de forma síncrona por vídeoconferencia.

A2 ‐ Clases en
pequeño grupo

No presencial

Desarrollo de sesiones prácticas, de dos horas de duración cada una de forma síncrona por vídeoconferencia.

A3 - Tutorías colectivas

No presencial

Consistirán en sesiones de una hora de duración de forma síncrona por vídeoconferencia.

Tutorías

No presencial

Todas las sesiones de tutorías se realizarán de forma online (síncrona y asíncrona)

Las actividades que no puedan realizarse de forma presencial se realizarán mediante actividades síncronas y/o asíncronas realizadas mediante la plataforma de docencia virtual.

Queda expresamente prohibida la grabación por ningún medio de las actividades presenciales o no presenciales síncronas.

2. Sistema de evaluación

Tanto las actividades de evaluación como los pesos serán los mismos que para el escenario de normalidad.

El sistema e instrumentos de evaluación serán los mismos que para la modalidad presencial, sustituyendo las pruebas presenciales por pruebas similares desarrolladas mediante el uso de la plataforma de docencia online, siempre que se garantice la identidad del estudiante.

3. Recursos

Los estudiantes desarrollarán las actividades usando sus propios equipos. Las sesiones teóricas/prácticas y de evaluación se llevarán a cabo mediante los medios de comunicación virtual puestos a disposición por la UJA (ILIAS, Google Meet, etc.)

 

CLÁUSULA DE PROTECCIÓN DE DATOS (evaluación on-line)

Responsable del tratamiento: Universidad de Jaén, Campus Las Lagunillas, s/n, 23071 Jaén

Delegado de Protección de Datos:dpo@ujaen.es

Finalidad: Conforme a la Ley de Universidades y demás legislación estatal y autonómica vigente, realizar los exámenes correspondientes a las asignaturas en las que el alumno o alumna se encuentre matriculado. Con el fin de evitar fraudes en la realización del mismo, el examen se realizará en la modalidad de video llamada, pudiendo el personal de la Universidad de Jaén contrastar la imagen de la persona que está realizando la prueba de evaluación con los archivos fotográficos del alumno en el momento de la matrícula. Igualmente, con la finalidad de dotar a la prueba de evaluación de contenido probatorio de cara a revisiones o impugnaciones de la misma, de acuerdo con la normativa vigente, la prueba de evaluación será grabada.

Legitimación: cumplimiento de obligaciones legales (Ley de Universidades) y demás normativa estatal y autonómica vigente.

Destinatarios: prestadores de servicios titulares de las plataformas en las que se realicen las pruebas con los que la Universidad de Jaén tiene suscritos los correspondientes contratos de acceso a datos.

Plazos de conservación: los establecidos en la normativa aplicable. En el supuesto en concreto de las grabaciones de los exámenes, mientras no estén cerradas las actas definitivas y la prueba de evaluación pueda ser revisada o impugnada.

Derechos: puede ejercitar sus derechos de acceso, rectificación, cancelación, oposición, supresión, limitación y portabilidad remitiendo un escrito a la dirección postal o electrónica indicada anteriormente. En el supuesto que considere que sus derechos han sido vulnerados, puede presentar una reclamación ante el Consejo de Transparencia y Protección de Datos de Andalucía www.ctpdandalucia.es

Cláusula grabación de clases PROTECCIÓN DE DATOS DE CARÁCTER PERSONAL

Responsable del tratamiento: Universidad de Jaén, Paraje Las Lagunillas, s/n; Tel.953 212121; www.ujaen.es

Delegado de Protección de Datos (DPO): TELEFÓNICA, S.A.U. ; Email: dpo@ujaen.es

Finalidad del tratamiento: Gestionar la adecuada grabación de las sesiones docentes con el objetivo de hacer posible la enseñanza en un escenario de docencia multimodal y/o no presencial.

Plazo de conservación: Las imágenes serán conservadas durante los plazos legalmente previstos en la normativa vigente.

Legitimación: Los datos son tratados en base al cumplimiento de obligaciones legales (Ley Orgánica 6/2001, de 21 de diciembre, de Universidades) y el consentimiento otorgado mediante la marcación de la casilla habilitada a tal efecto.

Destinatarios de los datos (cesiones o transferencias): Toda aquella persona que vaya a acceder a las diferentes modalidades de enseñanza.

Derechos: Ud. podrá ejercitar los derechos de Acceso, Rectificación, Cancelación, Portabilidad, Limitación del tratamiento, Supresión o, en su caso, Oposición. Para ejercitar los derechos deberá presentar un escrito en la dirección arriba señalada dirigido al Servicio de Información, Registro y Administración Electrónica de la Universidad de Jaén, o bien, mediante correo electrónico a la dirección de correo electrónico. Deberá especificar cuál de estos derechos solicita sea satisfecho y, a su vez, deberá acompañarse de la fotocopia del DNI o documento identificativo equivalente. En caso de que actuara mediante representante, legal o voluntario, deberá aportar también documento que acredite la representación y documento identificativo del mismo. Asimismo, en caso de considerar vulnerado su derecho a la protección de datos personales, podrá interponer una reclamación ante el Consejo de Transparencia y Protección de Datos de Andalucía www.ctpdandalucia.es