Volver a Cursos


Arquitectura de Computadores - Código 22966

Carlos Jaime Barrios Hernández - ( c b a r r i o s  @   u i s . e d u . c o )

Auxiliatura Técnica-Académica : Equipo de Ingenieria de Supercomputación y Cálculo Científico

Theory-vs-practice.jpg

PRESENTACION

El diseño, desarrollo e innovación son palabras que corresponden a la actividad de un ingeniero, cualquiera que sea su área de trabajo. Desde un punto de vista ingenieril la tecnología, es el fruto de la concepción y desarrollo del conocimiento, utilizando herramientas y proyectando una utilidad, incluyendo el diseño de nuevas herramientas. Como ingenieros de sistemas esas herramientas son las máquinas computacionales, las cuales evolucionan con la actualización del conocimiento, que involucra la explotación de nuevos materiales, nuestra capacidad de abstracción y las perspectivas de desarrollo (mas que las necesidades).


Si bien el componente técnico/tecnológico de la asignatura arquitecturas de computadores es importante, el solo hecho de utilizar la palabra “arquitectura” involucra una percepción hacia la concepción, el diseño y la organización de los elementos que integran un sistema de cómputo (no solo una máquina computadora), como es la interacción con otros sistemas y con los humanos, observando tendencias, factibilidad, requerimientos de rendimiento, limitaciones tecnológicas y físicas, impacto ambiental entre otros. Aunque la frontera con el conocimiento que involucra otras áreas como la ingeniería electrónica, la física de materiales o la matemática aplicada es frágil, el curso esta dirigido a estudiantes de ingeniería de sistemas y ciencias de la computación, buscando ofrecer fundamentos de arquitectura de sistemas computacionales desde una ubicación histórica. De ahí que se complementen con lecturas acerca del estado del arte en cada una de las secciones propuestas para este curso.


El propósito fundamental de esta asignatura durante el presente semestre es establecer un estado de conocimientos fundamentales en arquitectura de computadores, que permita manejar el lenguaje técnico asociado, ubicar temporalmente el desarrollo tecnológico, conociendo el estado del arte en esta área y fundamentar conocimientos que permitan el auto-aprendizaje y profundización en el área, además de la interacción en equipos interdisciplinarios que requieran competencias en arquitectura de sistemas computacionales.

Contenido

  1. Introducción y Fundamentos de Arquitectura de Sistemas de Cómputo
    1. Arquitectura, Organización y Diseño de Sistemas de Cómputo
    2. Desarrollo histórico – Ubicación histórica actual
    3. Clases de Computadoras
    4. Abstracción y Tecnología de Computación – Tendencias
    5. Desempeño
    6. Casos de Estudio
  2. Instrucciones y Aritmética para Computador
    1. Fundamentos de Instrucciones para Computador
      1. Operaciones y Operandos de Hardware de Computadoras
      2. Representación de Instrucciones
      3. Operaciones Lógicas
      4. Instrucciones para la toma de decisiones
      5. Soporte de Procedimientos a nivel de Hardware
      6. Comunicaciones
      7. Arquitectura MIPS
      8. Introducción Paralelismo I – Paralelismo de Instrucciones y el problema de la sincronización
      9. Algunos Aspectos Avanzados
        1. Aspectos Arquitecturales de Compilación
        2. Fundamentos de Diseño Lógico
        3. Mapeo de Hardware
      10. Casos de Estudio
    2. Introducción y Fundamentos de Aritmética para Computador
      1. Adición y substracción
      2. Multiplicación y División
      3. Introducción al Paralelismo II – Aritmética de computadores y el problema de la asociatividad.
      4. Casos de Estudio
  3. Organización y Diseño Arquitectural de Sistemas de Cómputo
    1. Fundamentos de Organización y Diseño
    2. Aspectos Básicos de Procesadores
      1. Aspectos Lógicos de Diseño
      2. Pipeline y Control
      3. Paralelismo y Escalabilidad
      4. Casos de Estudio
    3. Fundamentos de Memoria
      1. Fundamentos de Organización y Diseño
      2. Jerarquía de Memoria
      3. Casos de Estudio
    4. Aspectos Básicos de Almacenamiento
    5. Aspectos Básicos de Comunicaciones y Conectividad
      1. Conectividad Interna
      2. Interconectividad y Redes (Introducción)
    6. Fundamentos de I/O, Gráficas e Interfaces
    7. Casos de Estudio
  4. Tendencias y Direcciones Futuras
    1. Arquitecturas Híbridas
    2. Arquitecturas Reconfigurables
    3. Aspectos Energéticos, Ecológicos y Ambientales
    4. Arquitecturas Escalables, de Gran Escala y Ecosistemas
    5. ARMS (Advanced RISC Architectures) y Computadores Embebidos.
    6. EXASCALE y otras direcciones

