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