FUNDAMENTOS DE COMPUTADORES CURSO ACADÉMICO: 2000 / 2001 TITULACIÓN: INGENIERO EN INFORMÁTICA CICLO: 1º CURSO: 1º CUATRIMESTRE: PRIMERO CARÁCTER: TRONCAL CRÉDITOS: 9 (6+3) PROFESOR: MANUEL E. ACACIO, JUAN L. ARAGÓN, MARISOL NAVARRO DEPARTAMENTO: INGENIERÍA Y TECNOLOGÍA DE COMPUTADORES PÁGINA WEB: www.ditec.um.es/ficomp A - OBJETIVOS Que el alumno deje de mirar el computador como una caja negra que ejecuta programas expresados en algún lenguaje de alto nivel. Comprender que la ejecución de sus programas implica la existencia de: - Una forma de representar los datos y las instrucciones mediante valores binarios, susceptibles de ser almacenados y procesados en forma de señales eléctricas. - Un programa traductor de los lenguajes de alto nivel a código ejecutable, comprensible para la máquina. - Una ruta de datos formada por registros, operadores y buses que los interconectan, que realiza todo el procesamiento de la información. En definitiva, adquirir una visión coherente y global de un computador. Todo ello inspirándose en un moderno microprocesador (de la familia MIPS), de filosofía de conjunto de instrucciones reducido (RISC), presente en computadores de última generación.
B - PROGRAMA DE TEORÍA Tema 1.- Introducción a los computadores. 1.1. La primera aproximación al computador. 1.2. Principios básicos de los computadores. 1.2.1. Tratamiento de la información. 1.2.2. Codificación de la información. 1.2.3. Parámetros básicos de los computadores. 1.3. Programas e instrucciones. 1.3.1. Tratamiento de las instrucciones. 1.3.2. Fases en la ejecución de una instrucción. 1.3.3. Tipos de instrucciones. 1.3.4. Lenguajes de programación. 1.4. Evolución histórica de los computadores. Generaciones. 1.5. Clasificación de las arquitecturas. FUENTES: [ANGU96] (Cap.1), [PRIE95] (Cap.1), [TANE2000] (Cap.1), Apuntes Tema 1. Tema 2.- Representación de la información. 2.1. Introducción. 2.2. Sistemas de numeración. 2.2.1. Representación posicional de los números. 2.2.2. Sistema de numeración en base dos. 2.2.3. Operaciones aritméticas con variables binarias. 2.2.4. Representación en complementos. 2.2.5. Códigos intermedios: octal y hexadecimal. 2.3. Códigos de entrada/salida. 2.4. Detección de errores en la información codificada. 2.5. Representación interna de los datos. 2.5.1. Tipo entero. 2.5.2. Tipo real. FUENTES: [PRIE95] (Vol.1, Cap.3), Apuntes Tema 2. Tema 3.- El lenguaje de la máquina. 3.1. Operaciones realizables por un computador. 3.2. Conjunto de instrucciones del MIPS. 3.2.1. Instrucciones aritméticas. 3.2.2. Instrucciones de transferencia de datos. 3.2.3. Instrucciones de salto y bifurcación. 3.2.4. Instrucciones para manejar procedimientos. 3.3. Representación de las instrucciones. 3.3.1. Modos de direccionamiento del MIPS. 3.3.2. Formato de instrucción R. 3.3.3. Formato de instrucción I. 3.3.4. Formato de instrucción J. 3.4. Alternativas a la aproximación de MIPS. 3.5. Ejemplos de programas. 3.5.1. Ejemplo de intercambio de posiciones de memoria. 3.5.2. Ejemplo de ordenación de un array. 3.5.3. Ejemplo para comparar arrays y punteros. FUENTES: [PATT2000] (Vol.1, Cap. 3), Apuntes Tema 3. Tema 4.- Construcción de una unidad aritmético lógica (ALU). 4.1. Números negativos. 4.2. Sumas, restas y operaciones lógicas. 4.3. Construcción de una ALU. 4.3.1. Bloques de construcción para construir una ALU. 4.3.2. ALU de un sólo bit. 4.3.3. ALU de 32 bits.
4.4. Algoritmos aritméticos. 4.4.1. Anticipación de arrastre para la suma. 4.4.2. Algoritmos de multiplicación. 4.4.3. Algoritmos de división. 4.5. Operaciones en punto flotante. 4.5.1. Suma en punto flotante. 4.5.2. Multiplicación en punto flotante. FUENTES: [PATT2000] (Vol.1, Cap. 4) y Apuntes Tema 4. Tema 5.- Diseño de un procesador monociclo. 5.1. Vision general de la implementación. 5.2. Construcción del camino de datos (monociclo). 5.2.1. Componentes: Archivo de registros y contador de programa. 5.2.2. Componentes: Memoria de datos e instrucciones. 5.2.3. Componentes: Unidad aritmético lógica. 5.2.4. Esquema completo de implementación. 5.3. Diseño de la unidad de control principal. 5.3.1. El control de la ALU. 5.3.2. El resto del control. 5.4. Necesidad de la implementación multiciclo. FUENTES: [PATT2000] (Vol.1, Cap. 5) y Apuntes Tema 5. Tema 6.- Diseño de un procesador multiciclo. 6.1. Vision general de la implementación. 6.2. Construcción del camino de datos (multiciclo). 6.2.1. Descomposición de la ejecución de instrucciones en ciclos. 6.2.2. Modificaciones en la estructura del camino de datos. 6.2.3. Esquema completo de implementación. 6.3. Definición del control cableado. 6.3.1. Maquinas de estados finitos. 6.3.2. Necesidad del control microprogramado. 6.4. Definición del control microprogramado. 6.4.1. Objetivos del control microprogramado. 6.4.2. Definición de un formato de microinstrucción. 6.4.3. Creación del microprograma. FUENTES: [PATT2000] (Vol.1, Cap. 5) y Apuntes Tema 6. Tema 7.- Gestión de E/S. Buses del Sistema. 7.1. Introducción. 7.2. Elementos de diseño de un bus.. 7.2.1. Tipo de líneas de bus. 7.2.2. El acceso al bus. 7.2.3. Temporización. 7.2.4. Incrementar la anchura de banda del bus. 7.3. Tipos de buses. 7.4. Buses estándares. 7.5. Jerarquías de buses múltiples. 7.5.1. Jerarquía tradicional. 7.5.2. Jerarquía de altas prestaciones. 7.6. Papel del SO en las transferencias. 7.7. Órdenes para los dispositivos de E/S. 7.7.1. E/S con correspondencia directa con memoria. 7.7.2. Instrucciones especiales de E/S. 7.8. Métodos de comunicación entre dispositivos E/S y el procesador. 7.8.1. E/S programada. Uso de escrutinio (polling). 7.8.2. E/S conducidas por interrupciones. 7.8.3. Acceso Directo a Memoria: DMA. FUENTES: Apuntes proporcionados por el profesor.
C - PROGRAMA DE PRÁCTICAS PRÁCTICA 0: INTRODUCCIÓN AL SISTEMA OPERATIVO DOS. OBJETIVOS: Familiarizarse con los comandos del sistema operativo MS-DOS. FUENTES: [YRAO90] y Apuntes proporcionados por el profesor. PRÁCTICA 1 : FORMATO DE DISCO EN MS-DOS OBJETIVOS: Conocer y comprender el formato de almacenamiento y su recuperación en un disco flexible MS-DOS, lo que define el concepto de fichero en MS-DOS. Manejo del sistema de numeración hexadecimal como forma de escribir binario. Experimentar diferentes formas de codificación. Introducir el concepto de tabla. Manejo de la codificación ASCII. FUENTES: [YRAO90] y Apuntes proporcionados por el profesor. PRÁCTICA 2: SIMULADOR DEL MIPS R2000/R3000 OBJETIVOS: Realizar distintas prácticas de simulación de ejecución de programas escritos en ensamblador del MIPS. Comprender el formato del código máquina del MIPS, la codificación de las instrucciones, etc. FUENTES: Apuntes proporcionados por el profesor y [PATT2000] (Vol.3, Apéndice A).
D - RECURSOS DIDÁCTICOS a) - BIBLIOGRÁFICOS: a.1) BIBLIOGRAFÍA BÁSICA: [PATT2000] Estructura y diseño de computadores: Interficie Circuitería/Programación. David A. Patterson y John L. Hennesy. Editorial Reverté. 2000. [ANGU96] Estructura de computadores. José M. Angulo. Paraninfo. 1996. [PRIE95] Introducción a la informática. Prieto Lloris y Torres. McGraw Hill.1995. a.2) BIBLIOGRAFÍA COMPLEMENTARIA: [TANE2000] Organización de computadoras. Un enfoque estructurado. Andrew S. Tanembaum. Prentice Hall, 4ª Edición. 2000. [STALL97] Organización y arquitectura de computadores. W. Stallings. Prentice Hall, 4ª Edición. 1997. [HAMA86] Organización de computadoras. V. Carl Hamacher et al. McGraw Hill. 1986. [YRAO90] Sistema Operativo Dos 6. Jaime de Yraolagoitia. Paraninfo. 1990. b) - RECURSOS DE SOFTWARE Y HARDWARE: b.1) RECURSOS SOFTWARE: Los programas usados serán un editor de texto, el PcTools Deluxe R4.21, y el simulador de MIPS R2000/R3000 para Windows (SPIM v.1.0) ó para Linux (XSPIM v.6.2). b.2) RECURSOS HARDWARE: Las prácticas se realizarán en el laboratorio 1-3 de la Facultad de Informática, utilizando PC s con sistema operativo Windows, un puesto para cada grupo de dos alumnos. E - EVALUACIÓN La evaluación de la asignatura se realiza mediante un exámen de teoría y la entrega de las prácticas; con ambas pruebas se calcula la nota global de la asignatura. Para que dicha nota tenga efecto, el alumno ha de presentar una memoria de las prácticas realizadas en el laboratorio y, en su caso, si el profesor lo considerase conveniente, defenderla en una entrevista. Tal memoria, junto con la posible entrevista, puntúa, constituyendo el 20% del total de la asignatura. En el examen de teoría se evalúan los conocimientos teóricos del alumno, constituyendo la nota obtenida el 80% restante de la asignatura. En condiciones normales, cada una de las calificaciones obtenidas se conserva hasta las convocatorias de septiembre y diciembre, inclusive. Además, se valorará la participación del alumno en la realización de los ejercicios propuestos.