Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area II: Sistemas de Computacion
(Programa del año 2023)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DEL PROCESADOR II LIC.CS.COMP. 32/12 2023 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
ARROYUELO BILLIARDI, JORGE A. Prof. Responsable P.Adj Exc 40 Hs
GROSSO, ALEJANDRO LEONARDO Prof. Co-Responsable P.Asoc Exc 40 Hs
ARROYUELO, MONICA DEL VALLE Auxiliar de Práctico 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 B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
0 Hs. 2 Hs. 3 Hs. 1 Hs. 6 Hs. 2º Cuatrimestre 07/08/2023 18/11/2023 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, 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 convencionales. Las arquitecturas avanzadas pueden ser aprovechadas mediante prácticas de programación que tengan en cuenta sus características particulares.
V - Objetivos / Resultados de Aprendizaje
Al finalizar el curso los alumnos deberán poder:
- Identificar los principales parámetros que miden el desempeño de los procesadores.
- Reconocer las similitudes y diferencias entre los distintos esquemas de memorias caché.
- Desarrollar el análisis cuantitativo del desempeño de procesadores provistos con jerarquía
de memoria.
- Conocer las características de los procesadores segmentados y las particularidades
consideradas al medir el desempeño de los mismos.
- Identificar los caminos de datos empleados por los distintos tipos de instrucciones en los
procesadores RISC.
- Determinar cómo se administran las principales unidades funcionales en los procesadores súper-escalares.
- Dominar los detalles involucrados en el funcionamiento de los procesadores superescalares y las estrategias empleadas para ejecutar instrucciones fuera de orden.
- Percibir la complejidad requerida para soportar interrupciones en los sistemas que explotan el paralelismo a nivel de instrucción.
VI - Contenidos
Performance en procesadores RISC. Pipelining. Paralelismo a nivel de instrucción. Pipelinings avanzados. Memorias. Multiprocesadores y redes de interconexión. Arquitecturas reconfigurables. Circuitos y procesadores reconfigurables. Especificación de circuitos reconfigurables sobre FPGA.


Unidad 1: Los procesadores RISC y su desempeño.
Procesadores RISC. El MIPS. Señales de control y camino de datos del MIPS. Conjunto de instrucciones y desempeño. Frecuencia y ciclo de reloj. Tiempo por instrucción. Unidades pequeñas de tiempo. Ecuación de tiempo de CPU. Relación entre el ciclo de reloj y el tiempo de CPU. Desempeño y tiempo de ejecución. Aceleración (speed-up). Corolario de la Ley de Amdahl.

Unidad 2: Procesadores Segmentados (Pipelining).
¿Qué es la segmentación?. Comportamiento básico de los procesadores segmentados. Desempeño ideal. Problemas de la segmentación: los riesgos. Distintos tipos de riesgos: estructurales, de datos y de control. Dependencia de datos. Riesgos de datos: RAW, WAW, WAR. Los atascos (stalls). Adelantamiento. Atascos inevitables. Impacto de los riesgos en el desempeño de los procesadores segmentados. Penalidades por saltos. Predicción dinámica de saltos. Salto demorado. Excepciones. Manejo de las excepciones en procesadores segmentados.

Unidad 3: Organización de la memoria.
Jerarquía de memorias. Memorias caché. Éxito y Fallo. Consideraciones generales del empleo de caché. Organizaciones de caché: directas, asociativas y conjunto asociativo. Desempeño de memorias caché. Tipos de caché: write-back y write-through. Manejo de las escrituras. Comportamiento de la jerarquía de memorias. Penalidades por fallo. Máquina de estados finita de un controlador de caché.

Unidad 4: Paralelismo a nivel de instrucción (Pipelining Avanzados y Multiprocesadores).
Despacho múltiple estático. Desenrrollado de iteraciones en despacho múltiple. Despacho múltiple dinámico. Procesadores Superescalares. Finalización fuera de orden. Scoreboard. Estaciones de reservación. Renombramiento de registros. Buffer de reordenamiento. Algoritmo de Tomasulo. Arquitecturas multiprocesador y multinúcleo.

Unidad 5: Arquitecturas reconfigurables.
Arquitecturas reconfigurables (CPLD y FPGA). Celdas lógicas, bloques I/O y redes de interconexión. Lenguajes de descripción de hardware. Especificación de circuitos combinacionales y secuenciales.

VII - Plan de Trabajos Prácticos
Práctico Nro. 1: Programación assembly.
Práctico de aula. Programación en MIPS32. Camino de datos y señales de control.
Práctico de máquina. Programación usando PathSim

Práctico Nro. 2: Medidas de Performance.
Práctico de aula. Uso del Corolario de la Ley de Amdhal para calcular tiempo con mejora. Uso de la ecuación de tiempo de la CPU. Incidencia de las mejoras.

Práctico Nro. 3: Segmentación y riesgos.
Práctico de aula. Implementación del pipelining del MIPS32. Impacto de problemas en el pipeline: riesgos estructurales y de datos. Los riesgos de control: técnicas utilizadas para las
instrucciones de salto. Planificación estática de instrucciones para reducir los riesgos.
Práctico de máquina. Programación usando DrMIPS.

