Difference between revisions of "Arquitectura de computadores"

From Supercomputación y Cálculo Científico UIS
Line 160: Line 160:
  
  
'''Arquitecturas Escalables'''
+
'''Arquitecturas Escalables: '''
 +
 
 +
 
 +
 
 +
 
  
 
ARM
 
ARM

Revision as of 14:33, 22 June 2016

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

0067467e56db97e5ff2f6e2d3d8d161d.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</b>
    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.  Sesiones Teóricas (Desde el I Semestre de 2016)

Presentación del Curso:

Del Tema 1 del Contenido:



Del Tema 2 del Contenido:


Del Tema 3 del Contenido:

EVALUACIONES

Los exámenes escritos se realizán en hora de clase

1. Evaluación Escrita No. 1 (25%) TEMA 1 (Sin material de apoyo, en parejas).  Fecha propuesta:  Miércoles 2 de Junio 2016

  • Las parejas son armadas el mismo dia del examén

2. Evaluación Escrita  No. 2 (25%) TEMA 2  (Con material de apoyo, individual).  Fecha propuesta: Miércoles 27 de Julio 2016

  • Principalmente el tema 2, pero puede incluirse conocimientos del tema del contenido 2.

3. Evaluación Escrita No.3  (25%) TEMA 3  (Sin material de apoyo, individual).  Fecha propuesta: Miércoles 24 de Agosto 2016

  • Principalmente el tema 3, pero pueden inclurise conocimientos vistos en los temas 2 y 3.
  • Incluye una pregunta de los artículos entregados por su compañeros.

4. Artículo Final de Aplicación (25%) Fecha de Entrega: 11 de Agosto de 2016 a las 23:00 (11:00pm) en formato pdf

El artículo reponderá a una pregunta 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, bilbiografía y fuentes de información. Pueden guiarse viendo el siguiente ejemplo aquí

El artículo debe entregarse en un único archivo .pdf enviandolo al correo del profesor, indicando en el asunto: ENTREGA ARTICULO FINAL ARQUITECTURA. Recuerde que la fecha de entrega es el 11 de agosto.

Temáticas

Arquitecturas Hibridas: Este tipo de arquitecturas heterogeneas son sistemas que usan diferentes tipos de procesadores para garantizar alto rendimiento. Los tipos de arquitecturas más difundidos son los basados en GPUs (por ejemplo, usando GPUs de NVIDIA) y los que usan coprocesadores tipo MICs (usando Intel Xeon Phi).

  • Para el Grupo 1: ¿Cualés son los retos de las arquitecturas Heterogéneas? Describa ejemplos que expliquen esos retos.
  • Para el Grupo 2: Programar arquitecturas híbridas o heterogéneas involucra lenguajes de programación especificos para garantizar la ejecución en los diferentes tipos de procesamiento. El código que se da esta hecho en NVIDIA CUDA. Observe el código que se encuentra en el enlace  aquí

Arquitecturas Reconfigurables:  Las Arquitecturas Reconfigurables soportan lo que se conoce como computación flexible entre hardware y software para garantizar alto rendimiento, principalmente usando FPGAs.

  • Para el Grupo 3:  Xilinx es una empresa estadounidense que ha propuesto dos tipos de reconfiguración basadas en reconfiguración parcial: ¿De que se trata cada una de ellas? ¿Cuando usar una y cuando la otra? (No olvidar mencionar ejemplos prácticos).
  • Para el Grupo 4: Xputer es un diseño de una computadora reconfigurable, propuesta por el cientifico de computadoras Reiner Harnstein. El describe la computación reconfigurable en términos de antimaquinas, representando un paradigma contrario a la descripción computacional de Von Neumman, denominada Paradoja de la Computación Reconfigurable. ¿De que se trata? ¿Por qué se dice que a pesar de todo esta paradoja es explicada por el Cuello de Botella de Von Neumann?

Aspectos Enérgeticos: Los aspectos energéticos debido al impacto ambiental y a limitaciones en eficiencia (energética) ha llevado a una tendencia que incluso, generá normativas internacionales en hardware y software, que se exigen en adeucaciones desde el año 1992.

  • Para el Grupo 5: Se dice que la virtualización permite la reducción de huella de carbono, en los centros de datos. ¿Por qué se afirma esto? Muestre algunos ejemplos.
  • Para el Grupo 6:  Las estrategias de calendarización (o planificación) de procesos y tareas ayudan a garantizar cierta eficiencia enérgetica en el software. La más usada de estas estrategias es DVS (Dynamic Voltage Scaling). ¿De que se trata? Mencione un par de ejemplos pŕacticos y muestre sus principales características.


Arquitecturas Escalables:



ARM

Exascale

Computadores Embebidos

Interfaces Cerebro-Máquina (Brain Machine Interface)

Co-Diseño Hardware/Software

Notas

  • A publicar posteriormente

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