Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Fisica
Área: Area V: Electronica y Microprocesadores
(Programa del año 2016)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DE COMPUTADORAS ING.ELECT.O.S.D 010/05 2016 1° cuatrimestre
ARQUITECTURA DE COMPUTADORAS ING.ELECT.O.S.D 3/03 2016 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
AIRABELLA, ANDRES MIGUEL Prof. Responsable P.Adj Simp 10 Hs
AGUILERA, FACUNDO Responsable de Práctico A.1ra Simp 10 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
90 Hs. 30 Hs. 30 Hs. 30 Hs. 6 Hs. 1º Cuatrimestre 14/03/2016 24/06/2016 15 90
IV - Fundamentación
La creciente demanda de mayor poder computacional de los procesadores ha dado origen a arquitecturas complejas con unidades funcionales especializadas, memorias de alta velocidad, multiprocesadores, división de tareas en etapas concurrentes, ejecución de instrucciones a medida que están disponibles sus operandos, etc. Todas estas particularidades hacen necesaria la aplicación de técnicas y estrategias más complejas que las involucradas en los procesadores simples. La disponibilidad tecnológica existente permite el diseño y desarrollo de arquitecturas de procesadores cada vez más eficientes. Las arquitecturas avanzadas están concebidas para procesar problemas específicos que deben ser identificados y resueltos mediante prácticas de programación especiales.
V - Objetivos / Resultados de Aprendizaje
El objetivo de este curso es darle al alumno los conocimientos necesarios para el diseño de Procesadores. Al finalizar el curso los alumnos deberán poder:
- Explorar los limites Hw/Sw existentes en la arquitectura de los procesadores. Identificar los principales parámetros que miden el desempeño de los procesadores.
- Reconocer las similitudes y diferencias entre las distintas arquitecturas de procesadores.
- Diseñar el datapath de un procesador.
- Conocer las características de los procesadores pipeline y las particularidades consideraras al medir el desempeño de los mismos.
- Comprender el funcionamiento general de los procesadores vector y las particularidades de los problemas que se adecuan a estas arquitecturas.
- Dominar los detalles involucrados en el funcionamiento de los procesadores pipeline con etapas multiciclo y las estrategias empleadas para ejecutar instrucciones fuera de orden.
- Percibir la complejidad requerida para computar soluciones en sistemas de multiprocesadores y las redes de interconexión necesarias en estos sistemas.
- Poseer los fundamentos del diseño de Sistemas integrados Hw/Sw.
- Diseñar, simular y validar las partes individuales de un procesador usando lenguajes HDL.
VI - Contenidos
Unidad 1: Performance en procesadores RISC
Procesadores RISC. Arquitectura del set de instrucciones RISC. Frecuencia y ciclo de reloj. Unidades pequeñas de tiempo. Ecuación de tiempo de CPU. Ciclos por instrucción. Relación entre el ciclo y el tiempo de CPU. Desempeño y tiempo de ejecución. Arquitectura multiciclo. Señales de control y camino de datos. Set de instrucciones y desempeño. Aceleración (speed-up). Ley de Amdahl.

Unidad 2: Instrucciones - Lenguaje de Maquina
Arquitectura MIPS. Set de instrucciones. Operaciones y Operandos en Hardware. Estilos de direccionamiento.

Unidad 3: Aritmética para computadoras
ALU de punto fijo. Algoritmos de Multiplicación y División. Estándares del punto flotante. Unidad de punto flotante.

Unidad 4: Datapath y control del Procesador
Construcción e implementación. Implementaciones multiciclos. Microprogramación, simplificación de diseño. Excepciones. Interrupciones.

Unidad 5: Pipelining
¿Qué es pipelining?. Comportamiento básico del pipeline. Performance ideal. Problemas en los pipe: los hazards. Distintos tipos de hazards: estructurales, de datos y de control. Dependencia de datos. Hazards de datos: RAW, WAW, WAR. Los atascos (stalls). Adelantamiento. Interlock. Impacto de los hazards en el análisis de la performance. Penalidades por branch. Técnicas de predicción de branch. Salto demorado. La implementación de pipeline en MIPS de 5 etapas.

Unidad 6: Paralelismo a nivel de instrucción y Pipelines avanzados. Ejecución multiciclo. Finalización fuera de orden. Latencia e intervalo de iniciación. Superando dependencias de datos con scheduling dinámico de instrucciones. Scoreboarding. Algoritmo de Tomasulo, aplicación en una unidad de punto flotante. Procesadores vector. Instrucciones vector. Procesamiento escalar vs. procesamiento vectorial. Particularidades de los procesadores vector.


