DATOS IDENTIFICATIVOS 2018_19
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
carlos.garciabarroso@urv.cat
Profesores/as
MILLAN MARCO, PEDRO
ROMANÍ ALSO, SANTIAGO
GARCÍA-BARROSO VILLALONGA, CARLOS
Web http://moodle.urv.net/moodle/course/view.php?id=31532
Descripción general e información relevante Profundiza en la programació a bajo nivel de computadores introducida en la asignatura de 'Fundamentos de los Computadores', sobretodo en los aspectos de las Entradas y Salidas, utilizando una plataforma hardware basada en un procesador ARM.

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.
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 Reforça el coneixement de l’organització i el funcionament dels subsistemes de l’estructura Von Neumann: Processador, Memòria i Entrada/Sortida.
Entén el format de les instruccions i les dades del Llenguatge Màquina dels processadors ARM, així com saber ubicar aquesta informació dins la memòria del computador.
Analitza un conjunt significatiu d’instruccions i modes d’adreçament del L.M. dels processadors compatibles ARM.
Sap utilitzar les eines del Llenguatge Assemblador per generar programes en L.M. dels processadors ARM.
Tradueix estructures algorísmiques (seqüencials, condicionals, iteratives) a Llenguatge Assemblador d'ARM.
Converteix funcions de programes escrits en llenguatge C a l’equivalent en Llenguatge Assemblador d'ARM, és a dir, subrutines amb el pas de paràmetres i retorn de resultats, tant per valor com per referència.
Sap enllaçar rutines escrites en Llenguatge Assemblador d'ARM amb un programa escrit en llenguatge C.
Utilitza eines de depuració per fer el seguiment dels programes escrits en L.M.
Entén la funcionalitat dels interfícies entre el computador i els dispositius perifèrics, és a dir, dels controladors d’E/ S.
Analitza els mètodes de sincronització per enquesta i per interrupció, i dissenyar rutines que utilitzin aquests mètodes de manera eficaç i eficient.
Comprèn el mètode de transferència d'informació a través de controladors d'accés directe a memòria (DMA), i dissenya rutines que utilitzin aquest mètode de manera eficaç.
Coneix altres sistemes més sofisticats per manegar les transferències d'Entrada/Sortida, basats en processadors auxiliars especialitzats.
Tipo B Código Resultados de aprendizaje
 B3 És capaç de resoldre problemes de forma enginyosa, amb iniciativa i creativitat, tenint en compte els conceptes de l'assignatura.
 B8 Participa i col·labora activament en les tasques de l'equip, porta a terme la seva aportació individual en el temps previst, té en compte l'aportació dels altres i retroalimenta de forma constructiva.
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 Organitzación interna de la plataforma NDS 3.1 Interconnexió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 Interconnexión de los componentes gráficos
4.2 Modos de fondos gráficos
4.3 Bancos de Vídeo-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 de tiempo
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
16 16 32
Resolución de problemas/ejercicios en el aula ordinaria
A7
CM9
10 22 32
Prácticas en laboratorios
A7
CM9
24 24 48
Atención personalizada
4 0 4
 
Pruebas de desarrollo
A7
CM9
2 16 18
Pruebas prácticas
A7
CM9
B3
B8
2 0 2
Pruebas objetivas de tipo test
A7
CM9
1 12 13
 
(*) 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ó de l'assignatura
Sesión magistral Explicació teòrica dels continguts de l'assignatura. Sempre que es pugui s'utilitzarà material propi (documents PDF) que es projectarà amb el canó de vídeo
Resolución de problemas/ejercicios en el aula ordinaria Problemes i exercicis que es resoldran a classe per tal de reforçar els coneixements teòrics
Prácticas en laboratorios Desenvolupament d'un programa sobre la plataforma NDS, amb rutines escrites en llenguatge màquina del processador ARM i parts escrites en llenguatge C. El programa consistirà en un joc matricial
Atención personalizada Hores de consulta per esclarir dubtes sobre teoria, problemes o la pràctica

Atención personalizada
descripción
Hores 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. Al final de cada fase se realizará una entrevista personalizada a cada miembro del grupo. Las notas serán independientes del resto del grupo, y se podrán limitar en función del número de partes de los componentes del grupo 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. Se exigirá una nota mínima de 4 en cada una de las fases para tener derecho a hacer media con el resto de notas de la asignatura. 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). 40
Pruebas objetivas de tipo test
A7
CM9
Examen tipo test sobre el Moodle con unas 30 preguntas de respuesta única sobre 4 opciones, respecto a todos los conceptos explicados en clase de teoría. 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 ytest), 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). 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 escrita.

Durante la realización del examen se fijará un tiempo límite que se deberá respetar estrictamente. Se rechazarán todas las soluciones presentadas un segundo después del tiempo límite, lo cual supondrá una nota de No Presentado en esa convocatoria.


Fuentes de información

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

También están disponibles en el Moodle los materiales docentes desarrollados por los propios profesores de la asignatura.

Complementaria

Recomendaciones

Asignaturas que continúan el temario
ESTRUCTURA DE COMPUTADORES/17234108
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
(*)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.