Universidad de Jaén

Menú local

Guía docente 2019-20 - 13313012 - Programación hardware



TITULACIÓN: Grado en Ingeniería informática
CENTRO: ESCUELA POLITÉCNICA SUPERIOR (JAÉN)
CURSO: 2019-20
ASIGNATURA: Programación hardware
GUÍA DOCENTE
1. DATOS BÁSICOS DE LA ASIGNATURA
NOMBRE: Programación hardware
CÓDIGO: 13313012 CURSO ACADÉMICO: 2019-20
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
ORCID: -
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
ORCID: https://orcid.org/0000-0001-7692-454X
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
  • M5 - Otros
30.0 45.0 75.0 3.0
  • 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
TOTALES: 60.0 90.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 laboratoriode informática, utilizando el ordenador para el desarrollode 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 Trabajo autónomo Observaciones
Nº 1
27 ene. - 2 feb. 2020
2.02.0 6.0 Presentación de la asignatura. Inicio del módulo 1. 
Nº 2
3 - 9 feb. 2020
2.02.0 6.0 Teoría y prácticas del módulo 1. 
Nº 3
10 - 16 feb. 2020
2.02.0 6.0 Teoría y prácticas del módulo 1. 
Nº 4
17 - 23 feb. 2020
2.02.0 6.0 Teoría y prácticas del módulo 1. 
Nº 5
24 feb. - 1 mar. 2020
2.02.0 6.0 Teoría y prácticas del módulo 2. 
Nº 6
2 - 8 mar. 2020
2.02.0 6.0 Teoría y prácticas del módulo 2. 
Nº 7
9 - 15 mar. 2020
1.02.0 6.0 Prácticas del módulo 2. - Tutorías colectivas (1h) 
Nº 8
16 - 22 mar. 2020
2.02.0 6.0 Teoría y prácticas del módulo 3. 
Nº 9
23 - 29 mar. 2020
2.02.0 6.0 Teoría y prácticas del módulo 3. 
Nº 10
30 mar. - 3 abr. 2020
2.02.0 6.0 Teoría y prácticas del módulo 3. 
Período no docente: 4 - 12 abr. 2020
Nº 11
13 - 19 abr. 2020
2.02.0 6.0 Teoría y prácticas del módulo 3. 
Nº 12
20 - 26 abr. 2020
2.02.0 6.0 Teoría y prácticas del módulo 3. 
Nº 13
27 abr. - 3 may. 2020
2.02.0 6.0 Teoría y prácticas del módulo 3. 
Nº 14
4 - 10 may. 2020
0.02.0 6.0 Entrega final de trabajos prácticos. - Tutorías colectivas (2h) 
Nº 15
11 - 15 may. 2020
0.02.0 6.0 Presentación de trabajos. - Tutorías colectivas (2h) 
Total Horas 25.0 30.0 90.0