Arquitectura de Computador

Información Básica

  • Créditos: 3
  • Horas de clase: 5 / semana (3 horas de clase, 2 Laboratorio)
  • Horas de trabajo independiente: 4 / semana
  • Pre-requisitos: Lógica Digital y Lenguaje de Máquina
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

El curso de Arquitectura de Computador introduce y discute la organización y estructura de sistemas multiprocesador y multinucleo, al igual que la jerarquía de memoria y la relación con los dispositivos de entrada y salida. Este curso esta orientado con un enfoque, en el que gradualmente el estudiante pueda comprender y diferenciar estos sistemas de cómputo frente a un sistema monoprocesador. Y de esta manera logre una actitud crítica hacia sistemas de cómputo paralelo que resuelven problemas donde se requiere máquinas de alto desempeño.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Identificar los conceptos fundamentales de una arquitectura de cómputo paralela.
    1. Identificar los conceptos básicos de los dispositivos de entrada y salida.
    2. Identificar los protocolos usados en la comunicación de los dispositivos de entrada y salida.
    3. Identificar los métodos usados para la programación de dispositivos de entrada y salida.
    4. Identificar cómo las interrupciones se utilizan para implementar el control y la transferencia de datos en los dispositivos de entrada salida.
    5. Identificar la jerarquía de memoria y reconocer las distintas formas de organización de la memoria caché.
    6. Comprender las ventajas y desventajas de la jerarquía de memoria y los compromisos en el coste-rendimiento.
    7. Identificar las diferencias entre sistemas de memoria compartida y distribuida.
    8. Identificar los elementos que definen una arquitectura de cómputo paralela .
    9. Identificar las técnicas y jerarquías de paralelismo.
    10. Definir la funcionalidad que los sistemas paralelos y distribuidos deben entregar para satisfacer alguna necesidad.
    11. Familiarizarse con los modelos de programación paralela
    12. Reconocer las técnicas empleadas para el manejo de memoria y redes de interconexión, empleadas en sistemas multiprocesador y multinucleo.
    13. Reconocer la importancia de la coherencia de memoria cache en un sistema multiprocesador.
  2. Diseñar e implementar un tipo de memoria cache y una arquitectura con paralelismo a nivel de instrucciones
    1. Diseñar e implementar una memoria cache.
    2. Diseñar e implementar un camino de datos y una unidad de control para una arquitectura con paralelismo a nivel de instrucciones.
  3. Evaluar el desempeño de una arquitectura de cómputo monoprocesador y multinucleo
    1. Identificar la diferencia entre el desempeño del procesador y el desempeño del sistema.
    2. Evaluar y comparar el desempeño de la ejecución de algoritmos sobre diferentes arquitecturas de cómputo (Sistema secuencial y paralelo).
    3. Reconocer que al adicionar varios procesadores en un chip se mejora el desempeño.
    4. Evaluar las ventajas y desventajas de costo-desempeño para las diferentes formas de organización de la memoria cache.

Se desarrollan competencias en

  1. Herramientas de simulación para hardware
  2. Lenguaje de descripción hardware VHDL
  3. Tarjeta de desarrollo con FPGA
  4. Lenguaje C

Contenido

Capítulo 1: Dispositivos de entrada-salida

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
1 3 Presentación del curso. Introducción.Fundamentos de entrada/salida : handshaking, buffering, E/S programable,E/S dirigida por interrupciones. Familiaridad [3]
2 2 Clasificación de dispositivos de entrada-salida Uso [2,3]
3 3 Buses: protocolos de bus, arbitraje, acceso directo a memoria (DMA) Familiaridad [2,3]
4 2 Implementación de un protocolo de bus en VHDL Evaluación [2,3]
5 3 Estructura de la interrupciones : vectorizado y priorizado, reconocimiento de interrupción Uso [2,3]
6 2 Manejo de interrupciones Uso [2,3]
7 3 Sistema de almacenamiento y tecnologías, tipos de almacenamiento externo y organización física.Codificación, compresión e integridad de datos (Fiabilidad a través de la redundancia) Uso [2,3]
8 2 Manejo de dispositivos de almacenamiento Uso [2,3]

Total de Horas: 20.

Sesión Horas de trabajo independiente Temas Bibliografía
1-4 4 Lectura de dispositivos de entrada-salida. [2, 3]
5-6 4 Lectura de interrupciones. [2,3]
7-8 4 Lectura de tecnología de almacenamiento. [1,3]

