titulo.jpg (22800 bytes)

 

 

Organización del Computador


boton.jpg (1101 bytes) 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.


boton.jpg (1101 bytes) 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.

 


boton.jpg (1101 bytes) Bibliografía

  • D. Patterson y J. Hennessy: "Computer Organization and Design: The Hardware/Software Interface". Segunda Edición. Morgan Kaufmann Publishers, Inc, 1998.

boton.jpg (1101 bytes) Requisitos

Algoritmos y Estructuras I (es altamente recomendable haber cursado Algoritmos y Estructuras II).


boton.jpg (1101 bytes) 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