Organización y Arquitectura de Computadoras

  • Objetivo

    Conocer, analizar y aplicar una visión panorámica de la estructura y diseño de sistemas de cómputo haciendoénfasis en los criterios que permiten tomar decisiones de diseño de mejorrelación costo-beneficio. Adicionalmente conocer: Los principales mecanismos para la evaluación del desempeño en equipo de cómputo y saber cómo y en qué circunstancia aplicarlos. Lo elemental de diseño de los circuitos que contiene una computadora digital. El panorama de las distintas alternativas de diseño en arquitecturas de computadoras y criterios que permiten evaluarlas y los contextos en los que resultan óptimas. La importancia de la relación hardware-software en el disñ&o delas arquitecturas modernas. Los necesarios emplear los principales retos y las tendencias tecnológicasen el diseño dearquitecturas modernas.

  • Presentación

  • Temas

    1. Principios cuantitativos del diseño de arquitecturas

      • Tendencias tecnológicas y de uso

      • Medidas de desempeño de equipo de cómputo

    2. Representación de datos en una computadora digital

      • Sistemas numéricos posicionales

      • Sistemas numéricos bases 2, 8 y 16

      • Representación de enteros con signo en una computadora digital

    3. Algebra booleana

      • Postulados del álgebra booleana

      • Formas normales conjuntivas y disjuntivas

      • Minimización de funciones

    4. Circuitos combinacionales y secuenciales

      • Circuitos combinacionales elementales: sumadores, comparadores, decodificadores y multiplexores

      • Cerrojos (latches) SR, JK, D, maestro-esclavo

      • Diagramas de estado, diseño de circuitos secuenciales

    5. Diseño del conjunto de instrucciones

      • Tipos de arquitectura del conjunto de instrucciones

      • Arquitecturas load-store y su relación costo-beneficio

      • Tipos y tamaño de operandos

      • Modos de direccionamiento

      • Formatos de instrucción y su proceso de ejecución

    6. Unidad de control

      • El diagrama de flujo de datos (datapath)

      • Señales de control

      • Unidades de control microprogramadas y alambradas (hardwired)

    7. Cause segmentado de ejecución (pipeline)

      • Paralelismo a nivel de instrucción (ILP)

      • Diseño de un procesador con cause segmentado

      • Conflictos (hazards) de control y de datos

      • Esquemas de predicción de salto, salto retardado (delayed branch)

    8. La relación hardware-software

      • El papel del compilador en el desempeño del sistema

      • La relación entre el sistema operativo y el hardware

    9. La jerarquía de memoria

      • Principio de localidad espacial y temporal

      • Esquemas de colocación de bloques en un caché

      • Políticas de reemplazo de bloque en los cacées

      • Manejo de escrituras en el caché

      • Coherencia, conceptos y protocolos

      • Memoria virtual

    10. Entrada/Salida y canales

      • Canales, conceptos y sincronización

      • Esquemnas de arbitraje de canal

      • Dispositivos de almacenamiento secundario, medidas de desempeño

    11. Sistemas multiprocesador

      • Clasificación de Flynn

      • Arquitecturas paralelas con memoria distribuida

      • Arquitecturas paralelas con mememoria centralizada

      • Factores limitantes de la ley de Moore

      • Paralelismo a nivel de hilo de ejecución (Thread Level Parallelism)

      • Arquitecturas multinúcleo

    12. Arquitecturas de vanguardia

      • Ejecución fuera de orden, despacho dinámico

      • Arquitecturas VLIW y EPIC

      • Especulación, predicacóón, soporte para software pipeline

  • Bibliografía

    • Hennessy, J. and Patterson, D.
      Computer Architecture: A Quantitative Approach , 2nd edition
      Morgan Kaufmann, 1996
    • Mano, M.M.
      Computer System Architecture, 3rd edition
      Prentice-Hall, Inc., 1992
    • Stallings, W.
      Computer Organization and Architecture: Designing for Performance
      Prentice Hall, 1999