ASPECTOS METODOLOGICOS

  • Seminarios Teóricos
  • Seminarios Magistrales
  • Seminarios con Invitados
  • Sesiones Teórico Prácticas / Análisis de Casos
  • Lecturas Sugeridas (En español y en Inglés)
  • Webminars y Videoconferencias

MATERIAL DEL CURSO

El material presentado, fundamentalmente son las diapositivas presentadas durante las sesiones tanto teóricas como los talleres. Es importante resaltar que la mayoría del material se encuentra en inglés. Esto con el fin de acostumbrar la consulta en inglés, debido a que las especificaciones y la bibliografía y fuentes de información "de punta" en tecnología están estandarizadas en inglés. Es posible que existan algunos errores de escritura.  Estas diapositivas son principalmente de las sesiones Teóricas (Desde el I Semestre de 2016) y los artículos presentados por los estudiantes a partir del primer semestre de 2016.

Presentación del Curso:

Del Tema 1 del Contenido:

Del Tema 2 del Contenido:

Del Tema 3 del Contenido:

EVALUACIONES (2 Semestre de 2017)

Los exámenes escritos se realizarán en las horas de clase

1. Evaluación Escrita No. 1 (20%) TEMA 1 (Con material de apoyo, Individual).  Fecha propuesta:  Miércoles 27 de Septiembre de 2017

  • Se recomienda tener hoja de examen y responder con lapicero, no con lápiz.
  • No se permite ningún tipo de comunicación entre estudiantes.
  • Pueden usar computador portatil, pero ningún tipo de comunicación entre estudiantes.

2. Evaluación Escrita  No. 2 (20%) TEMA 2  (Sin material de apoyo, individual).  Fecha propuesta: Miércoles 8 de Noviembre de 2017

  • Principalmente el tema 2, pero puede incluirse conocimientos del tema del contenido 1.
  • Tenga en cuenta las recomendaciones dadas para el anterior mensaje..

3. Evaluación Escrita No.3  (20%) TEMA 3  (Sin material de apoyo, Por Parejas).  Fecha propuesta: Jueves 7 de Diciembre de 2017

  • Principalmente el tema 3, pero se pueden incluir conocimientos vistos en los temas 2 y 3.
  • Incluye una pregunta de los artículos entregados y expuestos por los grupos (Normalmente es una pregunta evidente realizada durante la exposición).

4. Artículo Final de Aplicación y Presentación (20%)

Limité de Fecha y Hora de Entrega: Viernes 24 de Noviembre de 2017 hasta las 23:59 (Tiempo Bogotá, Colombia)

Fechas de Presentación: Miércoles 29 y Jueves 30 de Noviembre de 2017

