DATOS IDENTIFICATIVOS 2023_24
Asignatura (*) COMPUTADORES Código 17234107
Titulación
Grado en Ingeniería Informática (2010)
Ciclo
Descriptores Cr.totales Tipo Curso Periodo
6 Obligatoria Segundo 1Q
Lengua de impartición
Català
Departamento Ingeniería Informática y Matemáticas
Coordinador/a
ROMANÍ ALSO, SANTIAGO
Correo-e pere.millan@urv.cat
santiago.romani@urv.cat
victoreduardo.navas@urv.cat
francescxavier.iglesias@urv.cat
Profesores/as
MILLAN MARCO, PEDRO
ROMANÍ ALSO, SANTIAGO
NAVAS MONTENEGRO, VICTOR EDUARDO
IGLESIAS MARCA, FRANCESC XAVIER
Web http://https://campusvirtual.urv.cat/local/alternatelogin/index.php
Descripción general e información relevante <div>DESCRIPCIÓN GENERAL DE LA ASIGNATURA: ‘Computadores’ profundiza en el aprendizaje de la programación a bajo nivel introducida en la asignatura de 'Fundamentos de los Computadores', centrándose en los aspectos relacionados con los controladores de Entrada/Salida, es decir, conexión al bus y acceso a los registros de Entrada/Salida, así como la sincronización del acceso a los controladores mediante técnicas de encuesta e interrupción. Todos estos conceptos se ejemplifican utilizando la plataforma Nintendo® DS, que incorpora dos procesadores ARM y diversos controladores de E/S internos (pantallas, botones, temporizadores, DMA, sonido, etc.).</div>

Competencias
Tipo A Código Competencias Específicas
 A7 Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
 CM9 Capacidad de conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
Tipo B Código Competencias Transversales
 B3 Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
 B8 Capacidad de trabajar en un entorno multilingüe y multidisciplinar.
 CT3 Resoldre problemes de manera crítica, creativa i innovadora en el seu àmbit d’estudi
  CT4 Treballar de forma autònoma i en equip amb responsabilitat i iniciativa
Tipo C Código Competencias Nucleares

Resultados de aprendizaje
Tipo A Código Resultados de aprendizaje
 A7 Refuerza el conocimiento de la organización y el funcionamiento de los subsistemas de la estructura Von Neumann: Procesador, Memoria y Entrada / Salida.
Sabe utilizar las herramientas del Lenguaje Ensamblador para generar programas en L.M. los procesadores ARM.
Sabe enlazar rutas escritas en Lenguaje Ensamblador de ARM con un programa escrito en lenguaje C.
Utiliza herramientas de depuración para hacer el seguimiento de los programas escritos en L.M.
Entiende la funcionalidad de los interfaces entre el computador y los dispositivos periféricos, es decir, los controladores de E / S.
Analiza los métodos de sincronización por encuesta y por interrupción, y diseñar rutinas que utilicen estos métodos de manera eficaz y eficiente.
Comprende el método de transferencia de información a través de controladores de acceso directo a memoria (DMA), y diseña rutinas que utilicen este método de manera eficaz.
Conoce otros sistemas más sofisticados para manejar las transferencias de Entrada / Salida, basados en procesadores auxiliares especializados.
 CM9 Refuerza el conocimiento de la organización y el funcionamento de los subsistemas de la estructura Von Neumann: Procesador, Memoria y Entrada/Salida.
Entiende el formato de las instrucciones y les datos del Lenguaje Máquina de los procesadores ARM, así como saber ubicar esta información dentro de la memória del computador.
Analiza un conjunto significativo de instrucciones i modos de direccionamiento del L.M. de los procesadores compatibles ARM.
Sabe utilizar las herramientas del Lenguaje Ensamblador para generar programas en L.M. de los procesadores ARM.
Traduce estructuras algorítmicas (secuenciales, condicionales, iterativas) a Lenguaje Ensamblador de ARM.
Convierte funciones de programas escritos en lenguaje C al equivalente en Lenguaje Ensamblador d'ARM, es decir, subrutinas con el paso de parámetros y retorno de resultados, tanto por valor como para referencia.
Sabe enlazar rutinas escritas en Lenguage Ensamblador de ARM con un programa escrito en lenguaje C.
Utiliza herramientas de depuración para hacer el seguimiento de los programas escritos en L.M.
Entiende la funcionalidad de las interfícies entre el computador y los dispositivos periféricos, es decir, de los controladores de E/ S.
Analiza los métodos de sincronización por encuesta y por interrupción, y diseñar rutinas que utilicen estos métodos de manera eficaz y eficiente.
Comprende el método de transferencia de información a través de controladores de acceso directo a memoria (DMA), y diseña rutinas que utilitcen este método de manera eficaz.
Conoce otros sistemas más sofisticados para manejar las transferencias de Entrada/Salida, basados en procesadores auxiliares especializados.
Tipo B Código Resultados de aprendizaje
 B3 Es capaz de resolver problemas de forma ingeniosa, con iniciativa y creatividad, teniendo en cuenta los conceptos de la asignatura.
 B8 Participa y colabora activamente en las tareas del equipo, lleva a cabo su aportación individual en el tiempo previsto, tiene en cuenta la aportación de los demás y retroalimenta de forma constructiva.
 CT3 Identifica la situación planteada como un problema en el ámbito de la disciplina y teiene motivación para afrontarlo
