Código: 240404 | Asignatura: ARQUITECTURA Y ORGANIZACIÓN DE COMPUTADORES | ||||
Créditos: 6 | Tipo: Obligatoria | Curso: 2 | Periodo: 2º S | ||
Departamento: Estadística, Informática y Matemáticas | |||||
Profesorado: | |||||
DIAZ DE CERIO RIPALDA, LUIS MANUEL (Resp) [Tutorías ] |
Un ingeniero informático ha de ser capaz de aportar soluciones arquitectónicas que mejoren el rendimiento de los computadores y sistemas informáticos actuales con el fin de avanzar en el progreso de su desarrollo. Esta asignatura aporta al estudiante una visión global de los diferentes tipos de arquitectura tanto a nivel de microprocesador como de computador, así como de los elementos de diseño más importantes con el objetivo de entender su funcionamiento.
Una de las labores más frecuentes de un ingeniero informático es la de aportar soluciones para la ejecución de aplicaciones obteniendo el mayor rendimiento posible en función de los recursos y de las necesidades. Hoy en día el uso del paralelismo en los sistemas informáticos tanto a nivel de hardware, aumentando el número de elementos de proceso, o a nivel de software, permitiendo la ejecución simultánea de programas, es vital. Esta asignatura también aporta al futuro ingeniero el conocimiento de arquitecturas y técnicas paralelas más actuales introduciéndolo además mediante la realización de prácticas en el ámbito de la programación paralela.
La lista concreta de contenidos es la siguiente:
- Rendimiento. Medidas de rendimiento de un computador. Ley de Amdahl. Impacto económico y social del rendimiento.
- Organización de la memoria. Memoria caché: organización, reemplazo y políticas de escritura. Memoria virtual y TLB. Técnicas de programación de acceso eficiente a memoria.
- Organización de la CPU. Segmentación. Riesgos de la Segmentación. Técnicas hardware para reducir el efecto de los riesgos: Predicción, prebúsqueda, ejecución especulativa. Técnicas de programación para reducir el efecto de los riesgos.
- Paralelismo a nivel de instrucción. Procesadores superescalares. Procesadores VLIW.
- Paralelismo a nivel de proceso. Revisión de la ley de Amdahl. Procesadores multicore y multithreaded. Arquitecturas de memoria compartida. Arquitecturas de memoria distribuida. Redes de computadores: clusters y grids.
G4 - Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
G6 - Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
G8 - Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
G9 - 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.
T1 - Capacidad de análisis y síntesis.
T3 - Comunicación oral y escrita.
T4 - Resolución de problemas.
T8 - Aprendizaje autónomo.
FC1 - Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
FC2 - Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
FC4 - Capacidad para elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y normativas vigentes.
FC5 - Conocimiento, administración y mantenimiento de sistemas, servicios y aplicaciones informáticas.
FC9 - Capacidad de conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
R1. Utilizar las deferentes métricas para evaluar el rendimiento de un computador. Tener en cuenta las limitaciones de las diferentes métricas de rendimiento.
R2. Evaluar los límites de mejora de un sistema según la ley de Amdahl.
R3. Considerar el impacto económico y social que conlleva la mejora de rendimiento de los sistemas.
R4. Describir diferentes técnicas de organización de la memoria para la mejora del rendimiento en el acceso.
R5. Describir y comparar diferentes modelos de organización de memoria caché.
R6. Explicar el funcionamiento de la memoria virtual y evaluar el efecto del TLB en la mejora del rendimiento.
R7. Describir diferentes técnicas en la organización de la CPU para la mejora del rendimiento en la ejecución de instrucciones.
R8. Evaluar la mejora de rendimiento de la segmentación.
R9. Describir diferentes técnicas hardware para disminuir el efecto de los riesgos de la segmentación.
R10. Explicar el concepto de paralelismo a nivel de instrucción y su influencia en el rendimiento de los computadores.
R11. Describir las características principales de los procesadores superescalares y VLIW.
R12. Describir las características principales de los procesadores multithreaded y multicore.
R13. Explicar el concepto de paralelismo a nivel de proceso.
R14. Evaluar el rendimiento en la paralelización de aplicaciones según la ley de Amdahl.
R15. Describir los aspectos técnicos más relevantes y razonar las ventajas e inconvenientes de las arquitecturas de memoria compartida, distribuida y las redes de computadores.
R16. Describir las características principales de los procesadores actuales de un PC.
R17. Utilizar técnicas de programación para la mejora de rendimiento en el acceso a memoria de aplicaciones.
R18. Utilizar técnicas de programación para la mejora de rendimiento en la ejecución de aplicaciones.
Metodología - Actividad | Horas Presenciales | Horas no Presenciales |
A-1 Clases magistrales | 28.5 | |
A-2 Estudio autónomo | 22.5 | |
A-3 Sesiones prácticas | 12 | |
A-4 Programación / experimentación u otros trabajos en ordenador / laboratorio | 22.5 | |
A-5 Resolución de problemas, ejercicios y otras actividades de aplicación | 15 | |
A-6 Aprendizaje basado en problemas y/o casos | 12 | |
A-7 Elaboración de trabajos y/o proyectos y escritura de memorias | 22.5 | |
A-8 Preparación de presentaciones de trabajos, proyectos, etc... | 7.5 | |
A-9 Actividades de Evaluación | 4.5 | |
A-10 Tutorías | 3 | |
Total | 60 | 90 |
Resultados de aprendizaje |
Actividad de evaluación |
Peso (%) | Carácter recuperable |
Nota mínima requerida |
---|---|---|---|---|
R16, R17, R18 | Resolución y correcta presentación en tiempo y forma de trabajos y supuestos prácticos realizados en el Laboratorio. | 30 % | No. | |
R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15 | Resolución y correcta presentación por escrito de ejercicios y preguntas teóricas. | 70 % | Sí. (2) | 4 (habiendo conseguido un mínimo de 4 en dos de las tres partes del temario). (1) |
(1). La contenidos teóricos se dividen en tres partes: Parte 1 (Temas 1 y 2), Parte 2 (Temas 3 y 4) y Parte 3 (Tema 5). Las Partes 1 y 2 tienen un peso del 28% cada una y la Parte 3 tiene un peso del 14%. Se realizarán dos controles para la Parte 1, dos controles para la Parte 2 y un control para la Parte 3.
(2). Mediante prueba escrita de todo el temario. Únicamente para aquellos estudiantes que ya hayan intentado, sin éxito, superar la asignatura a lo largo del semestre, participando en las distintas actividades de evaluación programadas durante el periodo lectivo y de evaluación continua. Por tanto, es requisito haber realizado al menos un control de cada parte del temario en la evaluación continua (salvo casos justificados). En esta prueba se deberá alcanzar y se calificará con el valor mínimo suficiente (no inferior a 4), para aprobar la asignatura.
Teoría:
1 - Rendimiento.
1.1 - Medidas de rendimiento de un computador.
1.2 - Ley de Amdahl.
2 - Organización de la memoria.
2.1 - Memoria caché: organización, reemplazo y políticas de escritura.
2.2 - Memoria virtual y TLB.
2.3 - Técnicas de programación de acceso eficiente a memoria.
3 - Organización de la CPU.
3.1 - Segmentación.
3.2 - Riesgos de la Segmentación.
3.3 - Técnicas hardware para reducir el efecto de los riesgos: Predicción, prebúsqueda, ejecución especulativa.
3.4 - Técnicas de programación para reducir el efecto de los riesgos.
4 - Paralelismo a nivel de instrucción.
4.1 - Grado de Paralelismo
4.2 - Procesamiento superescalar.
4.3 - Técnicas software para aumentar el grado de paralelismo.
5 - Paralelismo a nivel de proceso.
5.1 - Revisión de la ley de Amdahl.
5.2 - Arquitecturas de memoria compartida.
5.3 - Arquitecturas de memoria distribuida.
Prácticas:
1 - CPU y su rendimiento en un PC
2 - Jerarquía de Memoria y su rendimiento en un PC.
3 - Organización de Memoria Caché y evaluación mediante simulación.
4 - Segmentación de instrucciones.
5 - Paralelismo a nivel de Instrucción
6 - Introducción a la programación paralela.
Acceda a la bibliografía que el profesorado de la asignatura ha solicitado a la Biblioteca.