El artículo responderá a un proyecto de aplicación que se distribuirá en grupos dados por el profesor y se debe tener en cuenta la estructura del mismo (introducción, estado del arte, contenido en el cual se desarrollará en sí el trabajo, resultados (experimentación si la hat), gráficas, figuras y tablas (si son necesarias), conclusiones, bibliografía y fuentes de información. Pueden guiarse viendo el siguiente ejemplo aquí

  • 12 (doce) Páginas en Español  (mínimo 8 páginas), Título y Resumen (abstract) en español y en  inglés (máximo 10 lineas). NO OLVIDE DARLE UN TITULO QUE DEBE SER DIFERENTE AL TITULO DE LA ASIGNACION PERO QUE GENERE UN INTERES A LA LECTURA
  • Formato IEEE en una columna para series de conferencias http://www.ieee.org/conferences_events/conferences/publishing/templates.html
  • La asignación es de 2 (dos) o (3) tres autores por artículo, de acuerdo a la asignación (igualmente distribuidos por el profesor). NO SON MODIFICABLES
  • Temáticas Distribuídas por el Profesor

El artículo debe entregarse en un único archivo .pdf enviándolo al correo del profesor, indicando en el asunto: ENTREGA ARTICULO FINAL ARQUITECTURA. Recuerde que la fecha de entrega esta indicada en el calendario de evaluaciones. Para la presentación debe tener en cuenta lo siguiente:

  • 5 Minutos estrictos de presentación. Mas allá de este tiempo será penalizado en la nota.
  • Puede estructurarse en formato libre, pero deben usarse diapositivas.
  • El orden de presentación de los grupos será dado el mismo dia de la presentación.

5. Sesiones de Entregas Prácticas (20%) Todos los Jueves desde el 31 de Agosto

  • Se pueden realizar y entregar por parejas. Las sesiones prácticas se realizan los jueves e inician desde las 7:00 a.m. Después de las 7:30am no se recomienda ingresar al salón de clase.
  • Toda las sesiones prácticas generan un informe que se enviara via correo electrónico al correo del profesor, diez minutos antes del cierre del sistema (8:50am).
  • Los informes de laboratorio/práctica, se entregan estrictamente en un documento de máximo 3 páginas en .pdf, tamaño carta, con el nombre práctica-XX-Primeras Dos Letras de los Apellidos por Pareja, donde XX es el número de la práctica (por ejemplo, si es la práctica 7 realizado por Pedro Perez y Ana Ardila, sera práctica-7-PPAA.pdf) En el asunto del correo debe colocarse como titulo Arquitectura de Computadores - Práctica XX, donde XX es el número de la práctica. En el cuerpo del mismo, deberán estar los nombres completos y códigos de la dupla que presenta y realiza la práctica. .
  • No olvide en el documento .pdf igualmente colocar los nombres de los participantes de la dupla.

NOTAS DEFINITIVAS 2007-2

TEMATICAS DE PROYECTOS

Temáticas de Proyectos 2017-2

Para este semestre se realizó una asignación por grupos de tres (3) estudiantes, de acuerdo a la tabla siguiente. Cada uno de los grupos deberá realizar el trabajo asignado y seguir lo que se muestra en el numeral 4 de la sección de evaluaciones. Cada uno de los grupos partirá de al menos un articulo de base dado y responderá las preguntas asociadas al mismo (no necesariamente en el orden dado, el orden ustedes lo dan para darle un cuerpo y un argumento a su artículo y trabajo). Recuerden que a partir del artículo de base, deben buscar nuevas fuentes de información.

Tenga en cuenta que la asignación es definitiva, todo el equipo debe trabajar y en la clase práctica del jueves 26 de octubre, se deberá hacer un informe previo sobre como resolverán la tarea asignada. La tabla de asignación involucra igualmente el orden de presentación.

Tabla de asignación de Grupos

G1 2151099 - CABALLERO PONGUTA EDUARD ALFONSO
2151016 - CAICEDO GUALDRON PAOLA ANDREA
2143705 - CONTRERAS CALDERON KAROLL DAYANA
G2 2151144 - CUADROS SANABRIA ANDRES JAVIER
2141385 - FRAIJA CASTILLO CRISTIAN YESID
2142861 - GOMEZ HERNANDEZ SANTIAGO
G3 2100158 - GONZALEZ ARIZA HECTOR FABIAN
2132915 - GONZALEZ MOGOLLON KAREN VIVIANA
2131812 - HERNANDEZ AGUILAR NATHALY
G4 2140408 - JIMENEZ BUITRAGO JULIANA ANDREA
2151196 - LOPEZ DURAN JHON EDINSON
2151220 - MARCON CABALLERO JUAN SEBASTIAN
G5 2121829 - MARTINEZ ZULUAICA CAMILO
2150087 - MENDOZA CASAS OSCAR MAURICIO
2120364 - MERCADO SIERRA ELKIN DARIO
G6 2142603 - MOGOLLON VELANDIA FREDY EMANUEL
2130085 - PABON JAIMES LUISA FERNANDA
2151480 - PAEZ ORTIZ LUIS ERNESTO
G7 2151029 - PINEDA MEDINA DIEGO ALBERTO
2150422 - RANGEL PIESCHACON EDGAR YESID
2151612 - RIASCOS DIAZ MAYRA ALEJANDRA
G8 2130501 - RONDON ARANGO JUAN SEBASTIAN
2141380 - RUEDA SERRANO JAVIER CAMILO
2141362 - SILVA GARCES JUAN FELIPE

Asignaciones de Trabajo

  • G1: El Problema de la Memoria en Arquitecturas computacionales en la Era PostMoore: Actualmente nos encontramos ante una disrupción tecnológica en computación, en la cual, por las limitaciones físicas, económicas y energéticas, la ley de Moore no se aplica más en computación y los fabricantes e investigadores están desarrollando lo que es las arquitecturas computacionales en la era post-moore. Existen muchos retos que se plantean, entre ellos el uso de arquitecturas heterogeneas para acelerar procesamiento a un bajo consumo energético relativo, pero cada reto que se busca tratar genera otros tantos, como los problemas relacionados con la memoria. En el artículo Heterogeneous Computing Meets Near-Memory Acceleration and High-Level Synthesis in the Post-Moore Era muestra como se trata el reto para acelerar la memoria mas cercana al procesamiento en arquitecturas heterogeneas.
    • ¿Dé que se trata efectivamente la Era Post-Moore en arquitectura computacional?
    • Describa de que se trata el reto que estan solucionado los autores del mismo, y cuales son sus principales logros.
    • ¿Otras personas o grupos de investigación han tratado el problema o no? Si es asi, cual es el aporte que dan los autores.
    • ¿Cuales nuevas preguntas y retos surgen de la propuesta de los autores del articulo dado?
    • Como ingenieros de sistemas, ¿como los afecta este tipo de problemáticas?. Sea concreto y puede dar ejemplos.
  • G2: Modernización de las Aplicaciones en la Era Exascale: Exascale plantea retos tecnológicos que tradicionalmente se ven desde las arquitecturas hardware y software, pues no solo se trata de tener una electrónica mejor para poder procesar exa-datos a un costo energético eficiente, sino también que las aplicaciones se ejecuten. En ese sentido, se han desarrollado grupos y centros especializados para tratar problemáticas asociadas, como los Centros de Excelencia (o COE de sus siglas en inglés). En el artículo Application Modernization for the Exascale Era introduce otros tres siguientes, en los cuales se trata precisamente de como un COE generado trata ese problema de la modernización de las aplicaciones, teniendo en cuenta aspectos importantes del co-diseño hasta aplicaciones. Uno de los tres articulos siguientes denominado: Application Modernization at LLNL and the Sierra Center of Excellence trata mas en detalle la acción de un COE.
    • ¿Por qué y como el exascale afecta las aplicaciones?
    • ¿Por qué es importante tratar la modernización de las aplicaciones? ¿Cuales son los principales retos que se encuentran?. Recuerden desde el Exascale.
    • ¿Por qué es importante los COE?
    • Una de las aplicaciones visibles y de alto impacto desarrollado por el COE en mención puede verse en Toward Exascale Earthquake Ground Motion Simulations for Near-Fault Engineering Analysis de que se trata y como desde la ingenierí de sistemas e informática y la computación se trata este tipo de problemas? Recuerde, desde el punto de vista de arquitectura de computadores (hardware/software)
    • ¿Como se atacarían desde la EISI problemas como el anteriormente expuesto? ¿Es importante hacerlo para Santander y el país?
  • G3: Computación Cuántica: Desde la ciencia ficción hasta en conversaciones de cafetería se habla de la computación cuántica, el cual, a pesar de ser muy experimental aun, es un hecho que algunos grupos de investigación y empresas le apuestan a un desarrollo a futuro, generan igualmente nuevos retos y resolviendo otros. En el articulo The Quantum Future of Computation los autores tratan de que se trata ese "futuro cuántico de la computación" (Igualmente puede ver en youtube en la charla de Matthias Troyer con el mismo nombre).
    • ¿Dé qué se trata la computación cuántica? Recuerde, desde el punto de vista de arquitectura (hardware/software).
    • ¿De que se trata la física cuántica?¿Porqué entonces de computadores cuánticos?
    • ¿Qué pasa con las aplicaciones y la arquitectura de ellas (arquitectura software)? ¿Como se compilan, ejecutan y trazan (ver su desempeño)?
    • Si la computación cuántica se desplegara inmediatamente, ¿Cuales serian las implicaciones sociales, económicas e industriales?
    • ¿Como futuro ingeniero, se cree listo para asumir en rol en un mundo con computación cuántica? Justifique su respuesta.
  • G4: Computación Molecular: Los científicos en computación, andan trabajando desde hace años en resolver los diferentes retos (bajo consumo de energía, aumentar capacidades, programabilidad, etc.) proponiendo nuevos paradigmas y arquitecturas computacionales, cada vez menos convencionales. Precisamente, como se observa en Embodied Molecular Computation: Potential and Challenges se plantea un nuevo reto, para nada convencional, desde las posibilidades moleculares de la materia para hacer computación.
    • ¿De qué se trata la computación molecular? ¿Por qué aparece el término embodied (incorporada)?
    • ¿Esta de acuerdo que los procesos biológicos pueden entenderse como programas? Justifiqué su respuesta.
    • ¿Que retos, cambios de paradigma (a nivel de arquitectura, representación, programación, etc) y cambios trae consigo la computación molecular y en este caso molecular incorporada (o embebida)?
    • Si la computación molecular see desplegara inmediatamente, ¿Cuales serian las implicaciones sociales, económicas e industriales?
    • Como futuro ingeniero, ¿cree que con los conocimientos actuales que tiene como estudiante, esta listo para afrontar un mundo con computación molecular (y molecular embebida?. Justifique su respuesta.
  • G5: Nuevos Paradigmas de Interacción Hombre -Máquina: El desarrollo de arquitecturas computacionales que permitan la interacción hombre-máquina desde sinergias corticales para permitir un control cerebral de dichas arquitecturas es un reto que genera cada vez mas preguntas, ante nuevos avances logrados. En el artículo Cortically Coupled Computing: A New Paradigm for Synergistic Human-Machine Interaction se presenta un nuevo paradigma pensando en el acoplamiento precisamente en el acoplamiento cortical.
    • ¿De qué se trata la interacción cerebro-computador y porque involucra cada vez mas nuevos retos?
    • Arquitecturalmente (computacionalmente), ¿como podría explicarse un sistema cerebro-computador?
    • ¿Cual es el rol que juega la inteligencia artificial en todo esto?
    • En términos de aplicaciones, ¿cuales son los retos tanto en el desarrollo como en la concepción de aplicaciones del "mundo real"?
    • Dé que se trata IEEE Brain Initiative y ¿Como se podría participar desde la UIS?
  • G6: Computación en Tiempo Real sobre Procesadores Multi-núcleos: El uso de múltiples núcleos en procesadores han permitido sobre diferentes arquitecturas computacionales, garantizar alto rendimiento y nuevos usos, pero también generan nuevos retos como la misma gestión de la memoria. En el artículo Real-Time Computing on Multicore Processors presenta una propuesta para el uso de procesadores multi-núcleos para computación en tiempo real, usada en aviónica.
    • ¿Cuales son los principales retos y problemas a los que se enfrenta el uso de procesadores de multiples núcleos para sistemas de computación de tiempo real?
    • ¿Por qué se hace tanto énfasis en la interferencia entre núcleos?
    • A nivel de aplicaciones, ¿Cuales son los retos?
    • ¿Por qué es importante estimar los peores casos en el rendimiento de estos sistemas (y de cualquier sistema)?
    • ¿Que campos de aplicación sociales, industriales y académicos podría tener el uso de sistemas de procesamiento multinúcleo para tiempo real en el entorno cercano? (Universidad, Bucaramanga, Santander, Colombia). De ejemplos.
  • G7: ¿La Ley de Moore ha muerto?: La Ley de Moore, propuesta en 1965 se ha cumplido de una manera extraordinaria hasta hace un par de décadas cuando las limitaciones físicas y el advenimiento de nuevas tecnologías generaron una disrupción tecnológica que hace que se comience a visualizar una era post-Moore. Sin embargo, algunos investigadores dicen que el anuncio de la muerte de la Ley de Moore es exagerado. En el artículo Exponential Laws of Computing Growth y en el video trata precisamente acerca de ese crecimiento computacional exponencial y las implicaciones que tiene no solo en como entendemos y usamos la tecnología sino también como la vemos a futuro.
    • ¿Como podría entender la ley de Moore no solo a nivel de los transistores (chips) sino también a nivel de procesos, hilos y aplicaciones?.
    • ¿De que se trata la ley de Rock y por qué es importante?
    • ¿Qué rol tiene el paralelismo en todo esto?
    • ¿Qué ha pasado con el desarrollo de aplicaciones en la era Moore?
    • El crecimiento exponencial computacional plantea retos complejos. ¿Cuales son esos retos como ingeniero de sistemas y como se ubica la Escuela de Ingenieria de Sistemas e Informática de la Universidad Industrial de Santander, para atacar esos retos?
  • G8: Computación Heterogénea: Para garantizar máximo desempeño aprovechando las características y propiedades de tecnologías especificas, se han propuesto arquitecturas computacionales completamente híbridas y heterogéneas, creando configuraciones cada vez mas novedosas, complejas y con un costo económico menor, pero que plantean nuevos retos. En el video y en el artículo Heterogeneous computing: here to stay se presenta lo que es hoy la computación heterogénea y como debe entenderse, desde un punto de vista computacional, haciendo enfásis en los retos que plantea.
    • ¿Qué es la computación heterogénea?
    • ¿Cuales son los retos en hardware y en software? De ejemplos.
    • La UIS, desde Supercomputación y Cálculo Científico (SC3UIS) comenzó a innovar hace cinco (5) años con computación heterogénea, inicialmente con el codiseño y cointegración de GUANE-1 (GpUAdvanced eNvironmEnt - 1) que es un computador heterogéneo. ¿Qué lo hace tan especial y heterogéneo/híbrido?
    • ¿Qué es lo bueno y lo malo de esa computación heterogénea?
    • Como la UIS desde la Escuela de Ingenieria de Sistemas e Informática ha respondido a la computación heterogénea? (cursos, proyectos, grupos de investigación, interés de los profesores, estudiantes... etc.)

Artículos de los Grupos del Curso del Semestre 1-2016

Nota importante: Para efectos de la evaluación, al grupo que le correspondió el artículo del Grupo 1, como estos trabajaron finalmente separadamente, escojan alguna de las dos versiones, indicando en la evaluación, que versión escogieron.

Artículos de los Grupos del Curso del Semestre 2-2016

Notas de las Evaluaciones del Curso (Se publicarán previamente acá)

BIBLIOGRAFÍA Y FUENTES DE INFORMACION

1.Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface)]


