Responsable: | (-) |
Otros: | (-) |
Créditos | Dept. |
---|---|
7.5 (6.0 ECTS) | AC |
Responsable: | (-) |
Otros: | (-) |
Se pretende que el estudiante sea capaz de: comprender el funcionamiento e implementar en bloques un procesador segmentado sencillo con una jerarquía de caché (instrucciones y datos) y con soporte para memoria virtual paginada; comprender el funcionamiento e implementar en bloques un procesador segmentado sencillo con excepciones precisas y soporte para interrupciones externas; comprender el funcionamiento e implementar en bloques técnicas actuales de mejora del rendimiento de un procesador segmentado, incluyendo la ejecución superescalar, la ejecución fuera de orden y técnicas de multitratamiento (multithreading); comprender el funcionamiento e implementar en bloques las técnicas de procesamiento vectorial, aplicadas en particular al soporte de programas multimedia; comprender el funcionamiento de procesadores de propósito específico como los DSP o las tarjetas aceleradoras de gráficos en 3D.
Horas estimadas de:
T | P | L | Alt | L Ext. | Est | O. Ext. |
Teoria | Problemas | Laboratorio | Otras actividades | Laboratorio externo | Estudio | Otras horas fuera del horario fijado |
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 0 | 0 | 0 | 0 | 0 | 2,0 | |||
Revisión de la Ley de Rendimiento y la Ley de Amdhal. Concepto de dependencia de registros y memoria. Revisión del concepto de segmentación. Revisión de los cortocircuitos.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 2,0 | 0 | 0 | 0 | 6,0 | 0 | 14,0 | |||
Repaso del procesador segmentado en 5 etapas. Repaso de la motivación y concepto de la jerarquía de memoria. Introducción de la caché de instrucciones y datos en el procesador. Pipeline de stores: dificultad de implementación uni-ciclo y soluciones. Recordatorio de la memoria virtual. Introducción al concepto TLB. Acoplamiento del TLB en el procesador. Solución a los fallos de TLB. Excepciones precisas: introducción y problemática. Propagación del vector de excepciones. Comunicación con el Sistema Operativo.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 0 | 0 | 0 | 4,0 | 0 | 10,0 | |||
Pipeline de coma flotante. Finalización de instrucciones en desorden. Problemas de conflictos de Write Back. Solución de riesgos WAW. Problema con excepciones precisas: solución reorder buffer y future file (Smith & Plezskun). Problemas con pipelines de stores, dependencias load-store y by-passes.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 0 | 0 | 0 | 2,0 | 0 | 4,0 | |||
Concepto de predicción de saltos. Integración del predictor en el pipeline segmentado. Técnicas de implementación de predictores: 2-bit y con historia.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 0 | 0 | 0 | 4,0 | 0 | 10,0 | |||
Problema de la ordenación dinámica.Renaming centralizado tipo MIPS R10000. Nuevas estructuras: ventana de instrucciones, tabla de renombramiento, lista de graduación (ROB). Implementación Pick & Wakeup. Algoritmo renombramiento registros R10000. Excepciones: recuperación de la tabla renaming. Integración con el predictor: copias de la tabla de renaming. Implementación Free List. Implementación de muerte selectiva de instrucciones.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 1,0 | 0 | 0 | 0 | 2,0 | 0 | 5,0 | |||
Objetivo IPC > 1. Problema Fetch: aprovechar la línea de cache para obtener dos instrucciones por ciclo. Modificaciones a decode: renombrar en cascada. Modificaciones a la ventana: nuevo picker. Modificaciones para retirar instrucciones.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 1,0 | 0 | 0 | 0 | 4,0 | 0 | 9,0 | |||
Concepto thread. Relación con S.O. Objetivo multithreading: aumentar throughput y mejorar eficiencia. Técnicas de multithreading: fine-grain, switch-on-event, simultaneous multithreading. Integración multithreading en el pipeline segmentado desordenado. Ejemplo Pentium-4. Procesadores multi-core.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 2,0 | 0 | 0 | 0 | 6,0 | 0 | 14,0 | |||
Ejecución paralela con múltiples unidades funcionales: problemas y soluciones. Concepto "Single Instruction Multiple Data". Variantes multimedia. Instrucciones específicas vectoriales: acceso a memoria con stride, gather/scatter, ejecución bajo máscara. Implementación del banco de registros vectorial. Acceso a memoria organizada en bancos.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 2,0 | 0 | 0 | 0 | 5,0 | 0 | 12,0 | |||
Pipeline Gráfico. Etapas de proceso: geometry, transform, rasterize, fragment, raster ops. Vertex Shaders, Pixel Shaders, Controlador de Memoria. Etapas de función fija del pipeline. Organización Multithreaded. Sincronización. Caché de texturas.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 14,0 | 0 | 30,0 | 0 | 0 | 44,0 | |||
En las clases de laboratorio se irá desarrollando la implementación (usando LogicWorks) de un procesador segmentado multiciclo superescalar. El procesador hará fetch y retirará dos instrucciones por ciclo. Preferiblemente, los alumnos implementarán un procesador de 2 vías generales, pero sólo será necesario hacer un acceso a la cache de datos por ciclo. El sistema incluirá memoria principal y un controlador de disco con DMA que tendrá que interrumpir al procesador. Opcionalmente, algunos alumnos podrán hacer una versión con 2 threads.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
En este tema se unifican todos los conceptos vistos hasta el momento y se presentan en el contexto de un pipeline y un procesador real (Pentium 4 o Pentium M), para completar aquellos aspectos que han quedado simplificados en los temas anteriores.
|
Total por tipo | T | P | L | Alt | L Ext. | Est | O. Ext. | Total |
41,0 | 12,0 | 14,0 | 0 | 30,0 | 37,0 | 0 | 134,0 | |
Horas adicionales dedicadas a la evaluación | 0 | |||||||
Total horas de trabajo para el estudiante | 134,0 |
Teoría y problemas: Habitual (magistral)
Laboratorio:
Los alumnos realizarán COLECTIVAMENTE una única práctica que consiste en implementar un procesador sencillo con 5, 6 ó 7 etapas, superescalar, multiciclo y con predicción de saltos. El procesador tiene que incluir una jerarquía de cache (instrucciones y datos), y debe compartir datos con un controlador de disco a través del bus y la memoria principal.
Es importante enfatizar que todos los alumnos trabajarán en el MISMO procesador. Es decir, los alumnos se estructuran en grupos por etapas, pero al final tienen que ensamblar todas las piezas del procesador y hacer que funcione. No es necesario destacar el excelente impacto docente, de motivación y de interés que comporta esta metodología de trabajo. Los alumnos se enfrentan a un proyecto real, en el que los diferentes equipos se han de comunicar entre ellos, negociar y llegar a acuerdos, y escoger una implementación que sea simple para todos. Además, el profesor cuida para que no se hagan demasiadas simplificaciones en la implementación, añadiendo presión para que el proyecto se acerque lo máximo posible a la realidad.
La planificación del curso se adapta a la práctica. Al principio se hacen el máximo de clases de teoría (y alguna de problemas) para poder exponer en 4 semanas los conocimientos que permitan iniciar la práctica cuanto antes mejor.
Las sesiones de laboratorio pueden ser indistintamente en el aula de PCs o en el aula de pizarra. En las primeras, los alumnos implementan detalles concretos de la práctica y debuggan los circuitos. Estas sesiones son especialmente útiles en los momentos en los que es necesario integrar las diferentes etapas del procesador.
El segundo tipo de sesiones son las de diseño del procesador, en las que los diferentes grupos discuten la implementación exacta del procesador bajo la supervisión del profesor.
NP1 = Nota Práctica Primera Entrega
NP2 = Nota Práctica Segunda Entrega
NE = Nota Examen
Nota Final = 0.4 NE + 0.2 NP1 + 0.4 NP2
La primera entrega de práctica se hará antes de la mitad del curso para verificar el buen funcionamiento de los componentes básicos del procesador y el buen seguimiento del alumno de los conceptos explicados en teoría y puestos en aplicación en la práctica.
(-)