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