Sigue un método sistemático para dividir el problema en partes e identificar sus causas aplicando los conocimientos propios de la disciplina
Diseña una solución innovadora utilizando los recursos necesarios para afrontar el problema
Incluye los aspectos concretos de la solución propuesta en un modelo realista
Reflexiona sobre el modelo propuesto y es capaz de encontrar limitaciones y propone mejoras
  CT4 Identifica el propio rol dentro del equipo y conoce los objetivos y tareas del grupo
Se comunica con los miembros del equipo para facilitar la cohesión y el rendimiento del grupo
Se compromete con las tareas y con la agenda del grupo
Colabora con los miembros del grupo en la resolución de problemas procurando un buen clima de trabajo
Tipo C Código Resultados de aprendizaje

Contenidos
tema Subtema
1 Introducción 1.1 Visión general del sistema NDS
2 Organización interna de un sistema programable 2.1 Componentes del computador
2.2 Regulación del acceso al bus (Chip Select)
2.3 Controlador de direcciones de memoria
2.4 Zonas de memoria reflejadas
2.5 Acceso a los registros de entrada/salida
3 Organización interna de la plataforma NDS 3.1 Interconexión de los componentes principales
3.2 Mapas de memoria y de registros de entrada/salida
3.3 Ejemplo de controlador de entrada/salida: botones
4 Controladores de las pantallas NDS 4.0 Introducción a los gráficos por computador (2D)
4.1 Interconexión de los componentes gráficos
4.2 Modos de fondos gráficos
4.3 Bancos de Video-RAM
4.4 Modo Frame Buffer
4.5 Registros de control de los fondos
4.6 Fondos de texto
4.7 Fondos de rotación/escalado
4.8 Objetos gráficos en movimiento (sprites)
5 Sincronización de Entrada/Salida 5.1 Necesidad de la sincronización de E/S
5.2 Sincronización por encuesta
5.3 Sincronización por interrupciones
5.4 El controlador de interrupciones
5.5 Gestión de las Rutinas de Servicio de Interrupción (RSI)
5.6 Sincronización por interrupciones temporales
6 Procesos de transferencia de Entrada/Salida 6.1 Transferencia mediante CPU
6.2 Transferencia mediante DMA (Direct Memory Access)
6.3 El controlador de DMA
6.4 Ejemplos de transferencia por DMA
7 Controlador de sonido de la NDS 7.1 Características básicas
7.2 Reproducción de sonido muestreado
7.3 Sonido polifónico y variación de frecuencia
7.4 Acceso al hardware del controlador de sonido
8 Comunicación entre los procesadores ARM9 y ARM7 8.1 Necesidades de comunicación entre procesadores
8.2 Sincronización mediante IPCSYNC
8.3 Ejemplo de sincronización
8.4 Transferencia de información mediante IPCFIFO
8.5 Ejemplo de transferencia

Planificación
Metodologías  ::  Pruebas
  Competencias (*) Horas en clase
Horas fuera de clase
(**) Horas totales
Actividades introductorias
1 0 1
Sesión magistral
A7
CM9
18 18 36
Resolución de problemas/ejercicios en el aula ordinaria
A7
CM9
14 14 28
Prácticas en laboratorios
A7
CM9
20 20 40
Atención personalizada
4 0 4
 
Pruebas de desarrollo
A7
CM9
2 10 12
Pruebas prácticas
A7
CM9
B3
B8
2 16 18
Pruebas objetivas de tipo test
A7
CM9
1 10 11
 
(*) En el caso de docencia no presencial, serán las horas de trabajo con soporte virtual del profesor.
(**) Los datos que aparecen en la tabla de planificación son de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías
  descripción
Actividades introductorias Presentación de la asignatura
Sesión magistral Explicación teórica de los contenidos de la asignatura. Siempre que sea posible se utilizará material propio (documentos PDF) que se proyectarán con el cañón de vídeo
Resolución de problemas/ejercicios en el aula ordinaria Problemas que se resolverán en clase (con participación de los alumnos) para reforzar los conocimientos teóricos
Prácticas en laboratorios Desarrollo de un programa sobre la plataforma NDS, con rutinas escritas en lenguaje máquina del procesador ARM y partes escritas en lenguaje C. El programa normalmente consistirá en un juego sobre una matriz de celdas
Atención personalizada Horas de consulta per esclarecer dudas sobre teoría, problemas o las prácticas

