Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Electrónica
Área: Electrónica
(Programa del año 2024)
(Programa en trámite de aprobación)
(Programa presentado el 27/03/2024 11:27:02)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DE COMPUTADORAS ING.ELECT.O.S.D 13/08 2024 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
DONDO GAZZANO, JULIO DANIEL Prof. Responsable P.Asoc Exc 40 Hs
ANDRADA TIVANI, ASTRI EDITH Prof. Co-Responsable JTP Exc 40 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 C - Teoria con prácticas de aula Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
 Hs. 3 Hs. 3 Hs.  Hs. 6 Hs. 1º Cuatrimestre 11/03/2024 21/06/2024 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 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. 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 RISC-V. 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 RISC-V. Implementación Monociclo: Metodología de clocking. 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 RISC-V.

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 N°1: Medidas de Performance.
Trabajo Práctico N°2: Conjunto de instrucciones.
Trabajo Práctico N°3: Desarrollo de un RISC-V usando vhdl
Trabajo Práctico Nº4: Camino de datos y control del microprocesador. Uso de un microprocesador descrito en VHDL.
Trabajo Práctico N°5: Conectando un conjunto de memorias de una FPGA a un RISC-V.
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.

Promocion y Examen Final
Los alumnos regulares podran promocionar la asignatura si aprueban el 100% de los practicos y los dos parciales teoricos con una nota no menor a 7
En caso de no promocionar 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. RISC-V Edition. David A. Patterson and Jhon L. Hennessy. Editorial Morgan Kaufmann. (2018)
[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
 
XIV - Otros