Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Tesis de Grado de Ingenierı́a Electrónica Diseño, Implementación y Evaluación de un procesador multi-núcleo Alumno: Sr. Federico Giordano Zacchigna Director: Dr. Ing. Ariel Lutenberg Laboratorio de Sistemas Embebidos Facultad de Ingenierı́a Universidad de Buenos Aires 13/08/2012 Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos MOTIVACIÓN Y OBJETIVOS Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Motivación I El aumento del uso de procesadores multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Motivación I I El aumento del uso de procesadores multi-núcleo La tendencia a aumentar el número de núcleos de los procesadores Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Motivación I I I El aumento del uso de procesadores multi-núcleo La tendencia a aumentar el número de núcleos de los procesadores La flexibilidad que brindan los procesadores multi-núcleos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Motivación I I I I El aumento del uso de procesadores multi-núcleo La tendencia a aumentar el número de núcleos de los procesadores La flexibilidad que brindan los procesadores multi-núcleos La flexibilidad que brindan los soft-cores implementados en FPGAs para los sitemas embebidos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Motivación I I I I I El aumento del uso de procesadores multi-núcleo La tendencia a aumentar el número de núcleos de los procesadores La flexibilidad que brindan los procesadores multi-núcleos La flexibilidad que brindan los soft-cores implementados en FPGAs para los sitemas embebidos La falta de procesadores de código libre, para realizar investigaciones Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Motivación I I I I I I El aumento del uso de procesadores multi-núcleo La tendencia a aumentar el número de núcleos de los procesadores La flexibilidad que brindan los procesadores multi-núcleos La flexibilidad que brindan los soft-cores implementados en FPGAs para los sitemas embebidos La falta de procesadores de código libre, para realizar investigaciones Continuar con la lı́nea de investigación sobre procesadores multi-núcleos, sobre su funcionamiento bajo efectos de radiación e interferencia electromagnética Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Objetivos I Diseñar un procesador multi-núcleo que sea sintetizable en una FPGA Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Objetivos I Diseñar un procesador multi-núcleo que sea sintetizable en una FPGA I Que el número de núcleos sea parametrizable Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Objetivos I Diseñar un procesador multi-núcleo que sea sintetizable en una FPGA I Que el número de núcleos sea parametrizable I Que el diseño sea simple Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Motivación Objetivos Objetivos I Diseñar un procesador multi-núcleo que sea sintetizable en una FPGA I Que el número de núcleos sea parametrizable I Que el diseño sea simple I Realizar una evaluación del desempeño Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia INTRODUCCIÓN Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Paralelización Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Paralelización Clasificación de Flynn Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Paralelización Clasificación de Flynn I SISD: En inglés Single Instruction Single Data. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Paralelización Clasificación de Flynn I I SISD: En inglés Single Instruction Single Data. SIMD: En inglés Single Instruction Multiple Data. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Paralelización Clasificación de Flynn I I I SISD: En inglés Single Instruction Single Data. SIMD: En inglés Single Instruction Multiple Data. MISD: En inglés Multiple Instruction Single Data. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Paralelización Clasificación de Flynn I I I I SISD: En inglés Single Instruction Single Data. SIMD: En inglés Single Instruction Multiple Data. MISD: En inglés Multiple Instruction Single Data. MIMD: En inglés Multiple Instruction Multiple Data. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I Inicio Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I Dependencias Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Instrucciones sin dependencia 1 add $ 1 , $ 2 , $3 2 sub $ 4 , $ 2 , $3 Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Instrucciones sin dependencia 1 add $ 1 , $ 2 , $3 2 sub $ 4 , $ 2 , $3 Instrucciones con dependencia 1 add $ 1 , $ 2 , $3 2 sub $ 4 , $ 1 , $3 Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I Dependencias Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I Dependencias Pipeline Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros IF ID EX Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia MEM WB Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros IF ID Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia EX MEM INSTRUCCIONES Ciclo 1 INSTRUCCIÓN 1 INSTRUCCIÓN 2 INSTRUCCIÓN 3 IF ID WB Ciclo 2 Ciclo 3 EX MEM WB IF ID EX MEM WB IF ID EX TIEMPO Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica EX MEM REGISTROS ID Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia REGISTROS REGISTROS IF REGISTROS IF Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros WB CLK INSTRUCCIONES Ciclo 1 INSTRUCCIÓN 1 INSTRUCCIÓN 2 INSTRUCCIÓN 3 IF ID Ciclo 2 Ciclo 3 EX MEM WB IF ID EX MEM WB IF ID EX TIEMPO Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica EX MEM REGISTROS ID Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia REGISTROS REGISTROS IF REGISTROS IF Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros WB CLK INSTRUCCIONES Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo 1 3 4 5 6 7 8 9 2 INSTRUCCIÓN 1 INSTRUCCIÓN 2 INSTRUCCIÓN 3 INSTRUCCIÓN 4 INSTRUCCIÓN 5 IF ID IF EX MEM WB ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB TIEMPO Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I Dependencias Pipeline Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I Dependencias Pipeline Multiple issue slots Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia INSTRUCCIONES Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo 1 3 4 5 6 7 8 9 2 INSTRUCCIÓN 1 INSTRUCCIÓN 2 INSTRUCCIÓN 3 INSTRUCCIÓN 4 INSTRUCCIÓN 5 IF ID IF EX MEM WB ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB TIEMPO Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia INSTRUCCIONES Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo 1 3 4 5 6 7 8 9 2 INSTRUCCIÓN 1 INSTRUCCIÓN 2 INSTRUCCIÓN 3 INSTRUCCIÓN 4 INSTRUCCIÓN 5 IF ID IF EX MEM WB ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB TIEMPO INSTRUCCIONES Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo 1 2 3 4 5 6 7 8 9 INSTRUCCIÓN 1 INSTRUCCIÓN 2 INSTRUCCIÓN 3 INSTRUCCIÓN 4 INSTRUCCIÓN 5 INSTRUCCIÓN 6 INSTRUCCIÓN 7 INSTRUCCIÓN 8 INSTRUCCIÓN 9 INSTRUCCIÓN 10 IF IF ID ID IF IF EX MEM WB EX MEM WB ID EX MEM WB ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM IF ID EX MEM IF ID EX IF ID EX WB WB MEM WB MEM WB TIEMPO Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I Dependencias Pipeline Multiple issue slots Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I Dependencias Pipeline Multiple issue slots Limitaciones Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Procesador ideal: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Procesador ideal: I El lı́mite de la ILP es impuesto por el flujos de datos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Procesador ideal: I I El lı́mite de la ILP es impuesto por el flujos de datos Este lı́mite no se alcanza en un procesador real Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesador ideal: I I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El lı́mite de la ILP es impuesto por el flujos de datos Este lı́mite no se alcanza en un procesador real Idealmente se tiene: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesador ideal: I I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El lı́mite de la ILP es impuesto por el flujos de datos Este lı́mite no se alcanza en un procesador real Idealmente se tiene: I Infinitos registros Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesador ideal: I I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El lı́mite de la ILP es impuesto por el flujos de datos Este lı́mite no se alcanza en un procesador real Idealmente se tiene: I I Infinitos registros Ventana de programa infinita Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesador ideal: I I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El lı́mite de la ILP es impuesto por el flujos de datos Este lı́mite no se alcanza en un procesador real Idealmente se tiene: I I I Infinitos registros Ventana de programa infinita Perfectas predicciones Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesador ideal: I I I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El lı́mite de la ILP es impuesto por el flujos de datos Este lı́mite no se alcanza en un procesador real Idealmente se tiene: I I I I Infinitos registros Ventana de programa infinita Perfectas predicciones Perfecto análisis de aliasing de memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I Dependencias Pipeline Multiple issue slots Limitaciones Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción I Tareas Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Procesos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesos I Hilos Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesos I Hilos I Sistemas operativos Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesos I Hilos I Sistemas operativos I Planificación de tareas Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Procesos I Hilos I Sistemas operativos I Planificación de tareas I Programación distribuida Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción I Tareas Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción I I Tareas Multi-threading Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Ejecución normal de tareas: TAREA B TAREA C TAREA D ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS TIEMPO TAREA A Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Ejecución normal de tareas: Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Ejecución de tareas con MT: TAREA C TAREA D MT GRUESO MT FINO SMT ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS ISSUE SLOTS TIEMPO TAREA B TIEMPO TAREA A Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción I I Tareas Multi-threading Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción I I I Tareas Multi-threading Multi-procesadores Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Múltiples núcleos interconectados NÚCLEO NÚCLEO NÚCLEO Inteconexión entre núcleos, memoria y dispositivos de entrada/salida NÚCLEO ENTRADA / SALIDA MEMORIA Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Dependencias Pipeline Multiple issue slots Limitaciones Paralelismo a nivel de instrucción I I I Tareas Multi-threading Multi-procesadores Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Evolución I I Inicio Paralelismo a nivel de instrucción I I I I I Paralelismo a nivel de instrucción I I I I Dependencias Pipeline Multiple issue slots Limitaciones Tareas Multi-threading Multi-procesadores Consumo y frecuencia Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El consumo de potencia en un circuito digital esta dado por: Potdisipada ∝ f × CL × V 2 Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El consumo de potencia en un circuito digital esta dado por: Potdisipada ∝ f × CL × V 2 I Mejorar la tecnologı́a Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El consumo de potencia en un circuito digital esta dado por: Potdisipada ∝ f × CL × V 2 I Mejorar la tecnologı́a I Limitación en la tecnologı́a Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El consumo de potencia en un circuito digital esta dado por: Potdisipada ∝ f × CL × V 2 I Mejorar la tecnologı́a I Limitación en la tecnologı́a I Bajar la frecuencia Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El consumo de potencia en un circuito digital esta dado por: Potdisipada ∝ f × CL × V 2 I Mejorar la tecnologı́a I Limitación en la tecnologı́a I Bajar la frecuencia I Apagar los núcleos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia El consumo de potencia en un circuito digital esta dado por: Potdisipada ∝ f × CL × V 2 I Mejorar la tecnologı́a I Limitación en la tecnologı́a I Bajar la frecuencia I Apagar los núcleos I Núcleos asimétricos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Aumentar la flexibilidad Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Aumentar la flexibilidad I Bajar el consumo Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Aumentar la flexibilidad I Bajar el consumo I Aumentar la potencia Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Aumentar la flexibilidad I Bajar el consumo I Aumentar la potencia I Multi-procesadores Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Aumentar la flexibilidad I Bajar el consumo I Aumentar la potencia I Multi-procesadores I Procesadores multi-núcleo Federico G. Zacchigna Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia I Aumentar la flexibilidad I Bajar el consumo I Aumentar la potencia I Multi-procesadores I Procesadores multi-núcleo I Aumentar el número de núcleos en un procesador Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Paralelización y clasificación Paralelismo a nivel de instrucción Paralelismo a nivel de tareas Tendencia I Aumentar la flexibilidad I Bajar el consumo I Aumentar la potencia I Multi-procesadores I Procesadores multi-núcleo I Aumentar el número de núcleos en un procesador I Programación distribuida Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas DISEÑO Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I Comunicación Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas NÚCLEO NÚCLEO NÚCLEO Federico G. Zacchigna NÚCLEO Inteconexión entre núcleos, memoria y dispositivos de entrada/salida ENTRADA / SALIDA MEMORIA Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas NÚCLEO NÚCLEO NÚCLEO NÚCLEO Inteconexión entre núcleos, memoria y dispositivos de entrada/salida ENTRADA / SALIDA MEMORIA memoria compartida Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas NÚCLEO NÚCLEO NÚCLEO memoria compartida Federico G. Zacchigna NÚCLEO Inteconexión entre núcleos, memoria y dispositivos de entrada/salida ENTRADA / SALIDA MEMORIA memoria distribuida Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas NÚCLEO I NÚCLEO NÚCLEO Bus simple MEMORIA PRINCIPAL Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica NÚCLEO Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas NÚCLEO I NÚCLEO NÚCLEO NÚCLEO Bus simple MEMORIA PRINCIPAL NÚCLEO I Bus switcheado NÚCLEO NÚCLEO SWITCHED BUS BANCO 0 BANCO 1 BANCO 0 MEMORIA PRINCIPAL Federico G. Zacchigna NÚCLEO Tesis de Grado de Ingenierı́a Electrónica BANCO 1 Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I Comunicación Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I Principio de localidad Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas La ejecución del código no es uniforme. Principio de localidad: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas La ejecución del código no es uniforme. Principio de localidad: I Localidad espacial: Posiciones de memoria situadas cercanas a otras accedidas recientemente, tienden a ser accesados en un futuro cercano también Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas La ejecución del código no es uniforme. Principio de localidad: I Localidad espacial: Posiciones de memoria situadas cercanas a otras accedidas recientemente, tienden a ser accesados en un futuro cercano también I Localidad temporal: Es probable acceder en un futuro cercano nuevamente a posiciones de memoria que han sido accesados recientemente Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I Principio de localidad Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I Principio de localidad Jerarquı́a Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Jerarquı́a de memoria CPU MEMORIA Velocidad Tamaño RÁPIDA PEQUEÑA Costo Ejemplo COSTOSA SRAM DRAM MEMORIA MEMORIA LENTA Federico G. Zacchigna GRANDE ECONÓMICA DISCO RIGIDO MAGNÉTICO Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I Jerarquı́a Principio de localidad Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I Jerarquı́a Principio de localidad Memoria cache Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Las memorias cache sacan provecho de: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Las memorias cache sacan provecho de: I la localidad temporal Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Las memorias cache sacan provecho de: Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas CPU MEMORIA Velocidad RÁPIDA MEMORIA MEMORIA I LENTA la localidad temporal Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Las memorias cache sacan provecho de: Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas CPU MEMORIA Velocidad RÁPIDA MEMORIA MEMORIA I la localidad temporal I la localidad espacial Federico G. Zacchigna LENTA Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Las memorias cache sacan provecho de: Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas CPU MEMORIA Velocidad RÁPIDA MEMORIA MEMORIA la localidad temporal I la localidad espacial LENTA Federico G. Zacchigna BLOQUE BLOQUE MEMORIA BLOQUE I Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Mapeo de bloques: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Mapeo de bloques: I Directo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Mapeo de bloques: I I Directo Asociativo de N vias Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Mapeo de bloques: I I I Directo Asociativo de N vias Full-asociativo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Polı́ticas de escritura en memoria principal: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Polı́ticas de escritura en memoria principal: I Write-back Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Polı́ticas de escritura en memoria principal: I I Write-back Write-through Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Polı́ticas de escritura en memoria cache: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Polı́ticas de escritura en memoria cache: I Write-allocate Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Polı́ticas de escritura en memoria cache: I I Write-allocate Write-no-allocate Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Mapeo de bloques: I I I I Directo Asociativo de N vias Full-asociativo Polı́ticas de escritura en memoria principal: I I I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas write-back write-through Polı́ticas de escritura en memoria cache: I I write-allocate write-no-allocate Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas En particular la memoria cache del plasma multi-núcleo: I es de mapeo directo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas En particular la memoria cache del plasma multi-núcleo: I es de mapeo directo I con polı́tica de escritura write-back Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas En particular la memoria cache del plasma multi-núcleo: I es de mapeo directo I con polı́tica de escritura write-back I con polı́tica de escritura write-allocate Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas En particular la memoria cache del plasma multi-núcleo: I es de mapeo directo I con polı́tica de escritura write-back I con polı́tica de escritura write-allocate I saca provecho únicamente de la localidad espacial Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I Jerarquı́a Principio de localidad Memoria cache Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Las memorias cache en procesadores multi-núcleo son fundamentales: I sacan provecho de la localidad espacial y temporal Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Las memorias cache en procesadores multi-núcleo son fundamentales: I sacan provecho de la localidad espacial y temporal I reducen el tráfico del bus Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Las memorias cache en procesadores multi-núcleo son fundamentales: I sacan provecho de la localidad espacial y temporal I reducen el tráfico del bus I hacen posible la ejecución de programas desde la memoria compartida Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problemaica de la memoria cache en procesadores multi-núcleo: Acción Consecuencia Valor en cache0 Valor en cache1 Valor real 0 0 Estado inicial 1 CPU0 lee Miss en cache0 0 2 CPU1 lee Miss en cache1 0 0 0 3 CPU0 escribe 1 0 1 4 CPU1 lee Escritura en cache 0 y en memoria principal Lee 0 cuando el dato real es 1 1 0 1 Federico G. Zacchigna 0 Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problemaica de la memoria cache en procesadores multi-núcleo: Acción I Consecuencia Valor en cache0 Valor en cache1 Valor real 0 0 Estado inicial 1 CPU0 lee Miss en cache0 0 2 CPU1 lee Miss en cache1 0 0 0 3 CPU0 escribe 1 0 1 4 CPU1 lee Escritura en cache 0 y en memoria principal Lee 0 cuando el dato real es 1 1 0 1 0 protocolos de cache Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problemaica de la memoria cache en procesadores multi-núcleo: Acción Consecuencia Valor en cache0 Valor en cache1 Valor real 0 0 Estado inicial 1 CPU0 lee Miss en cache0 0 2 CPU1 lee Miss en cache1 0 0 0 3 CPU0 escribe 1 0 1 4 CPU1 lee Escritura en cache 0 y en memoria principal Lee 0 cuando el dato real es 1 1 0 1 I protocolos de cache I algoritmos de coherencia de cache Federico G. Zacchigna 0 Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Los protocolos de memoria cache: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Los protocolos de memoria cache: I protocolos basados en un directorio Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas bloques Memoria cache I protocolos basados en un directorio Federico G. Zacchigna Memoria cache Directorio Tesis de Grado de Ingenierı́a Electrónica Bloques Los protocolos de memoria cache: estado de los bloques Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas bloques Memoria cache I protocolos basados en un directorio I protocolos de snooping Federico G. Zacchigna Memoria cache Directorio Tesis de Grado de Ingenierı́a Electrónica Bloques Los protocolos de memoria cache: estado de los bloques Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Memoria cache bloques protocolos basados en un directorio Federico G. Zacchigna Memoria cache estado de los bloques protocolos de snooping bloques I estado de los bloques Memoria cache bloques I Memoria cache Directorio Bloques Los protocolos de memoria cache: estado de los bloques Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problemaica de la memoria cache en procesadores multi-núcleo: Acción Consecuencia Valor en cache0 Valor en cache1 Valor real 0 0 Estado inicial 1 CPU0 lee Miss en cache0 0 2 CPU1 lee Miss en cache1 0 0 0 3 CPU0 escribe 1 0 1 4 CPU1 lee Escritura en cache 0 y en memoria principal Lee 0 cuando el dato real es 1 1 0 1 Federico G. Zacchigna 0 Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problemaica de la memoria cache en procesadores multi-núcleo: Acción I Consecuencia Valor en cache0 Valor en cache1 Valor real 0 0 Estado inicial 1 CPU0 lee Miss en cache0 0 2 CPU1 lee Miss en cache1 0 0 0 3 CPU0 escribe 1 0 1 4 CPU1 lee Escritura en cache 0 y en memoria principal Lee 0 cuando el dato real es 1 1 0 1 0 protocolos de cache Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problemaica de la memoria cache en procesadores multi-núcleo: Acción Consecuencia Valor en cache0 Valor en cache1 Valor real 0 0 Estado inicial 1 CPU0 lee Miss en cache0 0 2 CPU1 lee Miss en cache1 0 0 0 3 CPU0 escribe 1 0 1 4 CPU1 lee Escritura en cache 0 y en memoria principal Lee 0 cuando el dato real es 1 1 0 1 I protocolos de cache I algoritmos de coherencia de cache Federico G. Zacchigna 0 Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Algoritmo de coherencia Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Algoritmos de coherencia para protocolos de snooping : I las memorias cache se comunican entre sı́ Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Algoritmos de coherencia para protocolos de snooping : I las memorias cache se comunican entre sı́ I envı́an información sobre el estado de los bloques Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Algoritmos de coherencia para protocolos de snooping : I las memorias cache se comunican entre sı́ I envı́an información sobre el estado de los bloques I envı́an información sobre las acciones que realizan Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Algoritmo de coherencia Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Algoritmo de coherencia Manejador de interrupciones Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Interrupciones: I en procesadores mono-núcleos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Interrupciones: I en procesadores mono-núcleos I en procesadores multi-núcleos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Algoritmo de coherencia Manejador de interrupciones Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Diseño I I Comunicación Arquitectura de la memoria I I I I I I Jerarquı́a Principio de localidad Memoria cache Memorias cache en procesadores multi-núcleo Protocolos Algoritmo de coherencia I Manejador de interrupciones I Operaciones atómicas Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Operaciones atómicas: Las operaciones atómicas hacen referencia a la lectura-modificación-escritura de una posición de memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas I en procesadores mono-núcleos Operaciones atómicas: Las operaciones atómicas hacen referencia a la lectura-modificación-escritura de una posición de memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas I Operaciones atómicas: en procesadores mono-núcleos I deshabilitar interrupciones Las operaciones atómicas hacen referencia a la lectura-modificación-escritura de una posición de memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas I Operaciones atómicas: Las operaciones atómicas hacen referencia a la lectura-modificación-escritura de una posición de memoria Federico G. Zacchigna en procesadores mono-núcleos I I deshabilitar interrupciones en procesadores multi-núcleos Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas I Operaciones atómicas: Las operaciones atómicas hacen referencia a la lectura-modificación-escritura de una posición de memoria Federico G. Zacchigna en procesadores mono-núcleos I I deshabilitar interrupciones en procesadores multi-núcleos I deshabilitar interrupciones Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas I Operaciones atómicas: Las operaciones atómicas hacen referencia a la lectura-modificación-escritura de una posición de memoria en procesadores mono-núcleos I I en procesadores multi-núcleos I I I Federico G. Zacchigna deshabilitar interrupciones deshabilitar interrupciones exclusión mutua y secciones crı́ticas spin locks Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas exclusión mutua y secciones crı́ticas TIEMPO PROCESO A SECCIÓN CRÍTICA de A B está bloqueada PROCESO B T0 T1 SECCIÓN CRÍTICA de B T2 T3 T0: A entra a una sección critica. T1: B intenta entrar a una sección crítica, pero no puede y se bloquea. T2: A deja la sección crítica y B entra a una sección crítica. T3: B deja la sección crítica. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas spin lock INICIO Deshabilitación de interrupciones exclusión mutua y secciones crı́ticas SpinLock Lectura del registro del lock TIEMPO PROCESO A NO Es 0? SECCIÓN CRÍTICA de A SI Lock adquirido B está bloqueada PROCESO B T0 T1 SECCIÓN CRÍTICA de B T2 Inicio de sección crítica T3 T0: A entra a una sección critica. T1: B intenta entrar a una sección crítica, pero no puede y se bloquea. T2: A deja la sección crítica y B entra a una sección crítica. T3: B deja la sección crítica. Se hace uso de los recursos compartidos. Todas las operaciones en esta sección son atómicas Fin de sección crítica RegistroDelLock = 0 (Se libera) Se restaura el estado anterior de las interrupciones FIN Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problema del spin lock Necesito realizar operaciones atómicas sobre los recursos compartidos. Necestio Necestio proteger proteger los los recursos recursos compartidos: compartidos Usando la exclusión mutua, sobre las regiones críticas, para ello necesito un lock. El registro que guarda el estado del lock es un recurso compartido. Para que un CPU adquiera un lock correctamente, necesita realizar operaciones atómicas sobre el registro del lock. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problema del spin lock Necesito realizar operaciones atómicas sobre los recursos compartidos. Necestio Necestio proteger proteger los los recursos recursos compartidos: compartidos Usando la exclusión mutua, sobre las regiones críticas, para ello necesito un lock. El registro que guarda el estado del lock es un recurso compartido. Para que un CPU adquiera un lock correctamente, necesita realizar operaciones atómicas sobre el registro del lock. I Solución Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problema del spin lock Necesito realizar operaciones atómicas sobre los recursos compartidos. Necestio Necestio proteger proteger los los recursos recursos compartidos: compartidos Usando la exclusión mutua, sobre las regiones críticas, para ello necesito un lock. El registro que guarda el estado del lock es un recurso compartido. Para que un CPU adquiera un lock correctamente, necesita realizar operaciones atómicas sobre el registro del lock. I Solución I implementar instrucciones de MIPS II: LL Load-Linked y SC Store-Conditional Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Comunicación entre los núcleo Arquitectura de la memoria Manejador de interrupciones Operaciones atómicas Problema del spin lock Necesito realizar operaciones atómicas sobre los recursos compartidos. Necestio Necestio proteger proteger los los recursos recursos compartidos: compartidos Usando la exclusión mutua, sobre las regiones críticas, para ello necesito un lock. El registro que guarda el estado del lock es un recurso compartido. Para que un CPU adquiera un lock correctamente, necesita realizar operaciones atómicas sobre el registro del lock. I Solución I I implementar instrucciones de MIPS II: LL Load-Linked y SC Store-Conditional plasma multi-núcleo: se brinda soporte por hardware Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo IMPLEMENTACIÓN Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I Estructura general Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Estructura general del procesador Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I Estructura general Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I Nexys2 Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo 32 bits-dataW 32 bits-dataR 4 bits-byteWE busy_o request_i reset_i clk_i Federico G. Zacchigna 23bits-dirección 16 bits-dataIO memCE_o memWE_o memLB_o memUB_o memOE_o memClk_o Memoria ram externa Plasma multi-núcleo 22bits-dirección Controlador de memoria Nexys2 memAdV_o memCRE_o memWait_i Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I Nexys2 Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I I Nexys2 Controlador de memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Lectura I Escritura Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Lectura I Escritura Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I I Nexys2 Controlador de memoria Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I I I Nexys2 Controlador de memoria Plasma multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s Núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s Núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s Núcleo Generador de señales memRequest_s memRequest_s memRequest_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Árbitro de bus busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Árbitro de bus busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Árbitro de bus busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Árbitro de bus busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s Árbitro de bus Manejador de interrupciones irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales Árbitro de bus memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s cpuPause_s Manejador de interrupciones irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales Árbitro de bus Manejador de interrupciones memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s cpuPause_s Soporte de HW para locks irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo 1 lockRequest : process ( c l k i , r e s e t i ) 2 begin 3 i f r e s e t i = ’ 1 ’ then 4 l o c k R e q u e s t o <= ’ 0 ’ ; 5 e l s i f r i s i n g e d g e ( c l k i ) then 6 i f c p u A d d r e s s s & ” 00 ” = X” 200000A0” 7 and cpuWe s /= ” 0000 ” then 8 i f cpuDataW s = X” 00000000 ” then 9 l o c k R e q u e s t o <= ’ 0 ’ ; 10 else 11 l o c k R e q u e s t o <= ’ 1 ’ ; 12 end i f ; 13 end i f ; 14 end i f ; 15 end p r o c e s s ; Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales Árbitro de bus Manejador de interrupciones memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s memRequest_s cpuPause_s Soporte de HW para locks irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s busAddress_s busWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s busSnoop_s Árbitro de bus Manejador de interrupciones memRequest_s cpuPause_s Soporte de HW para locks irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s Señales (de izq. a der.): - busSnoop_i - memRequest_o - cpuPause_i - busRequest_o - busAccessEnable_i - busBusy_i - irq_i - lockRequest_o busAddress_s busWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s busSnoop_s Árbitro de bus Manejador de interrupciones memRequest_s cpuPause_s Soporte de HW para locks irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Las señales de clk_i y reset_i van a todos los bloques Componentes varios Regs. de intercom. UART read UART write Máscara de IRQ Estado de IRQ Contador GPIO (E/S) Multiplexor Señales (de izq. a der.): - cpuDataR_s - cpuDataW_s - cpuAddress_s - cpuWe_s Señales (de izq. a der.): - busSnoop_i - memRequest_o - cpuPause_i - busRequest_o - busAccessEnable_i - busBusy_i - irq_i - lockRequest_o busAddress_s busWe_s memRequest_s Núcleo Núcleo Núcleo Generador de señales memRequest_s Señales hacia el controlador de memoria externo: - busDataR_s - busDataW_s - busAddress_s - busWe_s - memRequest_s busSnoop_s Árbitro de bus Manejador de interrupciones memRequest_s cpuPause_s Soporte de HW para locks irqStatus_s irqMask_s busValid_s Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I I I Nexys2 Controlador de memoria Plasma multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo Implementación I I Estructura general Nivel superior I I Nexys2 Controlador de memoria I Plasma multi-núcleo I Núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo CPU BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo El procesador plasma: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo La interfaz del procesador plasma: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo CPU BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo irq_i cpuPause_s reset_i CPU clk_i BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo irq_i clk_i cpuPause_s reset_i CPU clk_i Memoria Ram Interna BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo irq_i clk_i cpuPause_s reset_i CPU clk_i byteWE (4bits) Memoria Ram Interna Address (30bits) DataW (32bits) DataR (32bits) BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo irq_i clk_i cpuPause_s reset_i CPU clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) DataR (32bits) BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo irq_i clk_i cpuPause_s reset_i CPU clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) Puerto A DataR (32bits) Memoria cache de datos Memoria cache de tags BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo irq_i clk_i cpuPause_s reset_i CPU clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) Buffer Tri-state Puerto A DataR (32bits) Memoria cache de datos Memoria cache de tags BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo lockRequest irq_i reset_i clk CPU reset clk_i Soporte para locks cpuPause_s reset_i clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) Buffer Tri-state Puerto A DataR (32bits) Memoria cache de datos Memoria cache de tags BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo lockRequest irq_i reset_i clk CPU reset clk_i Soporte para locks cpuPause_s reset_i clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) Memoria cache de datos Memoria cache de tags Puerto B Buffer Tri-state Puerto A DataR (32bits) BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Estructura General Nivel superior Plasma multi-núcleo Núcleo DATOS INDICADORES Federico G. Zacchigna PUERTO B PUERTO A Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Estructura General Nivel superior Plasma multi-núcleo Núcleo Puerto A: Se utiliza para leer y escribir datos en memoria cache. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura de un dato solicitado por el CPU. Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I I I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura de un dato solicitado por el CPU. Escritura al ocurrir un miss en una operación de lectura solicitada por el CPU. Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I I I I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura de un dato solicitado por el CPU. Escritura al ocurrir un miss en una operación de lectura solicitada por el CPU. Escritura al realizar una operación de escritura solicitada por el CPU (polı́tica write-allocate). Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I I I I I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura de un dato solicitado por el CPU. Escritura al ocurrir un miss en una operación de lectura solicitada por el CPU. Escritura al realizar una operación de escritura solicitada por el CPU (polı́tica write-allocate). Se invalida el la posición en cache, al realizar una escritura que no sea de 32 bits. Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I I I I I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura de un dato solicitado por el CPU. Escritura al ocurrir un miss en una operación de lectura solicitada por el CPU. Escritura al realizar una operación de escritura solicitada por el CPU (polı́tica write-allocate). Se invalida el la posición en cache, al realizar una escritura que no sea de 32 bits. Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. I Se realizan lecturas en la memoria de indicadores cada vez que hay una señal de bus snooping. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros I Puerto A: Se utiliza para leer y escribir datos en memoria cache. I I I I I Estructura General Nivel superior Plasma multi-núcleo Núcleo Lectura de un dato solicitado por el CPU. Escritura al ocurrir un miss en una operación de lectura solicitada por el CPU. Escritura al realizar una operación de escritura solicitada por el CPU (polı́tica write-allocate). Se invalida el la posición en cache, al realizar una escritura que no sea de 32 bits. Puerto B: Se utiliza únicamente para el algoritmo de coherencia de memoria cache. I I Se realizan lecturas en la memoria de indicadores cada vez que hay una señal de bus snooping. Se realizan actualizaciones de los datos en cache, cuando corresponde. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo lockRequest irq_i reset_i clk CPU reset clk_i Soporte para locks cpuPause_s reset_i clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) Memoria cache de datos Memoria cache de tags Puerto B Buffer Tri-state Puerto A DataR (32bits) BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo lockRequest irq_i reset_i clk CPU reset clk_i Soporte para locks cpuPause_s reset_i clk_i byteWE (4bits) Memoria Ram Interna cpuIndex Address (30bits) DataW (32bits) Memoria cache de datos Memoria cache de tags Puerto B Buffer Tri-state Puerto A DataR (32bits) Regisitros BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo lockRequest irq_i reset_i clk CPU reset clk_i Soporte para locks cpuPause_s reset_i clk_i memRequest Unidad de control byteWE (4bits) Memoria Ram Interna cpuIndex busRequest busBusy memBusy busSnoop DataW (32bits) DataR (32bits) Memoria cache de datos Memoria cache de tags Puerto B Buffer Tri-state Puerto A busAccEn delayedBusAccessEnable_s busAccessEnable_s Address (30bits) Regisitros BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Estructura General Nivel superior Plasma multi-núcleo Núcleo Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Estructura General Nivel superior Plasma multi-núcleo Núcleo lockRequest irq_i reset_i clk CPU reset clk_i Soporte para locks cpuPause_s reset_i clk_i memRequest Unidad de control byteWE (4bits) Memoria Ram Interna cpuIndex busRequest busBusy memBusy busSnoop DataW (32bits) DataR (32bits) Memoria cache de datos Memoria cache de tags Puerto B Buffer Tri-state Puerto A busAccEn delayedBusAccessEnable_s busAccessEnable_s Address (30bits) Regisitros BUS (dataW, dataR, address, byteWE) Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros EVALUACIÓN Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros CONCLUSIONES Y TRABAJOS FUTUROS Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I número de núcleos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I número de núcleos el tipo de tarea que se tenga Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Los factores más determinantes en el rendimiento al ejecutar una tarea son: Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Los factores más determinantes en el rendimiento al ejecutar una tarea son: I la utilización del bus Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Los factores más determinantes en el rendimiento al ejecutar una tarea son: I I la utilización del bus la carga de procesamiento Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Los factores más determinantes en el rendimiento al ejecutar una tarea son: I I la utilización del bus la carga de procesamiento La mejora puede estar alejada del lı́mite teórico ideal Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Los factores más determinantes en el rendimiento al ejecutar una tarea son: I I la utilización del bus la carga de procesamiento La mejora puede estar alejada del lı́mite teórico ideal Una primer implementación del plasma multi-núcleo Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Se diseñó e implementó un sistema multi-núcleo Se realizaron testeos de eficiencia Los resultados presentados muestran dependencia del rendimiento: I I I número de núcleos el tipo de tarea que se tenga la memoria cache Los factores más determinantes en el rendimiento al ejecutar una tarea son: I I la utilización del bus la carga de procesamiento La mejora puede estar alejada del lı́mite teórico ideal Una primer implementación del plasma multi-núcleo Posibilidad de mejorar el diseño Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros En primer instancia: I N núcleos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros En primer instancia: I N núcleos I Modificar la memoria interna Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros En primer instancia: I N núcleos I Modificar la memoria interna I Evitar invalidar datos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros En primer instancia: I N núcleos I Modificar la memoria interna I Evitar invalidar datos I Memoria cache de instrucciones y datos Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros En primer instancia: I N núcleos I Modificar la memoria interna I Evitar invalidar datos I Memoria cache de instrucciones y datos I Modificación de la memoria interna de cada núcleo. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros En primer instancia: I N núcleos I Modificar la memoria interna I Evitar invalidar datos I Memoria cache de instrucciones y datos I Modificación de la memoria interna de cada núcleo. I Task scheduler monitor para el plasma multi-núcleo. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. I Modificación de la estructura de la cache para que sea parametrizable la asociatividad. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. I Modificación de la estructura de la cache para que sea parametrizable la asociatividad. I Implementación de polı́tica de escritura en memoria del tipo Write Back. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. I Modificación de la estructura de la cache para que sea parametrizable la asociatividad. I Implementación de polı́tica de escritura en memoria del tipo Write Back. I Separación de memoria caché en instrucciones y datos. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. I Modificación de la estructura de la cache para que sea parametrizable la asociatividad. I Implementación de polı́tica de escritura en memoria del tipo Write Back. I Separación de memoria caché en instrucciones y datos. I Implementación de la MMU (Memory Management Unit). Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. I Modificación de la estructura de la cache para que sea parametrizable la asociatividad. I Implementación de polı́tica de escritura en memoria del tipo Write Back. I Separación de memoria caché en instrucciones y datos. I Implementación de la MMU (Memory Management Unit). I Implementación de la FPU (Floating Point Unit). Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Otros trabajos a futuro: I Implementación de un bus switcheado, incluyendo más de un controlador de memoria. I Modificación de la estructura de la cache para que el tamaño de bloque sea parametrizable. I Modificación de la estructura de la cache para que sea parametrizable la asociatividad. I Implementación de polı́tica de escritura en memoria del tipo Write Back. I Separación de memoria caché en instrucciones y datos. I Implementación de la MMU (Memory Management Unit). I Implementación de la FPU (Floating Point Unit). I Mejoras y vectorización del manejo de interrupciones y excepciones (NVIC). Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros Hoy en dı́a hay al menos otros cuatro estudiantes que siguen la lı́nea de trabajo del plama múlti-núcleo en sus trabajos de tesis de grado. Ellos tratarán algunos de los temas anteriormente nombrados. Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros ¿PREGUNTAS? Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros MUCHAS GRACIAS! Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica Motivación y objetivos Introducción Diseño Implementación Evaluación Conclusiones y trabajos futuros Conclusiones Trabajos futuros FIN! Federico G. Zacchigna Tesis de Grado de Ingenierı́a Electrónica