Politecnico di Milano
Sistemi Dedicati Multiprocessore:
Sincronizzazione Hardware Tramite
Semafori
Relatore:
Prof. Fabrizio FERRANDI
Correlatore: Ing. Marco D. SANTAMBROGIO
Tesi di Laurea di:
Alessandro MELE
Francesca MALCOTTI
A.A. 2003/2004
Sommario
• Obiettivi
• Introduzione alla tecnologia delle FPGA
• Metodologia proposta
• Implementazione della metodologia
• Conclusioni e sviluppi futuri
Luglio 2004
Francesca Malcotti - Alessandro Mele
2
Obiettivi
• Sviluppo di una metodologia per la definizione ed
implementazione di un IP core che realizzi le funzionalità di
un motore di gestione della concorrenza hardware tramite
semafori
processore
1
processore
2
processore
3
…….
processore
n
bus
risorsa
condivisa
• Integrazione dell’IP core all’interno di una architettura
multiprocessore
• Sostituire parte delle funzionalità svolte dal Sistema
Operativo
Luglio 2004
Francesca Malcotti - Alessandro Mele
3
Vantaggi e Vincoli di Progetto
• Vantaggi:
• Velocità di esecuzione di applicazioni in cui il fattore
tempo costituisce un aspetto critico
• Risparmio delle risorse di calcolo
Approccio Sleep and Wakeup: la CPU è impegnata solo nel
momento in cui la risorsa è realmente disponibile
• Vincoli:
• Spaziali
• Temporali
Luglio 2004
Francesca Malcotti - Alessandro Mele
4
FPGA - Introduzione
• FPGA: Field Programmable Gate Arrays
• Rappresentano una particolare tipologia di dispositivi
programmabili
• Logica programmabile per:
Maggiore specializzazione
Supporto per implementare funzionalità del sistema
Riusabilità di una particolare configurazione per diverse
applicazioni
Riduzione dei costi e dei tempi di progettazione
• Riconfigurabilità
Luglio 2004
Francesca Malcotti - Alessandro Mele
5
Metodologia – Passi Fondamentali (1)
• Studio della specifica dell’interfaccia Open Core
Protocol (OCP)
• Definisce una interfaccia fra diversi IP core indipendente
dal bus
• Le entità collegate possono essere:
Master dell’istanza OCP
Slave dell’istanza OCP
Entrambe
Luglio 2004
Francesca Malcotti - Alessandro Mele
6
Metodologia – Passi Fondamentali (2)
• Studio della specifica “funzionale” del motore di
gestione della concorrenza, scritto in linguaggio di
descrizione dello hardware SystemC
• Scopo:
Realizzare una specifica VHDL sintetizzabile collegata ad
un bus OPB, On Chip Peripheral Bus
Progettare un motore di sincronizzazione hw, che
implementi una politica di gestione dell’accesso
concorrente tramite Semafori – Semaphore Engine
Luglio 2004
Francesca Malcotti - Alessandro Mele
7
Metodologia – Risorsa Condivisa
• Risorsa condivisa: Memoria dati
Semplificazione di un sistema multiprocessore a memoria
centralizzata
processore
1
processore
2
processore
3
…….
processore
n
bus
memoria
condivisa
gestore della
concorrenza
• Garantire la mutua esclusione
Luglio 2004
Francesca Malcotti - Alessandro Mele
8
Metodologia - Interrupt
• Meccanismo fondamentale per la gestione della
concorrenza in una architettura multiprocessore
processore
richiede risorsa
il gestore della
concorrenza
segnala il lock
sulla risorsa
tramite interrupt
utilizzo e
successivo unlock
della risorsa
Luglio 2004
si
risorsa
disponibile
?
no
processore
attende la
disponibilità
gestore della
concorrenza
Francesca Malcotti - Alessandro Mele
9
Metodologia – Device Driver
• Elemento fondamentale per la gestione dell’IP core
lato software
Applicazione
utente
Device
Driver
IP Core
(hardware)
• Interfaccia la descrizione hardware (VHDL) del
componente con l’applicazione che lo utilizza
Luglio 2004
Francesca Malcotti - Alessandro Mele
10
Implementazione - Tools
• Sviluppo e supporto ad alto livello per la
progettazione di sistemi dedicati
 Embedded Developement Kit, EDK (versione 6.2i)
• Supporto per la simulazione comportamentale di
un componente data la sua specifica in un
linguaggio di descrizione dell’hardware
 Modelsim XE II (versione 5.7c)
Luglio 2004
Francesca Malcotti - Alessandro Mele
11
Implementazione – Sistema (1)
Luglio 2004
Francesca Malcotti - Alessandro Mele
12
Implementazione – Sistema (2)
• Microblaze
Porta dati
Porta istruzioni
• Opb_gpio
• Opb_uartlite
• Bram_block
Memoria dati condivisa
• Modulo DCM
Regolazione frequenza in
ingresso
Luglio 2004
Francesca Malcotti - Alessandro Mele
13
Implementazione – Caso di Studio
• Obiettivi
 Apprendere come implementare ed integrare
correttamente nel sistema un IP core dedicato
 Comprendere e verificare alcune funzionalità di base
(gestione interrupt, creazione driver) necessarie, secondo
la metodologia proposta, per lo sviluppo di un gestore
della concorrenza hardware
Luglio 2004
Francesca Malcotti - Alessandro Mele
14
Implementazione – Interrupt (1)
• Gestione degli interrupt con EDK
• Caso 1
 Un solo IP core che solleva un solo
interrupt alla volta
• Caso 2
 Un solo IP core che può sollevare più
interrupt
 Più IP core concorrenti
interrupt
controller
ad ogni IP core è associata una ISR
(funzione di int_handler)
Luglio 2004
Francesca Malcotti - Alessandro Mele
15
Implementazione – Interrupt (2)
Nel caso dell’adder:
System.mss
Luglio 2004
Francesca Malcotti - Alessandro Mele
16
Implementazione – Device Driver
• Gestione dei driver con EDK
• LibGen
Meccanismo di compilazione di driver e
di generazione delle librerie
Importanza della gerarchia di cartelle
Luglio 2004
Francesca Malcotti - Alessandro Mele
17
Implementazione – Memoria
• Dimensionamento fisico della memoria
Settaggio dei parametri Base Address e High Address del modulo
opb_bram_if_cntrl (interfaccia che collega il bus OPB alla Bram
Block)
• Gestione software delle funzionalità di scrittura, lettura e
condivisione
Luglio 2004
Francesca Malcotti - Alessandro Mele
18
Conclusioni e Sviluppi Futuri
• Conclusioni
• Solida base per portare a termine la sintesi del gestore
della concorrenza hardware mediante semafori
• Sviluppi Futuri
• Completare e analizzare lo studio per il meccanismo di
accesso diretto alla memoria, DMA
• Progettare un’architettura mista, in cui siano presenti PPC
e Microblaze
Luglio 2004
Francesca Malcotti - Alessandro Mele
19
FINE PRESENTAZIONE
Luglio 2004
Francesca Malcotti - Alessandro Mele
20