Año académico: 2006-2007 Centro: Escuela Politécnica Superior Departamento: Arquitect. de Computadores y Electrónica Área: Arquitectura y Tecnología de Computadores Estudios: Ingeniero Técnico en Informática de Gestión (Plan 2000) Código: 41002202 Asignatura: Fundamentos de Arquitectura de Ordenadores Ciclo: 1º Curso: 2º Cuatrimestre: 1Q Carácter: Obligatoria Créditos teóricos: 4,5 Créditos prácticos: 3 PROFESORADO: Gil Montoya María Dolores 41002202 Objetivos Generales Conocimientos Previos Recomendados CONTENIDOS TEORICOS (Temporización) El objetivo global de esta asignatura es introducir y analizar los principios básicos de la organización de los computadores y su diseño. Un computador es un sistema que incluye tanto hardware como software, pero en esta asignatura se hace énfasis en los aspectos del hardware del computador, familiarizando al alumno con los bloques físicos a partir de los cuales se construyen los computadores. Este estudio se restringe a los computadores monoprocesador que responden a lo que hoy en día es una configuración doméstica del tipo PC. En definitiva, establecer una progresión continua desde los componentes básicos de los sistemas de computadores hasta el funcionamiento interno y el diseño detallado de un computador al que se le intentan mejorar las prestaciones. Estructura de Computadores. El temario completo de la asignatura se encuentra estructurado en seis temas teóricos, complementado por cuatro módulos prácticos de laboratorio. Cada uno de los temas teóricos contiene una amplía descripción teórica acompañada de una serie de ejercicios y problemas. A continuación se detalla la temporalización aproximada para la realización de cada tema. TEMA 1º: Análisis del Rendimiento de un computador.(5 horas) Enumerar y definir las métricas de rendimiento utilizadas para determinar cómo se comporta un sistema. Diferenciar y caracterizar los principales modelos de evaluación utilizados en la medida de prestaciones de un sistema. Enunciar la Ley de Amdhal, aplicarla a diferentes sistemas e indicar las limitaciones que existen en el intento de mejorar las prestaciones de un sistema. 1.1 Medidas de rendimiento. 1.2 Relación entre las métricas. 1.3 Elección de programas para evaluar el rendimiento. 1.4 Ley de Amdahl. 1.5 Ejercicios y Problemas.
[PATTERSON00] Cap. 2, [demiguel99] Cap. 11.1 TEMA 2: Segmentación. (10 horas) Extraer el paralelismo básico a nivel de instrucción utilizando segmentación. Diseñar un camino de datos segmentado, y su correspondiente unidad de control, a partir de uno no segmentado. Detectar los diferentes riesgos de segmentación que aparecen un cierto código escrito en ensamblador. Resolver mediante técnicas de detención y anticipación los riesgos existentes. Modificar un camino de datos segmentado para resolver un cierto riesgo. Medir el rendimiento en diferentes máquinas segmentadas. 2.1 Concepto. 2.2 Aplicación al MIPS. 2.3 Control segmentado. 2.4 El problema de los riesgos por dependencias. 2.4.1 Riesgos estructurales. 2.4.2 Riesgos por dependencias de datos. Control mediante detenciones. Reducción mediante anticipación. 2.4.3 Riesgos de control. Riesgos por saltos. Excepciones. 2.5 Rendimiento de los sistemas segmentados. 2.6 Ejercicios y Problemas. [PATTERSON00] Cap. 6. TEMA 3: El subsistema de Memoria. (10 horas) Enumerar los efectos de la latencia de memoria en tiempo de ejecución. Justificar el uso de la jerarquía de memoria para reducir la latencia de memoria efectiva. Diferenciar las distintas alternativas de organización de caché. Determinar la correspondencia entre una dirección de memoria física y la posición de memoria caché asociada. Especificar cuándo se produce un fallo de caché, dada una secuencia de referencias a memoria, dependiendo del tipo de organización de caché y de su política de reemplazo. Determinar la variación del tamaño de memoria caché reservada a etiquetas dependiendo del tamaño de la memoria física y de la organización de la caché. Analizar las ventajas del uso de memoria virtual, así como los requerimientos hardware y software que necesita. Justificar la necesidad de realizar una protección de procesos.
Establecer la correspondencia entre una dirección virtual y una dirección física. Realizar traducciones de direcciones virtuales a físicas mediante el uso del TLB. Medir el rendimiento en sistemas con jerarquía de memoria. 3.1 Tipos de memorias: Su jerarquía y localidad. 3.2 Memoria Principal. 3.3 Memoria caché. 3.4 Memoria virtual. 3.5 Ejercicios y Problemas. [PATTERSON00] Cap. 7. [demiguel99] Caps. 3, 11.5, [MANO00] Cap. 9. TEMA 4: El Sistema de Entrada/Salida. (9 horas) Analizar el acceso a datos desde algunos periféricos (disco duro, monitor, etc.) Calcular el ancho de banda que proporcionan los periféricos. Caracterizar el funcionamiento de gestión de E/S controlada por programa. Analizar sus ventajas e inconvenientes. Caracterizar el funcionamiento de las interrupciones para el control de las operaciones de E/S y en las transferencias de datos. Analizar sus ventajas e inconvenientes. Diferenciar las distintas alternativas del uso, gestión y control de interrupciones. Caracterizar el funcionamiento del DMA. Diferenciar, y comparar en cuanto a velocidad de transferencia y velocidad de ejecución de la CPU, las distintas alternativas del uso del DMA. Mostrar sus ventajas e inconvenientes. Enumerar las características básicas de los canales y procesadores de E/S (PE/S). Mostrar sus ventajas e inconvenientes. 4.1 Introducción. 4.2 Ejemplos de dispositivos externos: Teclado, disco duro y monitor. 4.3 Controlador de E/S. 4.4 E/S controlada por programa. 4.4.1 Señales de dirección. Modos de direccionamiento. 4.4.2 Señales de datos. Técnicas básicas de conexión. 4.4.3 Señales de control. Tipos de transferencias. 4.5 E/S mediante interrupciones. 4.5.1 Clasificación de las interrupciones. 4.5.2 Determinación de la dirección de comienzo de la rutina de servicio de interrupción. 4.5.3 Identificación de la fuente de interrupción. 4.5.4 Sistemas de prioridad en las interrupciones. 4.6 Acceso directo a memoria (DMA). 4.7 Canales y Procesadores de E/S (PE/S). 4.8 Ejercicios y Problemas.
[demiguel99] Cap. 8, [DORMIDO00] Cap. 3, [MANO00] Cap. 11, [STALLINGS00] Cap. 6. TEMA 5: Buses del Sistema. (7 horas) Diferenciar las principales características que definen a un bus. Clasificar y caracterizar los distintos tipos buses existentes. Establecer las diferencias entre los protocolos de comunicación síncronos y asíncronos. Diferenciar y analizar las posibles alternativas de arbitraje de un bus. Identificar algunos de los buses estándares. Calcular el ancho de banda, rendimiento y coste de sistemas con diferentes estructuras y tipos de buses. Analizar e identificar las partes de un sistema que limitan la velocidad de transferencia de datos. 5.1 Características de los buses. 5.2 Estructuras de bus. 5.3 Clasificación de los buses según nivel de jerarquía. 5.4 Protocolos de comunicación. 5.4.1 Arbitraje. 5.4.2 Transferencia y temporización. 5.5 Ejemplos de buses estándares. 5.6 Ejercicios y Problemas. [demiguel99] Cap. 10, [STALLINGS00] Cap. 3, [PATTERSON00] Cap. 8. TEMA 6: Introducción al Procesamiento Paralelo. (3 horas) Caracterizar el procesamiento paralelo bajo el modelo clásico de Von Neumann. Distinguir y caracterizar arquitecturas alternativas tales como SIMD y MIMD. Diferenciar entre memoria compartida y distribuida. Determinar sus ventajas e inconvenientes. Diferenciar y caracterizar los distintos tipos de interconexión. 6.1 Introducción. 6.2 Clasificación de Flynn de los computadores. 6.3 Computadores SIMD. 6.4 Computadores MIMD. 6.5 Memoria centralizada frente a memoria distribuida. 6.6 Redes de interconexión. Tipo y Topología. [demiguel99] Cap. 11.2, [STALLINGS00] Cap. 16, [HENNESY96] Cap. 10
CONTENIDOS PRÁCTICOS (Temporización) El programa de prácticas que se propone para la asignatura Fundamentos de Arquitectura de Ordenadores pretende afianzar los contenidos teóricos anteriormente desarrollados. Se han diseñado un conjunto de prácticas de forma que abarquen los contenidos de los temas de la asignatura. Cada una de estas prácticas consta de un número determinado de sesiones semanales de 2 horas cada una. PRÁCTICA 1: Medidas del Rendimiento de un Computador.(6 horas) Objetivos: Utilizar diferentes tipos de métricas del rendimiento. Comparar la eficiencia de distintos modos de compilación. Comparar el rendimiento entre arquitecturas diferentes. Detectar las limitaciones impuestas por la ley de Amdahl. Material: PC, sistema operativo Linux y programas de prueba desarrollados en el departamento. PRÁCTICA 2: Procesador DLX. Camino de Datos Segmentado.(8 horas) Objetivos: Comprender la terminología y los conceptos manejados en el estudio de los computadores segmentados: dependencias de datos, de control, tiempos de riesgos, adelantamiento, saltos retardados, etc. y probar distintas técnicas de planificación estática de instrucciones. Realizar programas en ensamblador del DLX. Comprobar cómo el reordenamiento de las instrucciones influye en el rendimiento obtenido. Material: PC, Windows 95 o Windows 98, simulador WinDLX. PRÁCTICA 3: Análisis de la Jerarquía de Memoria.(8 horas) Objetivos: Comprender la terminología y los conceptos manejados en el estudio de las memorias caché: localidad espacial y temporal, bloque, tipos de fallos, políticas de escritura, de reemplazo, etc. y analizar el rendimiento de un determinado diseño. Material: PC, Windows 95 _o Windows 98, Linux, simuladores dinero, XCache16 y dlxsim. Bibliografía Titulo: [PATTER00] Estructura y diseño de computadores. Autor: David A. Patterson y John L. Hennesy. Editorial: Reverté. 2000. Titulo: [demiguel99] Fundamentos de los computadores Autor:. P. de Miguel Editorial: Paraninfo. 1999 Titulo: [MANO00] Arquitectura de computadores Autor:. M. Morris Mano, C. R. Kime. Editorial:. Paraninfo. 1996 Titulo: [DORMIDO00] Estructura y Tecnología de computadores Autor:. S. Dormido, M.A. Canto, J. Mira, A.E Delgado. Editorial: Sanz y Torres.2000.
Metodología Titulo: [STALLINGS00] Organización y Arquitectura de Computadores. Autor:. W. Stallings. Editorial:. Prentice-Hall. 2000 La docencia teórica, por medio de la cual se expone y desarrolla el programa de la asignatura, se sustentará con la realización de ejercicios y problemas tras la finalización de cada unidad temática. La parte teórica se evaluará mediante un examen final de toda la materia explicada en clase, cuya valoración corresponderá al 40% de la calificación final. La docencia práctica requiere asistencia obligatoria al laboratorio y elaboración de memorias de prácticas. La evaluación continua de las practicas se realizará a través de exámenes tipo test tras la finalización de cada práctica. La calificación final de las prácticas corresponderá con un 40% de la calificación final. Durante el curso se desarrollaran una serie de actividades complementarias que representan el 20% de la calificación final. Entre estas actividades destacamos: Resolución de problemas semanales. Elaboración de preguntas de test sobre cada unidad temática. Evaluación La parte teórica se evaluará mediante un examen final de toda la materia explicada en clase, cuya valoración corresponderá al 40% de la calificación final. La evaluación continua de las practicas se realizará a través de examenes tipo test tras la finalización de cada práctica. La calificación final de las prácticas corresponderá con un 40% de la calificación final. Las actividades complementarias representarán el 20% de la calificación final. Para aprobar la asignatura es necesario aprobar tanto la parte teórica como la parte práctica. Observaciones RECURSOS DE SOFTWARE Y HARDWARE: b.1) RECURSOS SOFTWARE: Los programas usados serán los simuladores que aparecen en cada una de las prácticas. b.2) RECURSOS HARDWARE: Serán necesarios para la realización de las prácticas PCs con sistema operativo Linux, DOS y Windows, un puesto para cada grupo de dos alumnos. Enlaces de interés http://eva.ual.es (Fundamentos de Arquitectura de Computadores)