Práctico Nro. 4: Distintas organizaciones de memoria caché.
Práctico de aula. Técnicas de ubicación de bloques en correspondencia directa, conjuntos asociativos y completamente asociativa. Pasos en la lectura y escritura de la memoria
caché. Reduciendo los fallos de caché: Incidencia del tamaño de la caché en el desempeño de los procesadores.
Práctico de máquina: uso del simulador SMPCache.

Práctico Nro. 5: Paralelismo a nivel de instrucción.
Práctico de aula. Algoritmo de scoreboarding. Manejo de los distintos tipos de riesgos.
Algoritmo de Tomasulo. Renombramiento. Buffer de reorganización. Arquitecturas multiprocesador y multinúcleo.

Práctico Nro. 6: Arquitecturas reconfigurables.
Práctico de Aula: Especificación de circuitos combinacionales y secuenciales en lenguaje Verilog.
VIII - Regimen de Aprobación
- Regularización
Para regularizar la materia el alumno deberá cumplir con los siguientes requisitos:
Aprobar los dos exámenes parciales, o alguna de sus dos recuperaciones, con nota mayo o igual a 7 (siete). Además, tener una asistencia a clases superior al 70%.

- Promoción
Para promocionar la materia el alumno deberá cumplir con los siguientes requisitos:
Aprobar los exámenes parciales, o alguna de sus dos recuperaciones, con nota mayor o igual a 7 (siete) y un trabajo integrador de contenidos de la materia con nota mayor o igual a 7(siete). La nota de promoción se computa mediante el promedio de los exámenes parciales y el trabajo integrador. Además, se deberá mostrar compromiso con la materia a través de asistencia superior al 80% de las clases y mediante la realización de los prácticos de aula y máquina solicitados como método de evaluación continua realizado por la cátedra.

- 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.

- Alumnos libres
Los alumnos que desean rendir libre la materia se deberán poner en contacto con la cátedra con 5 días de anticipación a los efectos de elaborar un práctico, el cual contendrá ejercicios similares a los desarrollados en los prácticos durante el dictado de la materia. Luego de aprobar este trabajo práctico el alumno tendrá derecho a rendir el examen con iguales características que los alumnos regulares.
IX - Bibliografía Básica
[1] [1] Computer Organization & Design. David A. Patterson and John L. Hennessy. 5th Edition. Editorial Morgan Kaufmann. (2014)
[2] [2] Microprocessor Architecture. From simple pipeline to chip multiprocessor. Jean-Loup Baer. (2010)
[3] [3] Computer architecture a quantitative approach. John Hennessy y David Patterson. 5th Edition. Editorial Morgan Kaufmann. (2013)
[4] [4] Garp: A MIPS Processor with a Reconfigurable Coprocessor. John R. Hauser and John Wawrzynek. Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM '97, April 16–18, 1997), pp. 24–33.
[5] [5] Computer Architecture, design and performance. Barry Wilkinson. Editorial Prentice-Hall (1996).
[6] [6] Modern Processor Design, Fundamentals of Superscalar Processors. John Paul Shen, Mikko H. Lipasti - Mc Graw Hill (2005).
X - Bibliografia Complementaria
[1] [1] Zemian & otros, “The PH processor: a soft embedded core for use in university research and teaching”
[2] [2] P.M. Sailer & D.R. Kaeli "The DLX Instruction Set Architecture Handbook" Morgan Kaufmann, 1996.
[3] [3] M.Flynn, “Computer engineering 30 years after the IBM Model 91". IEEE, April 1998. Pag 27--31.
[4] [4] D.A. Pattersson, D.R. Ditzel "The Case for the Reduced Instruction Set Computer" Commun. ACM, year 1985, num.1, vol.28, pag.8--21
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 caché.
- Conocer las características de los procesadores segmentados y superescalares; considerar las particularidades al medir el desempeño de los mismos.
- Percibir la complejidad requerida para computar soluciones en sistemas súper-escalares.
XII - Resumen del Programa
Medidas de performance/desempeño. Jerarquía de memorias. Memorias caché. Procesadores segmentados. Tipos de riesgos. Desempeño en sistemas segmentados. Impacto de los saltos condicionales en un procesador segmentado. Predicción de saltos. Planificación dinámica de instrucciones. Coherencia de cache. Procesadores superescalares. El paralelismo a nivel de instrucciones y las interrupciones.
XIII - Imprevistos
 
XIV - Otros
Comunicarse con la cátedra Arquitectura del Procesador II.
bjarroyu@unsl.edu.ar - jarroyu@gmail.com
Departamento de Informática.
Facultad de Cs. Físico, Matemáticas y Naturales.
Universidad Nacional de San Luis.
Ejército de los Andes 950. CP D5700HHW. Bloque II, 1ºpiso, Box 22
Tel 0266 4520300 Interno 2122