|
| |
Organización del Computador
Objetivo
Al finalizar el curso, los estudiantes tendrán un conocimiento
básico sobre los componentes claves de un computador, es decir, la unidad central de
procesamiento (CPU), la jerarquía de memorias (memoria de registros, memoria cache,
memoria principal y memoria secundaria) y el mecanismo de conexión con los dispositivos
de entrada/salidad. Además estará en capacidad de entender el costo de ejecutar las
instrucciones y tipos de datos de un lenguaje de programación imperativo de alto nivel,
de traducir manualmente rutinas pequeñas escritas en un lenguaje fuente de alto nivel a
un lenguaje ensamblable y de realizar entonaciones sencillas para mejorar el desempeño de
esas rutina. La asignatura sienta las bases para desarrollar posteriormente nociones más
exactas y sofisticadas de compilación y enlace, depuración, entonación y evaluación de
desempeño, arquitectura del computador y uso de llamadas al sistema de operación.
Contenido
- Tema 1 : Las capas de una máquina virtual. El proceso de
compilación. Componentes de un computador. Lenguajes de alto nivel (HLL), nivel
intermedio (ILL) y bajo nivel (LLL).
- Tema 2 : Características de un lenguaje intermedio:
estructuras de control, asignación, datos primitivos y vectores. Traducción manual de un
programa HLL a ILL.
- Tema 3 : Sistemas numéricos y de caracteres.
Representación binaria de enteros en complemento a dos, octal y hexadecimal.
Consecuencias de representaciones finitas. Representación de caracteres: ASCII, ASCII
extendido y UNICODE. Números punto flotante.
- Tema 4 : Qué son y para qué sirve la memoria de
registros. Instrucciones inducidas por la discriminación entre memoria de registros y
memoria principal. Características de un ILL (lenguaje ensamblable): instruciones
aritméticas, lógicas, bifurcaciones, carga ("load"), almacenamiento
("store"), modos de direccionamiento y subrutinas. Traducción y entonación
manual de rutinas pequeñas en un HLL a un lenguaje ensamblable.
- Tema 5 : Qué es y cómo se mide el desempeño de un
sistema de computación. Desempeño pico y desempeño sostenido. Carga representativa de
trabajo. Pruebas patrón ("benchmarks").
- Tema 6 : El mecanismo de manejo de interrupciones. Uso de
temporizadores ("timers"). La programación de ciclos de sondeo. Introducción a
la programación de manejadores de dispositivos de entrada/salida.
- Tema 7 (opcional): La memoria cache. Localidad espacial y
temporal en la ejecución de código. Mecanismo de búsqueda con acierto/falla en el
cache. Factores claves en el desempeño de un cache: tamaño de línea, tamaño de bloque,
política de reemplazo, política de escritura. Niveles de cache.
- Tema 8 (opcional): Segmentación encauzada. Separación de
cache de datos y cache de instrucciones. ("pipelining"). Etapas de un cauce de
ejecución de instrucciones. Azares ("hazards") de un cauce. Reducción de
riesgos.
- Tema 9 (opcional): Selección de un computador. Factores
tecnológicos: reloj, tasa de ejecución de instrucciones, cauces, características del
cache, la memoria principal y la unidad de disco duro. Costos. Calidad de servicio:
garantía, potencial de crecimiento y actualización, tiempo de reparación, fiabilidad,
cumplimiento con estándares, software legítimo. Periféricos: CD-ROM, monitor,
impresora, modem.
Bibliografía
- D. Patterson y J. Hennessy: "Computer Organization and
Design: The Hardware/Software Interface". Segunda Edición. Morgan Kaufmann
Publishers, Inc, 1998.
Requisitos
Algoritmos y Estructuras I (es altamente recomendable haber
cursado Algoritmos y Estructuras II).
Información
Para mayor información, ponerse en contacto con el Prof. Alejandro Teruel.
Última modificación realizada por Julio Rodríguez el día viernes 14 de enero de 2000
|