Nombre del curso

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

Integración Curricular

Resultados de Programa (ABET)

(A) La habilidad para aplicar conocimientos de matemáticas, ciencias e ingeniería.

(B) La habilidad para analizar un problema e identificar los requerimientos necesarios para su definición y solución.

(C) La habilidad para diseñar, implementar y evaluar procesos y sistemas computacionales.

(D) La habilidad para funcionar en equipos de trabajo.

(E) El entendimiento de la responsabilidad profesional y ética.

(F) La habilidad para comunicarse efectivamente.

(G) La habilidad para analizar los impactos de la computación y la ingeniería en las personas, organizaciones y la sociedad.

(H) El reconocimiento de la necesidad de, y la habilidad para, continuar con el desarrollo profesional.

(I) La habilidad para usar las técnicas, destrezas y herramientas modernas para la práctica de la computación.

(J) La habilidad para aplicar los fundamentos y principios de las matemáticas y de la computación en el modelamiento y diseño de sistemas computacionales de manera que se demuestre comprensión de las ventajas y desventajas en las decisiones de diseño.

(K) La habilidad para aplicar los principios de diseño y desarrollo de software en la construcción de sistemas de diferente complejidad.

Relevancia del curso con los resultados de programa

Resultados de Programa
A B C D E F G H I J K
Relevancia 5 4 1 2 2 3 3

Escala: (1) baja relevancia - (5) alta relevancia.

Integración de objetivos, contenido y metodología del curso

Resultados del Programa Indicadores de Desempeño Objetivos/Contenido del Curso Actividades de aprendizaje Instrumentos de medición
(A) Aplicación de Conocimientos (A1) Identificar los fundamentos científicos y los principios de ingeniería que rigen un proceso o sistema. (Conocimiento) (A2) Resolver problemas relacionados con la disciplina y otras áreas por medio de la utilización de conocimientos, modelos y formalismos de las ciencias de la computación, las matemáticas y la ingeniería. (Aplicación) (A3) Analizar conjuntos de datos. (Análisis) Capítulos 1-4 Exposiciones del profesor, tareas y lecturas Exámenes
(C) Diseño (C1) Utilizar estándares de codificación en la implementación de componentes de software. (Aplicación). (C2) Identificar componentes, interacciones, relaciones e interfaces entre componentes. (Análisis). (C3) Diseñar procesos y componentes de software haciendo uso de la notación, técnicas y herramientas adecuadas. (Síntesis). Capítulos 1-4 Exposiciones del profesor,solución de ejercicios y lecturas Exámenes yProyectos
(D) Trabajo en equipo (D2) Participar en tareas y en la toma de decisiones. (Respuesta - Afectivo). (D4) Definir tareas, roles y responsabilidades. (Aplicación). Capítulo 2,3 Proyectos y laboratorio Proyectos,laboratorios, seguimiento a los cronogramas
(F) Comunicación efectiva (F1) Producir textos de manera efectiva teniendo en cuenta la estructura, coherencia, flujo, ortografía y correcto uso del lenguaje. (Aplicación). (F2) Comunicarse de manera efectiva de acuerdo al público objetivo haciendo uso correcto del lenguaje, estilo, tiempo y expresión corporal. (Aplicación). (F3) Utilizar recursos gráficos para comunicar y expresar una idea. (Aplicación). (F4) Defender ideas con precisión y claridad. (Evaluación). Capítulos 4 Exposición y trabajo escrito Presentación Oral y trabajo escrito
(I) Uso de herramientas y técnicas (I2) Utilizar herramientas de diseño, modelamiento y simulación. (Aplicación). (I3) Combinar herramientas de software y hardware para resolver un problema. (Síntesis). Capítulos 2,3 Laboratorios y lecturas Proyectos y prácticas de laboratorio
(J) Modelamiento y diseño de sistemas computacionales (J4) Evaluar decisiones de diseño basándose en principios matemáticos y de computación. (Evaluación). Capitulos 2,3 Laboratorios y lecturas Proyectos y prácticas de laboratorio
(K) Desarrollo de software (K2) Implementar e integrar componentes de software respetando los criterios de diseño. (Aplicación). Capitulos 2,3 Laboratorios y lecturas Proyectos y prácticas de laboratorio

Contribución al Desarrollo de Competencias (CNA)

Resultados de Programa
A B C D E F G H I J K
Ciudadanía U
Comunicación escrita E
Lectura crítica E
Inglés U
Razonamiento cuantitativo E E E E E

E- Se evalúa. U - Se usa

Contribución a los objetivos educacionales

La Carrera de Ingeniería de Sistemas y Computación plantea los siguientes objetivos educacionales, El estudiante graduado de la carrera será capaz de:

  1. EO1.Ejercitar la práctica de la Ingeniería de Sistemas y Computación profesionalmente.
  2. EO2.Diseñar y operar sistemas de computación que contribuyen a la solución de problemas relacionados a la disciplina, otra área de la ciencia y la ingeniería u otras disciplinas.
  3. EO3.Contribuir al bienestar de las comunidades desde posiciones prominentes en la industria, academia, sector público o como un emprendedor.
  4. EO4.Ser distinguido por su bases sólidas en computación, su sentido de ciudadanía responsable, su profesionalismo y liderazgo.
  5. EO5.Continuar su desarrollo profesional o involucrarse en estudios de posgrado.
Resultados de Programa
A B C D E F G H I J K
EO1 x x x x
EO2 x x x x x
EO3 x x x
EO4x x x x
EO5 x

Recomendaciones del Director del Programa

Reglas del curso

Calificación y Balance de Evaluación del Curso

Instrumento Porcentaje A B C D E F G H I J K
Parcial 1 15 % 10 % 5 %
Parcial 2 20 % 15 % 5 %
Proyecto I 20 % 5 % 1 % 4 % 5 % 5 %
Pryecto II 25 % 5 % 1 % 4 % 8 % 7 %
Exposición 10 % 10 %
Laboratorio 10 % 3 % 2 % 2 % 3 %

Uso de material en exámenes

Está permitido el uso de alguna información específica (ISA) de las notas de clase y calculadoras. No está permitido el uso de computadores personales ni teléfonos celulares.

Asistencia

Obligatoria.

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

 
materias/arquitecturacomputador.txt · Última modificación: 2016/08/24 15:17 por msacanamboy
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki