Menú local
Guía docente 2022-23 - 13313012 - Programación hardware
TITULACIÓN: | Grado en Ingeniería informática |
CENTRO: | ESCUELA POLITÉCNICA SUPERIOR (JAÉN) |
CURSO: | 2022-23 |
ASIGNATURA: | Programación hardware |
NOMBRE: Programación hardware | |||||
CÓDIGO: 13313012 | CURSO ACADÉMICO: 2022-23 | ||||
TIPO: Optativa | |||||
Créditos ECTS: 6.0 | CURSO: 4 | CUATRIMESTRE: SC | |||
WEB: https://platea.ujaen.es |
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 - 219 | E-MAIL: fcharte@ujaen.es | TLF: 953213016 |
TUTORÍAS: https://uvirtual.ujaen.es/pub/es/informacionacademica/tutorias/p/73570 | ||
URL WEB: https://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 |
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.
Se precisan conocimientos generales sobre hardware de microcomputadores y programación en ensamblador, como los adquiridos en las asignaturas Fundamentos de Arquitectura de Computadores y Arquitectura de Computadores, así como sobre el funcionamiento de los sistemas operativos, tratados en la respectiva asignatura.
Asimismo se recomiendan fundamentos sobre programación 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.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. |
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 TEÓRICO
Módulo 1. Programación a bajo nivel
- Controladores de dispositivo (
drivers)
- Tipos de drivers
- Estructura de drivers en GNU/Linux
- Funciones de un driver
- Carga y descarga de drivers
- Programación de E/S y buses
- E/S mapeada y no mapeada
- Interrupciones, DMA
- Servicios BIOS y UEFI
- Cargadores (
bootloader) y núcleo (
kernel) de SO
- Funcionamiento de un bootloader
- Proceso de carga del kernel
- Modos de funcionamiento
- Introducción al hardware reconfigurable
- Dispositivos lógicos programables
- Tecnologías de hardware reconfigurable
- Lenguajes de descripción de hardware
Módulo 2. 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 PRÁCTICO
- Desarrollo de controladores de dispositivo
- Uso de interrupciones y servicios BIOS/UEFI
- Implementación de booloader y un kernel básico
- Programación de shaders
- Programación en CUDA
- Programación en OpenCL
ACTIVIDADES | HORAS PRESENCIALES | HORAS TRABAJO AUTÓNOMO | TOTAL HORAS | CRÉDITOS ECTS | COMPETENCIAS (códigos) |
---|---|---|---|---|---|
A1 - Clases expositivas en gran grupo
|
25.0 | 37.5 | 62.5 | 2.5 |
|
A2R - Clases en pequeño grupo
|
30.0 | 45.0 | 75.0 | 3.0 |
|
A3R - Tutorías colectivas
|
0.0 | 12.5 | 12.5 | 0.5 |
|
TOTALES: | 55.0 | 95.0 | 150.0 | 6.0 |
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. Los
contenidos teóricos serán la base para la
adquisición de las compentencias CB2R, CB3R, CB5R, CB8R y
CB9R. La teoría tendrá como resultado de aprendizaje
"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",
así como "15R. Ser capaz de comprender y aplicar la
programación hardware a bajo nivel, interfaces de E/S,
buses, GPUs y drivers"
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, acceso a buses de E/S y uso
de interrupciones, programación de GPU con shaders, CUDA y
OpenCL. Esta actividad reforzará las competencias antes
enumeradas: CB2R, CB3R, CB5R, CB8R y CB9R y serán la
base del resultado de aprendizaje "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"
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% |
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 (1, 15R y CTI2R) y permite mejorar en el nivel de alcance de las competencias CB2R, CB3R, CB5R, CC8R y CC9R.
- 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)
- 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)
Semana | A1 - Clases expositivas en gran grupo | A2R - Clases en pequeño grupo | A3R - Tutorías colectivas | Trabajo autónomo | Observaciones | |
---|---|---|---|---|---|---|
Nº 1 30 ene. - 5 feb. 2023 |
4.0 | 0.0 | 0.0 | 6.0 | Teoría: 1) Presentación 2) Introducción hardware: capas, anillos, privilegios | |
Nº 2 6 - 12 feb. 2023 |
2.0 | 2.0 | 0.0 | 6.0 | Teoría: 1) Estructura de un driver en GNU/Linux 2) Examen del código de controladores básicos Práctica: Introducción al desarrollo de controladores de dispositivos | |
Nº 3 13 - 19 feb. 2023 |
0.0 | 4.0 | 0.0 | 6.0 | Práctica: 1) Esqueleto de un driver, compilación y pruebas 2) Desarrollo de un driver propio | |
Nº 4 20 - 26 feb. 2023 |
2.0 | 2.0 | 0.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º 5 27 feb. - 5 mar. 2023 |
2.0 | 2.0 | 0.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º 6 6 - 12 mar. 2023 |
2.0 | 2.0 | 0.0 | 6.0 | Teoría: 1) Introducción al hardware reconfigurable 2) Herramientas software para trabajo con FPGA Práctica: Desarrollo driver, bootloader y kernel de SO | |
Nº 7 13 - 19 mar. 2023 |
0.0 | 3.0 | 0.0 | 9.0 | TC: Discusión trabajos teóricos a desarrollar Práctica: Implementación funcionalidades en driver y kernel SO I | |
Nº 8 20 - 26 mar. 2023 |
0.0 | 0.0 | 0.0 | 8.0 | Resolución de dudas y selección de trabajos teóricos para su presentación | |
Nº 9 27 mar. - 1 abr. 2023 |
4.0 | 0.0 | 0.0 | 6.0 | Teoría: 1) Introducción a la programación de GPUs 2) Programación de shaders (1) | |
Período no docente: 2 - 9 abr. 2023 | ||||||
Nº 10 10 - 16 abr. 2023 |
2.0 | 2.0 | 0.0 | 6.0 | Teoría: 1) Programación de shaders (2) Práctica: Programación de shaders (1) | |
Nº 11 17 - 23 abr. 2023 |
2.0 | 2.0 | 0.0 | 6.0 | Teoría: 1) GPGPU con shaders Práctica: Programación de shaders (2) | |
Nº 12 24 - 30 abr. 2023 |
2.0 | 2.0 | 0.0 | 6.0 | Teoría: 1) Arquitecturas unificadas (CUDA) Práctica: GPGPU con shaders (1) | |
Nº 13 1 - 7 may. 2023 |
2.0 | 2.0 | 0.0 | 6.0 | Teoría: 1) Arquitecturas unificadas (OpenCL) Práctica: GPGPU con shaders (2) | |
Nº 14 8 - 14 may. 2023 |
1.0 | 3.0 | 0.0 | 6.0 | Teoría: 1) Arquitecturas unificadas (OpenCL) Práctica: 1) Arquitecturas unificadas (1) 2) Arquitecturas unificadas (2) | |
Nº 15 15 - 19 may. 2023 |
0.0 | 4.0 | 0.0 | 6.0 | Práctica: Arquitecturas unificadas (3) | |
Total Horas | 25.0 | 30.0 | 0.0 | 95.0 |
- Metodología docente y actividades formativas
Actividades Formativas |
Formato (presencial/online)* |
Metodología docente Descripción |
A1 -
Clases
|
Presencial
100% (**)
|
Clase
a todos los estudiantes del grupo en el
Sesiones de clases magistrales participativas, de una hora de duración cada una, realizadas en laboratorios. |
A1 - Clases expositivas en gran grupo |
Presencial rotativa 50% (*) |
Clase en el horario y aula asignados a una parte del grupo y retransmisión por vídeoconferencia al resto, con rotación periódica de estudiantes según determine el Centro. Sesiones de clases magistrales participativas, de una hora de duración cada una, realizadas en laboratorios. |
A2 -
Clases en
|
Presencial
100% (**)
|
Clase
a todos los estudiantes del grupo en el
Desarrollo de sesiones prácticas, de dos horas de duración cada una, en laboratorios. |
A2 - Clases en pequeño grupo |
Presencial rotativa 50% (*) |
Clase en el horario y aula asignados a una parte del grupo y retransmisión por vídeoconferencia al resto, con rotación periódica de estudiantes según determine el Centro. Desarrollo de sesiones prácticas, de dos horas de duración cada una, en laboratorios. |
(*) El Centro podrá establecer un porcentaje de presencialidad distinto dependiendo del
número de estudiantes y aforo del aula/laboratorio de acuerdo con las medidas sanitarias.
(**) 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 (PLATEA, Google Meet, etc.)
1. Metodología docente y actividades formativas
Actividades Formativas |
Formato (presencial/online)* |
Metodología docente Descripción |
A1 - Clases
|
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
|
No presencial
|
Desarrollo de sesiones prácticas, de dos horas de duración cada una 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 (PLATEA, Google Meet, etc.)
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
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