2. Patterson and Hennesy, Computer Architecture; A Quantitative Approach



3. TED Talks

ALGUNAS PRACTICAS

Práctica Arquitectura General

  1. La siguiente imagen, corresponde a una organización del sistema propuesta para un sistema Nehalem-EP 8-way cc-NUMA SMP, basado en CPUs (http://sc.tamu.edu/systems/eos/). Como profesional en ingenieria de sistemas le preguntan lo siguiente, de acuerdo a la gráfica (10 puntos):
    • ¿Cuantos procesadores tengo?
    • ¿Cuántos tipo de procesadores tengo y de que tipo? Explique cada uno
    • ¿Cuántos nucléos de procesamiento (cores) tengo?
    • ¿Cuántos niveles de caché tengo? Explique a que me refiero con el caché.
    • ¿Qué dice la información acerca de la latencia al compararla de procesador a procesador y de procesador a memoria?
La magen, corresponde a una organización del sistema propuesta para un sistema Nehalem-EP 8-way cc-NUMA SMP, basado en CPUs (http://sc.tamu.edu/systems/eos/)  

CONSULTA CON EL PROFESOR Y SESIONES

Normalmente, si requieren alguna consulta pueden enviarme un email al correo cbarrios(-@-)uis.edu.co o en el desarrollo del curso para planificarla . Sin embargo, los miércoles en los mañana en el horario de 9:30 am. hasta las 10:30 a.m. puede buscarse en la oficina LP 226. Les recomiendo sin embargo que saquemos una cita previa.

.