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 2014)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DEL PROCESADOR II LIC.CS.COMP. 32/12 2014 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
AGUIRRE, GUILLERMO CARLOS Prof. Responsable P.Adj Exc 40 Hs
GROSSO, ALEJANDRO LEONARDO Prof. Colaborador P.Adj Exc 40 Hs
ARROYUELO BILLIARDI, JORGE A. Responsable de Práctico JTP Exc 40 Hs
ARROYUELO, MONICA DEL VALLE Auxiliar de Práctico A.1ra Exc 40 Hs
POHN, LIAN AGUSTIN Auxiliar de Práctico A.2da 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
 Hs. 3 Hs. 2 Hs. 1 Hs. 6 Hs. 2º Cuatrimestre 19/08/2014 28/11/2014 15 90
IV - Fundamentación
La creciente demenda 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 intrucciones 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 deberan 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 cache.

*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 consideraras al medir el desempeño de los mismos.

*Dominar los detalles involucrados en el funcionamiento de los procesadores segmentados con etapas multiciclo y las estrategias empleadas para despachar instrucciones fuera de orden.

*Percibir la complejidad requerida al computar soluciones en sistemas de multiprocesadores y las redes de interconexion necesarias en estos sistemas.

*Determinar como se clasifican los diferentes procesadores según el nivel de paralelismo que presentan.

*Desarrollar pequeños sistemas en VHDL.
VI - Contenidos
Unidad 1: Midiendo el desempeño de los procesadores.
Procesadores RISC. El MIPS. Señales de control y camino de datos. Conjunto de instrucciones y desempeño. Frecuencia y ciclo de reloj. Tiempo de cada 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). Ley de Amdahl.

Unidad 2: Procesadores segmentados.
¿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. Salto demorado. Predicción dinámica de saltos. Manejo de las excepciones.

Unidad 3: Segmentación avanzada.
Ejecución multi-ciclo. Finalización fuera de orden. Latencia e intervalo de iniciación. Planificación dinámica de instrucciones. Scoreboarding. Algoritmo de Tomasulo, aplicación en una unidad de punto flotante. Aquitectura del ARM Cortex-A8. Programación con planificación dinámica. Especulación

Unidad 4: Organización de las Memorias.
Jerarquía de memorias. Memorias cache. Éxito y Falla. 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. Comportamiento de la jerarquía de memorias. Penalidades por falla. Desempeño considerando el uso de la jerarquía de memoria. Caso de estudio: Jerarquía de memoria del ARM Cortex-A8.

Unidad 5: Multiprocesadores y redes de interconexión.
Nivel de paralelismo en los programas. Clasificación de Flynn. Arquitecturas de memoria centralizada (UMA) y distibuida (NUMA). Redes de interconexión: consideraciones generales. Interconexiones dinámicas. Esquemas de única etapa y de múltiples etapas. Sistemas de buses. Redes crossbar. Redes Omega. Redes bloqueantes y no bloqueantes. Cache en sistemas de multiprocesadores. Coherencia de cache. Protocolos snoopy y directorio. Modelo de consistencia. Sincronización.

Unidad 6: Aquitecturas Reconfigurables.
Lenguaje de descripción de harware. Elementos básicos de VHDL. Paquete. Entidad. Arquitectura. Sentencias concurrentes y secuenciales. Circuitos y procesadores reconfigurables. Especificación de circuitos reconfigurables sobre FPGA.

VII - Plan de Trabajos Prácticos
Práctico Nro. 1: Programación assembly.
Práctica de programación. Programación en MIPS.

Práctico Nro. 2: Medidas de performance.
Práctico de aula. Uso de la Ley de Amdhal para el cálculo de la perfomance ganada por una mejora (Speedup). Uso de la ecuación de la CPU. Camino de datos.

Prácticos Nro. 3 : Segmentación y riesgos.
Práctico de aula. Implementación de la segmentación en el MIPS. Impacto de problemas de la segmentación: riesgos estructurales y riesgos 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ácticos Nro. 4 : Planificación Dinámica
Práctico de aula. Algoritmo de scoreboarding. Manejo de los distintos tipos de riesgos. Algoritmo de Tomasulo. Scoreboarding vs. Tomasulo

Práctico Nro. 5: Distintas organizaciones de memoria cache.
Práctico de aula. Técnicas de ubicaciones de bloques: mapeo directo, conjuntos asociativos, memoria completamente asociativa. Pasos en la lectura y escritura de la memoria cache. Reduciendo las fallas de cache: Incidencia del tamaño de la cache en el desempeño de los procesadores.

Práctico Nro. 6: Programación en VHDL.
Práctica de laboratorio con VHDL. Diseño e implementación en VHDL de un CPU capaz de ejecutar un pequeño conjunto de instrucciones.
VIII - Regimen de Aprobación
* Regularización
Para regularizar la materia el alumno deberá cumplir con los siguientes requisitos:
Aprobar un examen parcial, o su correspondiente recuperación sobre temas que abarcan las cuatro primeras unidades.
Aprobar los cuestionarios sobre cada unidad de la materia. El cuestionario final puede ser defendido y presentado en grupos de 2 alumnos.
Aquellos alumnos que estén en condiciones tendrán derecho a una recuperación adicional por trabajo.
Mostrar compromiso con la materia a través de asistencia regular a clase y realización de los prácticos de aula y máquina.

* 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 realizar un práctico, el cual contendrá ejercicios similares a los desarrollados en los prácticos durante el dictado de la materia. Aprobando éste trabajo práctico el alumno tendrá derecho a rendir un examen oral con iguales características que el de los alumnos regulares.
IX - Bibliografía Básica
[1] Computer Organization & Design. David Patterson and Jhon L. Hennessy. 5th Edition. Editorial Morgan Kaufmann. (2014)
[2] Computer architecture a quantitative approach. John Hennessy y David Patterson. 5th Edition. Editorial Morgan Kaufmann. (2013)
[3] Parallel Computer Architecture: A Hardware/Software Approach. David Culler, J.P. Singh, Anoop Gupta. (1998)
X - Bibliografia Complementaria
[1] Computer Architecture design and performance. Barry Wilkinson.Editorial Prentice-Hall (1996).
[2] Zemian & otros, “The PH processor: a soft embedded core for use in university research and teaching”
[3] P.M. Sailer & D.R. Kaeli "The DLX Instruction Set Architecture Handbook" Morgan Kaufmann, 1996.
[4] M.Flynn, “Computer engineering 30 years after the IBM Model 91"
[5] 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 deberan poder:

*Identificar los principales parámetros que miden el desempeño de los procesadores.

*Desarrollar diferentes analisis cuantitativos del desempeño de procesadores provistos con memoria cache.

*Conocer las características de los proccesadores sementados 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 interconexión necesarias en estos sistemas.

*Desarrolar programas simples en VHDL.
XII - Resumen del Programa
Medidas de performance. Jerarquía de memorias. Memorias cache. Procesadores segmentados. Tipos de riesgos. Desempeño en sistemas segmentados. Impacto de los saltos condicionales en un procesador segmentado. Predicción de saltos. Procesador segmentado multiciclo. Latencia e intervalo de iniciación. Planificación dinámica de instrucciones. Multiprocesadores. Arquitecturas UMA y NUMA. Coherencia de cache. Nivel de paralelismo de los programas. Sistemas de interconexión. Programación en VHDL.
XIII - Imprevistos
Comunicarse con la cátedra.
Arquitectura del Procesador II.
gaguirre@unsl.edu.ar
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 25
Tel 0266 4520300 Interno 2125
XIV - Otros