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 2017)
(Programa en trámite de aprobación)
(Programa presentado el 31/03/2017 08:51:38)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DE COMPUTADORAS ING.ELECT.O.S.D 010/05 2017 1° cuatrimestre
ARQUITECTURA DE COMPUTADORAS ING.ELECT.O.S.D 13/08 2017 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
AIRABELLA, ANDRES MIGUEL Prof. Responsable P.Adj Exc 40 Hs
AGUILERA, FACUNDO Responsable de Práctico A.1ra Simp 10 Hs
PALAVECINO NICOTRA, MAURICIO R Auxiliar 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 13/03/2017 23/06/2017 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
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 límites Hw/Sw existentes en la arquitectura de los procesadores. Identificar que partes de la solución conviene implementar como software y que partes como hardware.
- 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.
- Percibir la complejidad requerida para computar soluciones en sistemas de multiprocesadores y las redes de interconexión necesarias en estos sistemas.
- Diseñar, simular y validar las partes individuales y sistemas completos de procesadores usando lenguajes HDL.
VI - Contenidos
Unidad 1: Abstracción y Tecnología
Tipos de computadoras tradicionales y sus características: PC, servidores, supercomputadoras, sistemas embebidos. Dispositivos actuales y tendencias: Cloud Computing, SaaS. 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. Aceleración (speed-up). Ley de Amdahl. Eficiencia energética en el procesador.

Unidad 2: Instrucciones – El lenguaje de la computadora
Set de instrucciones. Operaciones en Hardware. Operando en Hardware: Memoria e inmediatos. Números con y sin signo. Formato de Instrucciones LEGv8. Operaciones Lógicas. Instrucciones para la toma de decisiones. Llamados a procedimientos. Comunicación con el mundo exterior. Estilos de direccionamiento. Direccionamiento para inmediatos y direcciones extendidas. Proceso SW-HW: Traducción del programa.

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

Unidad 4: Datapath y control del Procesador
Implementación de un LEGv8. Implementación Monociclo: Metodología de clocking. Implementaciones multiciclos. Construcción del Datapath. Control de ALU y Unidad de Control.

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. Datapath con Pipeline y Control. Riesgo de datos: Forwarding vs Stalling. Hazards de datos: RAW, WAW, WAR. Riesgos de Control. Excepciones.

Unidad 6: Paralelismo a nivel de instrucción y Pipelines avanzados
Especulación. Static Multiple Issue. Dynamic Multiple Issue. Scheduling dinámico de instrucciones. Los Pipeline de ARM Cortex-A53 e Intel Core i7 920.

Unidad 7: Jerarquía de Memorias
Tecnología de Memorias. Consideraciones básicas 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. Paralelismo y Jerarquías de Memorias. RAID.

Unidad 8: Multiprocesadores
Multiprocesadores y redes de interconexión. Flujo de Instrucciones: SISD, MIMD, SIMD, SPMD y Vector. Hardware Multithreading. Múltiples núcleos y otras arquitecturas de memoria compartida. Introducción a las GPU.

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] Computer Organization & Design. The hardware/Software Interface. ARM Edition. David A. Patterson and Jhon L. Hennessy. Editorial Morgan Kaufmann. (2017)
[2] Computer Organization & design. David Patterson and Jhon L. Hennessy. 2nd Edition. Editorial Morgan Kaufmann. (1998)
[3] Computer architecture a quantitative approach. John Hennessy y David Patterson. 3nd Edition. Editorial Morgan Kaufmann. (2003)
[4] Computer Architecture design and performance. Barry Wilkinson.Editorial Prentice-Hall (1996)
X - Bibliografia Complementaria
[1] Roland N. Ibbett "HASE DLX Simulation Model" IEEE Micro, Vol 20, no 3, p 57-65, 2000.
[2] P.M. Sailer & D.R. Kaeli "The DLX Instruction Set Architecture Handbook" Morgan Kaufmann, 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