Universidad de Jaén

Menú local

Guía docente 2016-17 - 13313012 - Programación hardware



TITULACIÓN: Grado en Ingeniería informática
CENTRO: ESCUELA POLITÉCNICA SUPERIOR (JAÉN)
CURSO: 2016-17
ASIGNATURA: Programación hardware
GUÍA DOCENTE
1. DATOS BÁSICOS DE LA ASIGNATURA
NOMBRE: Programación hardware
CÓDIGO: 13313012 CURSO ACADÉMICO: 2016-17
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.

 

Contenidos Teóricos:

Módulo 1: Procesadores gráficos programables

  • Introdución a la GPGPU
    • Evolución de las unidades de proceso gráfico (GPUs)
    • Evolución de la GPGPU. 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
    • Vertex shaders y pixel shaders. Shaders avanzados.
    • Lenguajes de programación de shaders: Cg, HLSL, GLSL
    • Programación de shaders mediante OpenGL Shading Language (GLSL)
    • Uso de shaders para resolución de problemas de propósito general mediante GPU
  • GPGPU en arquitecturas unificadas
    • Arquitecturas unificadas en GPUs
    • Introducción a la tecnología CUDA de NVIDIA
    • Programación de arquitecturas multicore mediante OpenCL

Módulo 2: Hardware de Computadores.

  • Arquitectura de un computador: niveles y componentes
    • Microprocesadores
    • Memoria caché
    • Buses e interfaces de E/S
  • Programación a bajo nivel y optimización de código.
    • Lenguaje ensamblador
    • Conexión lenguajes de alto y bajo nivel
    • Optimización en programación a alto y bajo nivel.

Módulo 3: Programación de Interfaces de E/S.

  • Metodologías de diseño de computadores
    • Sistemas empotrados y procesadores reconfigurables
    • Introducción a la lógica programable
    • Co-diseño hardware/software
  • Lenguajes de prototipado: VHDL

Módulo 3: Procesadores gráficos y multimedia.

  • Introdución a la GPGPU
    • Evolución de las unidades de proceso gráfico (GPUs)
    • Evolución de la GPGPU. 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
    • Vertex shaders y pixel shaders. Shaders avanzados.
    • Lenguajes de programación de shaders: Cg, HLSL, GLSL
    • Programación de shaders mediante OpenGL Shading Language (GLSL)
    • Uso de shaders para resolución de problemas de propósito general mediante GPU
  • GPGPU en arquitecturas unificadas
    • Arquitecturas unificadas en GPUs
    • Introducción a la tecnología CUDA de NVIDIA
    • Programación de arquitecturas multicore mediante OpenCL

Contenidos Prácticos:

  1. Programación de shaders
  2. Programación en CUDA
  3. Optimización de código
  4. Implementación de proyectos sobre una placa hardware
  5. Diseño de hardware en lenguaje VHDL

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:

Ninguna observación

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:

Ninguna observación.

8. DOCUMENTACIÓN / BIBLIOGRAFÍA
ESPECÍFICA O BÁSICA:
  • Organización y arquitectura de computadores: diseño para optimizar prestaciones. Edición: 5ª ed. Autor: Stallings, William. Editorial: Madrid [etc.]: Prentice Hall, 2004  (C. Biblioteca)
  • VHDL: de la tecnología a la arquitectura de computadores. Edición: -. Autor: Ruz Ortiz, José Jaime. Editorial: Madrid : Síntesis, 2003  (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
30 ene. - 5 feb. 2017
2.02.0 6.0 Presentación del curso e introducción del módulo 1 
Nº 2
6 - 12 feb. 2017
2.02.0 6.0 Módulo 1 
Nº 3
13 - 19 feb. 2017
2.02.0 6.0 Módulo 1 
Nº 4
20 - 26 feb. 2017
2.02.0 6.0 Módulo 1 
Nº 5
27 feb. - 5 mar. 2017
2.02.0 6.0 Módulo 1 
Nº 6
6 - 12 mar. 2017
2.02.0 6.0 Módulo 1 
Nº 7
13 - 19 mar. 2017
2.02.0 6.0 Módulo 1 
Nº 8
20 - 26 mar. 2017
2.02.0 6.0 Módulo 1 e introducción del módulo 2 
Nº 9
27 mar. - 2 abr. 2017
2.02.0 6.0 Módulo 2 
Nº 10
3 - 9 abr. 2017
2.02.0 6.0 Módulo 2 
Nº 11
10 - 16 abr. 2017
0.00.0 0.0 Semana Santa 
Nº 12
17 - 23 abr. 2017
2.02.0 6.0 Introducción y desarrollo del módulo 3 
Nº 13
24 - 30 abr. 2017
2.02.0 6.0 Módulo 3 
Nº 14
1 - 7 may. 2017
2.02.0 6.0 Módulo 3 
Nº 15
8 - 14 may. 2017
2.02.0 6.0 Módulo 3 
Nº 16
15 - 19 may. 2017
2.02.0 6.0 Módulo 3 
Total Horas 30.0 30.0 90.0