Atención personalizada
descripción

Tiempo reservado para resolver dudas de los alumnos de manera individual. Las reuniones podrán ser presenciales o en linea, en horarios concertados previamente por correo electrónico.

Horario oficial de consulta: http://deim.urv.cat/personal/llistat/15.html


Evaluación
Metodologías Competencias descripción Peso        
Pruebas prácticas
A7
CM9
B3
B8
Se realizará un programa utilizando C y lenguaje máquina del ARM, para implementar un juego sobre la plataforma NDS. El programa se desarrollará en dos fases. Los alumnos formarán grupos de hasta 4 componentes, cada uno de los cuales se encargará de programar unas tareas concretas en cada fase, además de un programa de test específico para probar el funcionamiento de las tareas implementadas (obligatorio). Al final de cada fase se deberá subir el código fuente al servidor git del departamento, dentro de las fechas límite establecidas para cada fase y convocatoria. Es muy recomendable ir subiendo commits progresivos, y no un único commit con la última versión. Se realizará una entrevista personalizada a cada miembro del grupo. Las notas serán independientes del resto del grupo, y se limitará en función del número de tareas integradas en el programa final. La nota de prácticas de la asignatura será la media aritmética de las dos notas obtenidas en las entrevistas. 30%
Pruebas de desarrollo
A7
CM9
Examen de 2 horas donde será necesario resolver un problema concreto, que consistirá en implementar un programa sobre la plataforma NDS para realizar tareas que requerirán Entrada/Salida de información, utilizando C y lenguaje máquina del ARM. En la solución presentada, el alumno deberá demostrar que domina las técnicas básicas de la programación de Entrada/Salida de información (acceso a registros de E/S, sincronización per encuesta/interrupción, etc.), así como la programación a bajo nivel del computador (lenguaje máquina). 40%
Pruebas objetivas de tipo test
A7
CM9
Examen tipo test sobre el Moodle con unas 12 preguntas sobre todos los conceptos explicados en clase de teoría. Las preguntas pueden ser de respuesta única sobre 4 opciones, donde las opciones incorrectas restan 1/3 del valor de la opción correcta, o bien de respuesta calculada, donde las respuestas incorrectas no restan. 30%
Otros  
 
Otros comentarios y segunda convocatoria

Se exigirá una nota mínima de 4 sobre 10 en cada uno de los apartados de evaluación de la asignatura (cada fase de la práctica, problema y test) para tener derecho a aprobar la asignatura, tanto en primera como en segunda convocatoria.

La asignatura se aprueba si la media ponderada de las pruebas, redondeada a la unidad, es superior o igual a 5 sobre 10.

La evaluación en segunda convocatoria tiene la misma estructura que la primera convocatoria, es decir, práctica (dos fases), problema y test, pero solo será necesario presentarse de las partes que en primera convocatoria no se haya superado la nota mínima (4 sobre 10), el resto de notas se conservarán íntegras entre convocatorias. También se permitirá presentarse a subir nota de las pruebas superadas, pero habrá que tener en cuenta que la nota definitiva será la de la última solución presentada, incluso en el caso que se obtuviese un resultado peor que en primera convocatoria.

Durante la realización de todas las pruebas no se permitirá la utilización de ningún tipo de dispositivo electrónico, ni tampoco se permitirá consultar ningún tipo de documentación.

Los exámenes de problema y test se realizarán presencialmente. Las entrevistas de las prácticas se podrán realizar tanto presencialmente como a distancia, según establezca el profesor corrector.


Fuentes de información

Básica William Holh, ARM Assembly Language: Fundamentals and Techniques, CRC Press, 2009

La principales fuentes de información son los materiales docentes desarrollados por los propios profesores de la asignatura, disponibles en el Moodle.

Complementaria

Recomendaciones

Asignaturas que continúan el temario
ESTRUCTURA DE COMPUTADORES/17234108
FUNDAMENTOS DE SISTEMAS OPERATIVOS/17234112
ESTRUCTURA DE SISTEMAS OPERATIVOS/17234113

Asignaturas que se recomienda cursar simultáneamente
PROGRAMACIÓN/17234114

Asignaturas que se recomienda haber cursado previamente
FUNDAMENTOS DE COMPUTADORES/17234002
FUNDAMENTOS DE PROGRAMACIÓN I/17234001
FUNDAMENTOS DE PROGRAMACIÓN II/17234131
(*)La Guía docente es el documento donde se visualiza la propuesta académica de la URV. Este documento es público y no es modificable, excepto en casos excepcionales revisados por el órgano competente o debidamente revisado de acuerdo la normativa vigente.