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