Plantilla Cursos
Arquitectura de Computadores - Código 22966
Profesor
Carlos Jaime Barrios Hernandez, PhD. - (cbarrios@uis.edu.co)
Auxiliatura Técnica-Académica : John Anderson Garcia Henao, Ing. (john.garcia1@correo.uis.edu.co)
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 maquinas 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.0 Arquitectura, Organización y Diseño de Sistemas de Cómputo
1.1. Desarrollo histórico – Ubicación histórica actual
1.2. Clases de Computadoras
1.3.Abstracción y Tecnología de Computación – Tendencias
1.4. Desempeño
1.5. Casos de Estudio
2. Instrucciones y Aritmética para Computador
2.1.Fundamentos de Instrucciones para Computador
2.1.1. Operaciones y Operandos de Hardware de Computadoras
2.1.2. Representación de Instrucciones
2.1.3. Operaciones Lógicas
2.1.4. Instrucciones para la toma de decisiones
2.1.5. Soporte de Procedimientos a nivel de Hardware
2.1.6. Comunicaciones
2.1.7. Arquitectura MIPS
2.1.8. Introducción Paralelismo I – Paralelismo de Instrucciones y el problema de la sincronización
2.1.9. Algunos Aspectos Avanzados
2.1.9.1 Aspectos Arquitecturales de Compilación
2.1.9.2. Fundamentos de Diseño Lógico
2.1.9.3. Mapeo de Hardware
2.1.10. Casos de Estudio
2.2. Introducción y Fundamentos de Aritmética para Computador
2.2.1. Adición y substracción
2.2.2. Multiplicación y División
2.2.3. Introducción al Paralelismo II – Aritmética de computadores y el problema de la asociatividad.
2.2.4. Casos de Estudio
3. Organización y Diseño Arquitectural de Sistemas de Cómputo
3.1. Fundamentos de Organización y Diseño
3.2. Aspectos Básicos de Procesadores
3.2.1. Aspectos Lógicos de Diseño
3.2.1. Pipeline y Control
3.2.2. Paralelismo y Escalabilidad
3.2.3. Casos de Estudio
3.3. Fundamentos de Memoria
3.3.1. Fundamentos de Organización y Diseño
3.3.2. Jerarquía de Memoria
3.3.3. Casos de Estudio
3.4. Aspectos Básicos de Almacenamiento
3.5. Aspectos Básicos de Comunicaciones y Conectividad
3.5.1. Conectividad Interna
3.5.2. Interconectividad y Redes (Introducción)
3.6. Fundamentos de I/O, Gráficas e Interfaces
3.7. Casos de Estudio
4. Tendencias y Direcciones Futuras
4.1. Arquitecturas Híbridas
4.2. Arquitecturas Reconfigurables
4.3. Aspectos Energéticos, Ecológicos y Ambientales
4.4. Arquitecturas Escalables, de Gran Escala y Ecosistemas
4.5. ARMS (Advanced RISC Architectures) y Computadores Embebidos.
4.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.
Sesiones Teóricas (Hasta el II Semestre de 2013)
- Contexto Histórico
- Arquitectura, Organización y Diseño de Sistemas de Cómputo
- Evaluación de Rendimiento / Desempeño
- Abstracción y Tecnología de Computación – Tendencias y Rendimiento
- Aritmética para Computadoras
- Instrucciones para Computadoras
- Introducción al Paralelismo de Instrucciones y al Procesamiento en Paralelo
- Arquitecturas Paralelas
- Almacenamiento e I/O
- Memoria
Sesiones Teóricas (I y II Semestre de 2014)
- Introducción al curso I
- Introducción al curso II
- Contexto Histórico I
- Contexto Histórico II
- Organización y Diseño I
- Organización y Diseño II
- Aritmética para Computadoras
- Evaluación de Rendimiento de Sistemas Computacionales
- Abstracción, Tendencias y Rendimiento
- Arquitectura de Redes de Computadores
- Introducción al Paralelismo de Instrucciones y al Procesamiento en Paralelo
- Arquitecturas Paralelas
- Almacenamiento e I/O
EVALUACIONES
1. Evaluación No. 1 ( 30%) : Martes 2 de Diciembre de 2014 (Hora de Clase)
- Tipo de Participación y Tiempo Programado: En Parejas, 90 minutos
- Recursos a Usar: Solo lapiz y papel. NO SE PERMITIRÁ INTERACCIÓN ENTRE LOS GRUPOS DIFERENTES
- Aspectos a Evaluar: Ubicación en el estado del arte y realidad histórica, sensibilidad hacia el desarrollo tecnológico e identificación de tendencias y perspectivas, conocimiento de la fundamentación de organización y componentes de sistemas de computo, posibilidades actuales técnicas (teniendo en cuenta la realidad del mercado local), matemática computacional y abstracción
- Secciones del curso de guía para la evaluación de acuerdo al contenido del curso: 1., 2. (Principalmente las secciones 2.1.1., 2.1.2.; y de la sección 2.2., las partes 2.2.1., y 2.2.2.)
- EJEMPLO DE SOLUCIÓN A LA EVALUACIÓN 1 (2-2012):
2. Evaluación No. 2 (30%) Martes 17 de Febrero de 2015 (Hora de Clase)
- Tipo de Participación y Tiempo Programado: Individual - Individual, 90 Minutos
- Recursos a Usar: Se permitén apuntes de clase, pero no la interacción con otras personas.
- Aspectos a Evaluar: Conocimientos ténicos de los aspectos vistos en clase y en exposiciones. En tres preguntas realizadas, el estudiante demostrará sus competencias desarrolladas al manejar aspectos ténicos vistos en el desarrollo de la materia.
- Secciones del Curso: Prácticamente todas.
Trabajo de Aplicación (40%)
Indicaciones Generales para los trabajos del Segundo Semestre de 2014:
- Para realizar el trabajo, debe realizar una investigación fundamental del tema propuesto, buscando la definición del mismo, el estado del arte actual y los retos.
- En cada uno de los trabajos se da una referencia bibliográfica o de internet de comienzo. Se deben buscar otras.
- Darle un Titulo al trabajo mas allá del tema dado por el profesor que describa la propuesta.
- El Numero del Trabajo corresponde al Equipo del mismo.
Lista de trabajos
Trabajo 1 : Internet of Things (IoT) y Arquitectura de Computadores
IoT es considerado como una visión. La realidad que todos los dispositivos en el mundo interactúan con los otros, transforma la concepción de dispositivo de computo y por supuesto, redefine su organización y arquitectura. El objetivo de este trabajo es responder por qué esa visión de IoT afecta la organización, arquitectura de cómputo.
Referencia:
http://www.microsoft.com/windowsembedded/en-us/internet-of-things.aspx
Trabajo 2 : Big Data y Arquitectura de Computadores
BIG DATA es un termino muy de moda hoy en dia, pero en realidad, pocos son conscientes de lo que significa el análisis y visualización de millones de millones datos estructurados o no. El objetivo de este trabajo es explicar, por qué las necesidades planteadas por el gran tratamiento de datos en gran escala, debe transformar la tecnología, como la entendemos, como se organiza y concibe las arquitecturas de cómputo.
Referencia:
http://searchcloudcomputing.techtarget.com/definition/big-data-Big-Data
Trabajo 3 : XaaS y Arquitectura de Computadores
La computación en la nube organizó la democratización tecnológica de los servicios de cómputo. Teniendo en cuenta el modelo de servicios inicial de tres niveles, proveedores de servicios proponen nuevas posibilidades de servicios en la nube, como es el caso de XaaS, afectando la tecnología. El objetivo de este trabajo es explicar de que se trata XaaS y como cambia la concepción tecnológica tanto del usuario final, como de los ingenieros/desarrolladores.
Referencia:
Trabajo 4: Computación Cuántica y Arquitectura de Computadores
Mucho se ha expuesto acerca de la computación cuántica, desde lo real hasta lo ficticio. El objetivo de este trabajo es exponer que es en realidad la computación cuántica y como define una arquitectura especial que permite la explotación misma de los bits cuánticos, observando, que tendría que pasar para que se masifique la computación cuántica.
Referencia: https://web.stanford.edu/group/yamamotogroup/research/QC_architecture/layered_framework.html
Trabajo 5: Compiladores y Arquitectura de Computadores
Los compiladores son trascendentales en el uso de cualquier arquitectura de computador. El objetivo de este trabajo es observar cual seria la siguiente generación de compiladores, para explotar mejor no solo las arquitecturas actuales sino las futuras.
Referencia:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4907645
Trabajo 6: Interacción y Arquitectura de Computadores
La interacción usando cámaras o sistemas de realidad aumentada han modificado la manera de relacionarse entre los humanos y las aplicaciones, como es el caso de Microsoft® Kinect o Intel® Creative Commons. El objetivo de este trabajo es identificar como la organización y arquitectura de computadores debe tener en cuenta los dispositivos de interacción hombre maquina.
Referencia:
http://www.creativeapplications.net/processing/kinect-physics-tutorial-for-processing/
Trabajo 7: Almacenamiento y Arquitectura de Computadores
Las necesidades de almacenamiento, del manejo de datos y la interacción entre dispositivos, asi como los servicios en la nube, han cambiado las necesidades tecnológicas. El objetivo de este trabajo es observar las tendencias de que deben seguir los fabricantes para una nueva generación de almacenamiento.
Referencia:
http://phys.org/news/2012-12-storage-next-generation-non-volatile-memory-technology.html
Trabajo 8: Procesamiento Multi-GPU y Arquitectura de Computadores
El uso de GPUs propuesto por NVIDIA® para acelerar aplicaciones mas que una tendencia es una necesidad para cierto tipo de aplicaciones. En plataformas de cómputo de alto rendimiento, la explotación del procesamiento masivamente paralelo, promueve la integración de multiples GPUs en un solo nodo de cómputo. El objetivo de este trabajo es explicar de que se trata y hacer un énfasis en los principales retos y problemas expuestos.
Referencia:
http://www.nvidia.com/object/multi-gpu-technology.html
Trabajo 9: Procesamiento Multi-Intel Xeon Phi y Arquitectura de Computadores
Intel® ha apostado a una generación de coprocesadores para acelerar aplicaciones, teniendo en cuenta que el procesamiento masivamente paralelo explotado por las GPUs de NVIDIA® no pueden resolverlo todo. Este trabajo buscar exponer de que se trata Intel Xeon Phi y como puedo explotar ese procesamiento (o no) al usar múltiples Intel Xeon Phi en un sistema de cómputo, observando las características arquitecturales del sistema.
Referencia:
https://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-codename-knights-corner
Trabajo 10: Exascale Computing y Arquitectura de Computadores
La computación exascale es necesaria para garantizar el avance tecnológico de la humanidad hoy en dia. El objetivo de este trabajo es explicar el por qué y cuales son los retos tecnológicos hoy en dia, observando las diferentes propuestas en el mundo (desde Europa hasta Estados Unidos) y analizar el papel de Colombia y América Latina en la computación Exascale.
Referencia:
http://www.cresta-project.eu/the-exascale-challenge.html
Trabajo 11: Green Computing y Arquitectura de Computadores
La computación verde, mas que una tendencia es una realidad normativa, tecnológica y social. El objetivo de este trabajo es exponer de que se trata, cuales son los retos que plantea y como desde Colombia, como Ingenieros de Sistemas, se deben tener en cuenta los sellos verdes por razones practicas como comerciales.
Referencia:
http://thefutureofthings.com/3083-green-computing/ Evaluación:
Calificación de los informes
- Informe de Avance (10%) --> 3 páginas, Formato libre. Envio por correo con el asunto "Informe de Avance Equipo XX" en un archivo en pdf donde debe contener: presentación de problema y como va a resolver ese problema (ojo, no la solución del problema sino como lo va a resolver). Fecha y hora limite de envio a los emails del profesor e instructora: 04/11/2014 23:59 (GMT - 5)
- Informe Final (10%)-> 8 páginas. Tipo Artículo. Envio por correo con el asunto "Entrega Final Equipo XX" en un archivo en pdf donde debe contener la solucioón del problema. Fecha y hora limite de envio a los emails del profesor e instructora: 06/02/2015 23:59 GMT - 5)
- Propuesta/Solución (10%), Evaluada del articulo y la presentación.
- Presentación Oral (10%) (Martes 10 de febrero de 2015. De 16:00 a 19:00). Presentación exacta de 8 minutos (5 minutos mas 3 minutos de preguntas). Usar diapositivas y debe presentarse lo mas relevante del trabajo.
BIBLIOGRAFÍA Y FUENTES DE INFORMACION
- 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
- Patterson and Hennesy, Computer Architecture; A Quantitative Approach
- TED Talks