Saltar al contingut Menu
Mapa
  • Inicio
  • Información
  • Contacto
  • Mapa

Arquitecturas de Computadores Actuales (ACA)

Créditos Dept.
7.5 (6.0 ECTS) AC

Profesores

Responsable:  (-)
Otros:(-)

Objectivos Generales

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.

Objectivos Específicos

Conocimientos

  1. Concepto de jerarquía de memoria, ordenación de instrucciones de "store", técnicas de escritura en la caché, write buffer, merge buffer, cache flush. Dependencias store-load en un pipeline de 2 etapas de write.
  2. Concepto de TLB, soporte a la memoria paginada virtual del Sistema Operativo y gestión de fallos en la TLB.
  3. Concepto de excepciones precisas (y no precisas). Concepto de Interrupción. Impacto de las excepciones e interrupciones en el proceso de segmentación. Recuperación de un estado preciso. Ordenación de excepciones. Implementación del vector de interrupciones.
  4. Concepto de predicción de saltos. Predictores de 2 bits y predictores con historia. Integración del predictor en el pipeline segmentado. Entrenamiento del predictor. Recuperación en caso de error.
  5. Concepto de ejecución desordenada, en las variantes de "completar en desorden" e "iniciar y completar en desorden". Técnica de Reorder Buffer y Futur File de Smith & Plezskun, 1985. Recuperación del estado preciso en caso de excepción e interrupción.
  6. Concepto de renombrar registros. Integración del renombramiento en el pipeline. Integración con Reorder Buffer. Recuperación de la tabla de renombramiento en caso de excepción.
  7. Concepto de selección (pick & wakeup) de instrucciones dentro de una ventana de instrucciones. Control de dependencias entre registros. Control de dependencias entre instrucciones de memoria.
  8. Concepto de ejecución superescalar. Fetch de múltiples instrucciones en un ciclo. Estructuras necesarias para soportar la ejecución de dos instrucciones simultáneas.
  9. Concepto de ejecución multithread. Tipos de multithreading: fine-grain, switch-on-event, simultaneous multithreading. Concepto de Chip-Multiprocessor. Integración de dos threads en el pipeline segmentado fuera de orden con renaming.
  10. Concepto de ejecución vectorial. Ventajas e inconvenientes de la ejecución vectorial. Instrucciones específicas de acceso a memoria (Strides y Gather/Scatter). Particionado del datapath en lanes. Organización de la memoria para accesos vectoriales.
  11. Ejemplo de procesador de propósito específico: embedded, DSP y gráficos 3D. Ejemplo de funcionamiento de procesador gráfico 3D.

Habilidades

  1. Usar con soltura el simulador LogicWorks 4 y LogicWorks 5. Ser capaz de crear un modelo de los procesadores presentados y simularlos.
  2. Usar verilog como lenguaje de modelado de hardware para modelar los procesadores presentados en clase.

Competencias

  1. Capacidad para resolver problemas aplicando los métodos de la ciencia y la ingeniería.
  2. Capacidad para crear y usar modelos de la realidad.
  3. Capacidad para diseñar, realizar experimentos y analizar los resultados.
  4. Saber aplicar el ciclo de resolución de problemas típico de la ciencia y la ingeniería: especificación, generación de ideas y alternativas, diseño de una estrategia de solución, ejecución de la estrategia, validación, interpretación y evaluación de los resultados. Capacidad para analizar el proceso una vez finalizado.
  5. Capacidad para tomar decisiones en presencia de incertidumbre o requisitos contradictorios.
  6. Capacidad para iniciativa: ser resolutivo, saber tomar decisiones y actuar para solucionar un problema.
  7. Capacidad para trabajar efectivamente en grupos grandes de personas para la resolución de un problema complejo.
  8. Capacidad para formar y organizar un equipo, uni o multidisciplinar, para abordar un proyecto complejo.
  9. Capacidad de liderazgo.
  10. Ser capaz de entender y criticar constructivamente las presentaciones de los demás.
  11. Asumir la responsabilidad del propio trabajo.

Contenidos

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

1. Introducción a la arquitectura de los procesadores actuales.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 0 0 0 0 0 2,0
Introducción a los conceptos actuales de arquitectura de procesadores. Repaso de las técnicas de fabricación de procesadores y las restricciones que imponen al arquitecto. Presentación del curso.

2. Revisión de conceptos de arquitectura de computadores
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.

3. El procesador Base
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.

4. Operaciones Multiciclo
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.

5. Predicción de saltos
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.

6. Procesadores con ejecución en desorden
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.

7. Procesadores con ejecución Superescalar
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.

8. Procesadores con ejecución multi-threaded
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.

9. Procesadores con Ejecución Vectorial
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.

10. Aceleradores 3D
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.

11. Implementación de un procesador segmentado multiciclo superescalar de 2 vías con predictor de saltos
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.



  • Actividades de laboratorio adicionales:
    Trabajo personal por parte de los alumnos para tirar adelante la práctica: implementación de los schematics, vectores de prueba, ensamblado de etapas, etc.

12. Procesador Moderno
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

Metodología docente

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.

Método de evaluación

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.

Bibliografía básica

  • David A. Patterson, John L. Hennessy Computer Organization and Design, 3rd Edition, Morgan Kaufmann, 1997.

Bibliografía complementaria

  • Mike L. Johnson Superscalar Microprocessor Design, Prentice Hall, 1991.
  • Bruce D. Shriver, Bennett Smith The Anatomy of a high-performance microprocessor : a systems perspective, IEEE Computer Society Press, 1998.
  • Capilano Computing Systems, Ltd LogicWorks 5 : interactive circuit design software, Prentice Hall, 2004.

Enlaces web

(Información no introducida)

Capacidades previas

(-)


Compartir

 
logo FIB © Facultad de Informática de Barcelona - Contacto - RSS
Esta web utiliza cookies propias para ofrecerle una mejor experiencia y servicio. Si continúa la navegación, entendemos que acepta nuestra política de cookies. Versión clássica Versión móvil