Total de Horas: 12

Capítulo 2: Jerarquía de Memoria

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
9 1.5 Jerarquía de memoria. Familiaridad [2,3]
9 1.5 Organización de la memoria y sus operaciones. Familiaridad [2,3]
10 2 Diseño de distintos tipos de memoria en VHDL Uso [2,3]
11-12 6 Memoria cache , políticas de ubicación reemplazo y actualización Familiaridad [2,3]
13 2 Taller de memoria cache Evaluación [2,3]
14 3 Efectos de la localidad espacial y temporal sobre el rendimiento en los procesadores. Uso [2,3]
15 2 Simulación e Implementación de memorias Evaluación [2,3]

Total de Horas: 18.

Sesión Horas de trabajo independiente Temas Bibliografía
9-15 4 Diseño proyecto I (Implementación memoria cache). [2, 3]
9-15 4 Diseño proyecto I (Implementación memoria cache). [2,3]
9-15 4 Diseño proyecto I (Implementación memoria cache). [2,3]

Total de Horas: 12

Capítulo 3: Introducción a las Arquitecturas Paralelas

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
16 3 Qué son las arquitecturas paralelas, tendencias en las aplicaciones, arquitecturas y tecnologías. Familiaridad [1,2,4]
17-18 6 Tipos de paralelismo y Taxonomía de las arquitecturas paralelas (Taxonomía de Flynn). Familiaridad y uso [1,2,3]
19-21 6 Análisis de una arquitectura con paralelismo a nivel de instrucciones Uso [2]
22 3 Diferencias entre arquitecturas basadas en memoria compartida, distribuida e hibrida. Familiaridad [1,2,3]
23 3 Coherencia en cache Familiaridad,Uso [2,3]
24 3 Modelos de programación paralela (basados en memoria compartida, hilos, memoria distribuida, modelo de datos en paralelo) Familiaridad [1]
25 2 Taller de modelos de programación paralela Evaluación [1]

Total de Horas: 26.

Sesión Horas de trabajo independiente Temas Bibliografía
16-25 4 Diseño proyecto II (Implementación Arquitectura con paralelismo a nivel de instrucciones). [2, 3]
16-25 4 Diseño proyecto II (Implementación Arquitectura con paralelismo a nivel de instrucciones). [2,3]
16-25 4 Diseño proyecto II (Implementación Arquitectura con paralelismo a nivel de instrucciones). [2,3]
16-25 4 Diseño proyecto II (Implementación Arquitectura con paralelismo a nivel de instrucciones). [2,3]

Total de Horas: 16

Capítulo 4: Desempeño y figuras de mérito

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
26-28 9 Concepto de latencia, tiempo de ciclo, ancho de banda. Métricas de desempeño para sistemas monoprocesador (SISD) y sistemas paralelos (CPI, Speedup, Eficiencia), cargas de trabajo, benchmarks representativos y figuras de mérito. Familiaridad [1,2,3]
29 3 Tiempo de acceso a memoria promedio, latencias en memoria principal versus disco y memoria en la red. Familiaridad y uso [1,2,3]
30-31 4 Taller de métricas Evaluación [1,2,3]

Total de Horas: 16.

Sesión Horas de trabajo independiente Temas Bibliografía
26-29 6 Lecturas: Ventajas y desventajas de tecnologías en el desempeño de arquitecturas actuales. Preparación de exposición. [1,2,3,5,6]
26-29 4 Preparación de reporte escrito [2,3,5,6]

Total de Horas: 10

Bibliografía

  1. Barlas, Gerassimos., Multicore and GPU Programming An Integrated Approach. Morgan Kaufman Publishers, 2015
  2. Hennessy, John L. and Patterson, David A., Computer organization and design: the hardware,software 5th ed, Elsevier., 2013
  3. William Stallings, Computer Organization and Architecture: Designing for Performance ,10th ed., Pearson Education, 2015
  4. Culler,David E., Parallel computer architecture : a hardware, software approach., Morgan Kaufman Publishers. , 1999.
  5. IEEE Xplore
  6. ACM Digital Library

Instalaciones

Salón de clase con computador y proyector. Laboratorio de sala de simulación Electrónica.

Material de este semestre