Difference between revisions of "Arquitectura de computadores"

From Supercomputación y Cálculo Científico UIS
Line 279: Line 279:
 
         <div class="panel-body">
 
         <div class="panel-body">
 
             <p>
 
             <p>
<ol>
+
                <ol>
<li>Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface)</li>
+
                    <li>Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface)</li>
<ul>
+
                        <ul>
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/yESO6hy4SIcOkSX Historial Perspective and Further Reading]</li>
+
                            <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/yESO6hy4SIcOkSX Historial Perspective and Further Reading]</li>
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/a8rmDRjBK2Fuj7p Glossary of Terms in Architecture]</li>
+
                            <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/a8rmDRjBK2Fuj7p Glossary of Terms in Architecture]</li>
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/gtmV8SRVq07wZRL A Survey of RISC Architectures for Desktop, Server and Embedded Computers]</li>
+
                            <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/gtmV8SRVq07wZRL A Survey of RISC Architectures for Desktop, Server and Embedded Computers]</li>
</ul>
+
                    </ul>
<li>Patterson and Hennesy, Computer Architecture; A Quantitative Approach</li>
+
                <li>Patterson and Hennesy, Computer Architecture; A Quantitative Approach</li>
<li>TED Talks</li>
+
                <li>TED Talks</li>
<ul>
+
                    <ul>
<li>[http://www.ted.com/talks/shimon_schocken_the_self_organizing_computer_course.html Shimon Schocken: The self-organizing computer course]</li>
+
                        <li>[http://www.ted.com/talks/shimon_schocken_the_self_organizing_computer_course.html Shimon Schocken: The self-organizing computer course]</li>
<li>[http://www.ted.com/talks/john_graham_cumming_the_greatest_machine_that_never_was.html John Graham-Cumming: The greatest machine that never was]</li>
+
                        <li>[http://www.ted.com/talks/john_graham_cumming_the_greatest_machine_that_never_was.html John Graham-Cumming: The greatest machine that never was]</li>
<li>[http://www.ted.com/talks/kwabena_boahen_on_a_computer_that_works_like_the_brain#t-13231 Kwabena Boahen: A computer that works like the brain]</li>
+
                        <li>[http://www.ted.com/talks/kwabena_boahen_on_a_computer_that_works_like_the_brain#t-13231 Kwabena Boahen: A computer that works like the brain]</li>
</ul>
+
                    </ul>
</ol>
+
                </ol>
 
             </p>           
 
             </p>           
 
         </div>
 
         </div>
Line 305: Line 305:
 
         </div>
 
         </div>
 
         <div class="panel-body">
 
         <div class="panel-body">
 +
            <p>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. </p>
 +
            <p>Sesiones Teóricas (Hasta el II Semestre de 2013)</p>
 
             <p>
 
             <p>
 
                 <ul>
 
                 <ul>
                    <li></li>
+
                    <li>Contexto Histórico</li>
 +
                    <li>Arquitectura, Organización y Diseño de Sistemas de Cómputo</li>
 +
                    <li>Evaluación de Rendimiento / Desempeño/li>
 +
                    <li>Abstracción y Tecnología de Computación – Tendencias y Rendimiento</li>
 +
                    <li>Aritmética para Computadoras</li>
 +
                    <li>Instrucciones para Computadoras</li>
 +
                    <li>Introducción al Paralelismo de Instrucciones y al Procesamiento en Paralelo</li>
 +
                    <li>Arquitecturas Paralelas</li>
 +
                    <li>Almacenamiento e I/O</li>
 +
                    <li>Memoria</li>
 
                 </ul>
 
                 </ul>
             </p>          
+
             </p>
 +
            <p>Sesiones Teóricas (I y II Semestre de 2014) </p>
 +
            <p>
 +
                <ul>
 +
                    <li>Introducción al curso</li>
 +
                    <li>Contexto Histórico</li>
 +
                    <li>Organización y Diseño</li>
 +
                    <li>Aritmética para Computadoras</li>
 +
                    <li>Evaluación de Rendimiento de Sistemas Computacionales</li>
 +
                    <li>Abstracción, Tendencias y Rendimiento</li>
 +
                    <li>Arquitectura de Redes de Computadores</li>
 +
                    <li>Introducción al Paralelismo de Instrucciones y al Procesamiento en Paralelo</li>
 +
                    <li>Arquitecturas Paralelas</li>
 +
                    <li>Almacenamiento e I/O</li>
 +
                </ul>
 +
            </p>       
 +
       
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 
</div>
 
</div>

Revision as of 20:52, 15 April 2015


Logo_sc33.png

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


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):
    • TEMA 1: Tema 1
    • TEMA 2: Tema 2

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:

  1. 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.
  2. En cada uno de los trabajos se da una referencia bibliográfica o de internet de comienzo. Se deben buscar otras.
  3. Darle un Titulo al trabajo mas allá del tema dado por el profesor que describa la propuesta.
  4. 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:

http://www.accenture.com/us-en/Pages/insight-cloud-meets-reality-scaling-succeed-new-business-models.aspx


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

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/li>
  • 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
  • Contexto Histórico
  • Organización y Diseño
  • 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