Asignatura "Arquitectura y Organización de Computadoras"
Información curso 2011/2012 (atención: página en construcción)
Segundo curso, Grados en Ingeniería Informática
Escuela Técnica Superior de Ingeniería Informática
Universidad de Valladolid
Asignatura cuatrimestral de 6 créditos ECTS (2 de teoría, 2 de problemas, 2 de laboratorio),
obligatoria.
Profesor: Diego R. Llanos
Área de Arquitectura y Tecnología de Computadores
Departamento de Informática
(ATC, LSI, CCIA)
Programa de teoría
1. Introducción
Objetivos: Recordar los fundamentos del funcionamiento de un procesador (ya estudiados en la asignatura "Fundamentos de Computadores"), incluyendo su ciclo de instrucción, el diseño de su juego de instrucciones y la estructura general de una implementación básica uniciclo.
Secciones:
1.2 Instrucciones y operandos MIPS
1.3 Implementación básica de un procesador MIPS
1.4 Convenciones de diseño lógico.
1.5 Ejercicios
Bibliografía de este tema: Tema 1.1 y 1.2: capítulo 2 de la obra de Patterson-Hennessy (ver Bibliografía más abajo). Tema 1.3: sección 4.1 de la obra citada. Tema 1.4: sección 4.2 de la obra citada.
2. Construcción de una realización uniciclo
Objetivos: Comprender los mecanismos de diseño de una implementación uniciclo, de modo de integrar adecuadamente las optimizaciones descritas en los temas siguientes.
Secciones:
2.2 Implementación de señales de control
2.3 Por qué no se usa ya la implementación uniciclo
2.4 Ejercicios
Bibliografía de este tema: Tema 2.1: sección 4.3 del libro de Patterson-Hennessy (ver bibliografía más abajo) Temas 2.2 y 2.3: sección 4.4, obra citada.
3. Introducción a la segmentación
Objetivos: Conocer y comprender los fundamentos de la ejecución segmentada, así como su utilidad en la reducción de los tiempos de ejecución necesarios para la utilización práctica de una realización uniciclo.
Secciones:
3.2 Estructura en cinco etapas de un procesador MIPS segmentado
3.3 Comparativa de rendimiento
3.4 Influencia de la segmentación en el diseñ del juego de instrucciones
3.5 Riesgos asociados a la segmentación
3.6 Conclusiones y ejercicios
Bibliografía de este tema: Sección 4.5 del libro de Patterson-Hennessy (ver bibliografía más abajo).
4. Camino de datos y control segmentados
Objetivos: Conocer las implicaciones del diseñ de procesadores segmentados en la estructura de los caminos de datos y control.
Secciones:
4.2 Descripción detallada del funcionamiento de un procesador segmentado
4.3 Representación gráfica de la segmentación
4.4 Control de la segmentación
4.5 Ejercicios
Bibliografía de este tema: Sección 4.6 del libro de Patterson-Hennessy (ver bibliografía más abajo).
5. Riesgos y gestión de excepciones
Objetivo: Comprender las implicaciones que los riesgos de datos y de control acarrean en el diseño de un procesador segmentado. Conocer el funcionamiento de los diferentes mecanismos para la gestión de excepciones e interrupciones.
Secciones:
5.2 Riesgo de control
5.3 Gestión de excepciones
5.4 Ejercicios
Bibliografía de este tema: Secciones 4.7, 4.8 y 4.9 del libro de Patterson-Hennessy (ver bibliografía más abajo).
6. Introducción al paralelismo a nivel de instrucción
Objetivos: Comprender los conceptos básicos del paralelismo
Secciones:
6.2 Suministro múltiple estático.
6.3 Suministro múltiple dinámico.
6.4 Un caso real: el AMD Opteron X4.
6.5 Ejercicios
Bibliografía de este tema: Sección 4.10 y 4.11 del libro de Patterson-Hennessy (ver bibliografía más abajo).
7. Estudio avanzado de la jerarquía de memoria
Objetivos: Comprender los compromisos de diseño necesarios para implementar una jerarquía de memorias.
Secciones:
7.2 Estructura de las cachés
7.3 Mecanismos de correspondencia
7.4 Mejora del rendimiento de las caches
7.5 Control de caches a través de máquinas de estados finitos
7.6 Coherencia cache en sistemas paralelos
7.7 Ejercicios
Bibliografía de este tema: Sección 5.13, 5.1, 5.2, 5.3 y 5.7 del libro de Patterson-Hennessy (ver bibliografía más abajo).
8. Soporte hardware para memoria virtual
Objetivos: Comprender la necesidad de los mecanismos de memoria virtual, junto con las soluciones hardware necesarias para facilitar su acceso.
Secciones:
8.2 Almacenamiento y recuperación de páginas
8.3 Fallos de página
8.4 Traducción de direcciones: el TLB
8.5 Memoria virtual y caches
8.6 Memoria virtual y protección de la información
8.7 Gestión de fallos en el TLB
Bibliografía de este tema: Sección 5.4 del libro de Patterson-Hennessy (ver bibliografía más abajo).
Programa de Prácticas de laboratorio
Objetivo: Aplicar los conocimientos adquiridos sobre la arquitectura de computadores en la resolución de cuestiones prácticas.
Práctica A: Caracterización del uso de instrucciones en ensamblador.
- Objetivo: Que el alumno comprenda el proceso de traducción de un programa en C a código ensamblador. Se implementará un programa en C para ser utilizado como benchmark. El código MIPS del citado benchmark se utilizará para la extracción de información de frecuencia relativa (estática y dinámica) de instrucciones.
- Enunciado: En el entorno virtual de la asignatura.
- Fecha límite de entrega del informe de la práctica: jueves 3 de noviembre de 2011, 15 hs.
Práctica B: Influencia de la segmentación y de la ejecución fuera de orden.
- Objetivo:Comprender los fundamentos de la ejecución fuera de orden.
- Enunciado: En el entorno virtual de la asignatura.
- Fecha límite de entrega del informe de la práctica: jueves 1 de diciembre de 2011, 15 hs.
Práctica número 3: Simulación de la jerarquia de memoria.
- Objetivo: Que el alumno desarrolle un benchmark que permita medir el funcionamiento de la jerarquía de memoria.
- Enunciado: En el entorno virtual de la asignatura.
- Fecha límite de entrega del informe de la práctica: 19 de enero de 2012, 15 hs.
Metodología
La asignatura consta de dos horas semanales de teoría y de problemas y dos horas semanales de prácticas de laboratorio.
Bibliografía básica
- Computer Organization and Design, D. Patterson y J. Hennessy, Ed. Morgan-Kaufmann, cuarta edición, ISBN 978-0-12-374493-7. La correspondencia entre los temas de la asignatura y los apartados correspondientes del libro se indica en el Temario más arriba.
- Fundamentos de Informática y Programación en C, D. R. Llanos Ferraris, Ed. Paraninfo, primera edición, ISBN 978-84-9732-792-3. Esta obra sirve como referencia para el desarrollo de benchmarks en C.
Métodos y criterios de evaluación
Existen dos itinerarios posibles para aprobar la asignatura:
- Realizar y entregar los informes de prácticas, obteniendo al menos un cinco sobre 10 en cada uno de ellos, y obtener una nota media de al menos cinco sobre 10 en cada una de las tres evaluaciones intermedias de la asignatura.
- Realizar y entregar los informes de prácticas, y obtener una nota de al menos 5 sobre 10 en el examen final de la asignatura.
El alumno entregará a través de Moodle tres informes de prácticas. Dichos informes se corregirán con una nota entre 0 y 10, considerándose aprobados con un 5. La entrega de los tres informes permite obtener hasta un punto adicional de la asignatura. Si el alumno obtiene al menos un 5 en la evaluación (a través de cualquiera de los dos itinerarios), se le sumará a su nota la media de calificaciones de los informes de prácticas, dividido entre 10. Optarán a la Matrícula de Honor los alumnos cuya nota final sea estrictamente mayor que 10.
Importante: No se guardan calificaciones de un curso para el siguiente, aunque sí se guardan las calificaciones de los informes de prácticas de la convocatoria ordinaria para la convocatoria extraordinaria. Los alumnos que no entreguen los correspondientes informes de prácticas en los plazos ordinarios no dispondrán de un plazo extraordinario para hacerlo.
Tutorías
Además de la atención en el despacho, en el horario de tutorías, los alumnos pueden contactar con el profesor mediante correo electrónico a la dirección diego@infor.uva.es.