Politecnico di Milano Realizzazione di un modulo di sincronizzazione hardware per un’architettura multiprocessore su FPGA Relatore: Fabrizio Ferrandi Correlatore: Marco Domenico Santambrogio Davide Candiloro - Matr.652150 Giacomo Giacchetti - Matr.658200 Sommario • Obiettivi • Strumenti utilizzati • Architettura • Modulo di sincronizzazione • Risultati dei test • Conclusioni e sviluppi futuri Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 2 Obiettivi • Data un’architettura multiprocessore impiegante un modulo di sincronizzazione hardware. • Implementare un nuovo modulo di sincronizzazione che riduca l’occupazione dell’architettura su una FPGA. • Testare il funzionamento del modulo creato con particolare attenzione all’algoritmo di Boruvka per la ricerca del cammino minimo in un grafo pesato e non orientato. Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 3 Componenti utilizzati Alcuni componenti integrati all’interno della FPGA Xilinx Virtex-II Pro sono : • Quattro processori MicroBlaze : • Ottimizzati per sistemi embedded • HARVARD • Soft core processor • Le memorie BRAM • Le interconnessioni : • Il bus arbitrato OPB • Il canale punto-punto monodirezionale FSL Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 4 Architettura CERBERO Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 5 Le primitive di sincronizzazione Dato che i quattro processori eseguono il medesimo programma parallelo ed accedono ai medesimi dati sono necessarie le seguenti primitive: Fondamentali • LOCK : per acquisire l’accesso esclusivo ad una risorsa da parte di uno dei processori. • UNLOCK : per rilasciare la risorsa precedentemente acquisita. • BARRIER : per sincronizzare i processori in un determinato punto dell’esecuzione del programma. Ausiliaria • ID : assegna un identificativo ad ogni processore. Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 6 I moduli di sincronizzazione Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 7 Implementazione: schema di una macchina a stati finiti Per ogni comando ricevuto: Anno Accademico 2004/2005 • Attesa e lettura comando. • Invio dell’indirizzo alle BRAM e attesa del risultato. • Decodifica ed esecuzione del comando aggiornando se opportuno le memorie BRAM. • Invio al processore della stringa di risposta. Candiloro Davide - Giacchetti Giacomo 8 Esempio LOCK-UNLOCK Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 9 Esempio BARRIER Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 10 Tempi di esecuzione a confronto Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 11 Speedup dell’algoritmo calcolante il filtro mediano Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 12 Speedup dell’algoritmo di Boruvka Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 13 Conclusioni e Sviluppi futuri • CONCLUSIONI • Modulo originario Modulo ottimizzato occupazione 8% BRAM utilizzate 4 3% 2 • I test svolti dimostrano che è possibile ottenere un buon grado di scaling se vengono implementati algoritmi dai quali si riesce ad estrarre un adeguato livello di parallelismo. • SVILUPPI FUTURI • Utilizzo di un bus più veloce (PLB anziché OPB). • Architettura mista: MicroBlaze + PowerPc. Anno Accademico 2004/2005 Candiloro Davide - Giacchetti Giacomo 14 Politecnico di Milano FINE PRESENTAZIONE