Unidad 7: Memorias
Jerarquía de memorias. Memorias cache. Consideraciones generales del empleo de cache. Organizaciones de cache: directas, asociativas y conjunto asociativo. Performance de memorias cache. Tipos de cache: write-back y write-through. Memoria virtual y cache. Comportamiento de la jerarquía de memorias.

Unidad 8: Multiprocesadores
Multiprocesadores y redes de interconexión. Nivel de paralelismo en los programas. Clasificación de Flynn. Arquitecturas de memoria centralizada (UMA) y distribuida (NUMA). Redes de interconexión: consideraciones generales. Sistemas en un chip. Procesadores y Buses. Uso y aplicaciones en Sistemas Embebidos.

VII - Plan de Trabajos Prácticos
Trabajo Práctico 1: Medidas de Performance.
Trabajo Práctico 2: Repaso de VHDL.
Trabajo Práctico 3: Conjunto de instrucciones.
Trabajo Práctico 4: Aritmética de Computadoras.
Trabajo Práctico 5: Camino de datos y control del microprocesador.
Trabajo Práctico 6: Descripción del camino de datos en VHDL
Trabajo Práctico 7: Diseño de un microprocesador.
VIII - Regimen de Aprobación
Regularización
Para regularizar la materia el alumno deberá cumplir con los siguientes requisitos:
- Aprobar dos exámenes parciales, o su correspondiente recuperación sobre los temas dictados en el curso con una nota superior al 70%.
- Haber asistido al menos al 80% de las clases de trabajos prácticos.
- Haber aprobado el 100% de los trabajos prácticos.
- Para la aprobación de los trabajos prácticos será necesario, además de haberlos realizado satisfactoriamente a juicio del responsable del laboratorio, responder correctamente a las preguntas que sobre el tema de la práctica se les formule antes o durante el práctico.
Los alumnos tendrán derecho a una sola recuperación por práctico, pero no más de dos en total.

Promoción
Los mismos requerimientos de la regularización, pero deben:
- Aprobar dos exámenes parciales, o su correspondiente recuperación sobre los temas dictados en el curso con una nota superior al 80%.
- Aprobar un trabajo práctico integrador.

Examen Final
Los alumnos regulares deberán rendir un examen final (que podrá ser oral o escrito) que consistirá en preguntas sobre los temas desarrollados durante el dictado de la materia.
No se contempla la posibilidad de rendir en forma libre la materia
IX - Bibliografía Básica
[1] [1] Computer Organization & design. David Patterson and Jhon L. Hennessy. 2nd Edition. Editorial Morgan Kaufmann. (1998)
[2] [2] Computer architecture a quantitative approach. John Hennessy y David Patterson. 3nd Edition. Editorial Morgan Kaufmann. (2003)
[3] [3] Computer Architecture design and performance. Barry Wilkinson.Editorial Prentice-Hall (1996)
X - Bibliografia Complementaria
[1] [1] Computer Organization & design. David Patterson and Jhon L. Hennessy. 2nd Edition. Editorial Morgan Kaufmann. (1998)
[2] [2] Computer architecture a quantitative approach. John Hennessy y David Patterson. 3nd Edition. Editorial Morgan Kaufmann. (2003)
[3] [3] Computer Architecture design and performance. Barry Wilkinson.Editorial Prentice-Hall (1996)
XI - Resumen de Objetivos
Al finalizar el curso los alumnos deberán poder:
- Identificar los principales parámetros que miden el desempeño de los procesadores.
- Desarrollar diferentes análisis cuantitativos del desempeño de procesadores provistos con memoria cache.
- Conocer las características de los procesadores pipeline y las particularidades consideraras al medir el desempeño de los mismos.
- Comprender el funcionamiento general de los procesadores de arreglo y las particularidades de los problemas que se adecuan a estas arquitecturas.
- Describir el modo en que se realizan las computaciones en los sistemas dataflow.
- Percibir la complejidad requerida para computar soluciones en sistemas de multiprocesadores y las redes interconexiones necesarias en estos sistemas.
XII - Resumen del Programa
Performance en procesadores RISC. Instrucciones- Lenguaje de Maquina. Aritmética para computadoras. Datapath y control del Procesador. Pipelining. Paralelismo a nivel de instrucción y Pipelines avanzados. Memorias. Multiprocesadores
XIII - Imprevistos
 
XIV - Otros