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 |
I - Oferta Académica | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
II - Equipo Docente | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
III - Características del Curso | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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 |
---|
|