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
- Principios cuantitativos del diseño de arquitecturas
- Tendencias tecnológicas y de uso
- Medidas de desempeño de equipo de cómputo
- 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
- Algebra booleana
- Postulados del álgebra booleana
- Formas normales conjuntivas y disjuntivas
- Minimización de funciones
- 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
- 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
- Unidad de control
- El diagrama de flujo de datos (datapath)
- Señales de control
- Unidades de control microprogramadas y alambradas (hardwired)
- Morris Mano, Capítulo 8
- 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)
- 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
- 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
- Entrada/Salida y canales
- Canales, conceptos y sincronización
- Esquemnas de arbitraje de canal
- Dispositivos de almacenamiento secundario, medidas de desempeño
- 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
- Arquitecturas de vanguardia
- Ejecución fuera de orden, despacho dinámico
- Arquitecturas VLIW y EPIC
- Especulación, predicacóón, soporte para software pipeline
- Principios cuantitativos del diseño de arquitecturas
-
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
- Hennessy, J. and Patterson, D.