Arquitectura de computadores
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
Contents
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
- Introducción y Fundamentos de Arquitectura de Sistemas de Cómputo
- Arquitectura, Organización y Diseño de Sistemas de Cómputo
- Desarrollo histórico – Ubicación histórica actual
- Clases de Computadoras
- Abstracción y Tecnología de Computación – Tendencias
- Desempeño
- Casos de Estudio
- Instrucciones y Aritmética para Computador
- Fundamentos de Instrucciones para Computador
- Operaciones y Operandos de Hardware de Computadoras
- Representación de Instrucciones
- Operaciones Lógicas
- Instrucciones para la toma de decisiones
- Soporte de Procedimientos a nivel de Hardware
- Comunicaciones
- Arquitectura MIPS
- Introducción Paralelismo I – Paralelismo de Instrucciones y el problema de la sincronización
- Algunos Aspectos Avanzados
- Aspectos Arquitecturales de Compilación
- Fundamentos de Diseño Lógico
- Mapeo de Hardware
- Casos de Estudio
- Introducción y Fundamentos de Aritmética para Computador
- Adición y substracción
- Multiplicación y División
- Introducción al Paralelismo II – Aritmética de computadores y el problema de la asociatividad.
- Casos de Estudio
- Fundamentos de Instrucciones para Computador
- Organización y Diseño Arquitectural de Sistemas de Cómputo</b>
- Fundamentos de Organización y Diseño
- Aspectos Básicos de Procesadores
- Aspectos Lógicos de Diseño
- Pipeline y Control
- Paralelismo y Escalabilidad
- Casos de Estudio
- Fundamentos de Memoria
- Fundamentos de Organización y Diseño
- Jerarquía de Memoria
- Casos de Estudio
- Aspectos Básicos de Almacenamiento
- Aspectos Básicos de Comunicaciones y Conectividad
- Conectividad Interna
- Interconectividad y Redes (Introducción)
- Fundamentos de I/O, Gráficas e Interfaces
- Casos de Estudio
- Tendencias y Direcciones Futuras
- Arquitecturas Híbridas
- Arquitecturas Reconfigurables
- Aspectos Energéticos, Ecológicos y Ambientales
- Arquitecturas Escalables, de Gran Escala y Ecosistemas
- ARMS (Advanced RISC Architectures) y Computadores Embebidos.
- 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í
- 12 (doce) Páginas en Español (mínimo 8 páginas), Título y Resumén (abstract) en español y en inglés (máximo 10 lineas).
- Formato IEEE en una columna para series de conferencias http://www.ieee.org/conferences_events/conferences/publishing/templates.html
- 2 (dos) autores por artículo (igualmente distribuidos por el profesor)
- Temáticas Distribuídas por el Profesor
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:
Arquitecturas Escalables: La escalabilidad es una propiedad deseable de un sistema, red o proceso, que indica su habildiad para reaccionar y adaptarse sin perder calidad o manejar los cambios continuos (en crecimiento o decrecimiento) de trabajo de manera fluida sin perder la calidad de los servicios.
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)
- Historial Perspective and Further Reading
- Glossary of Terms in Architecture
- A Survey of RISC Architectures for Desktop, Server and Embedded Computers
2. Patterson and Hennesy, Computer Architecture; A Quantitative Approach
3. TED Talks
- Shimon Schocken: The self-organizing computer course
- [http://www.ted.com/talks/john_graham_cumming_the_greatest_machine_that_never_was.html John Graham-Cumming: The greatest machine that never was
- Kwabena Boahen: A computer that works like the brain