Politecnico di Milano SyCERS: Un framework basato su SystemC per la progettazione e simulazione di sistemi embedded dinamicamente riconfigurabili Carlo AMICUCCI Matr. 642360 Relatore prof. Donatella SCIUTO Correlatore ing. Marco Domenico SANTAMBROGIO Sommario • Obiettivi • Sistemi embedded dinamicamente riconfigurabili • Transaction Level Modeling (TLM) e SystemC • Riconfigurabilità dinamica e SystemC • Modelli SystemC per Caronte • Risultati sperimentali • Sviluppi futuri Carlo Amicucci 2 Obiettivi • Definizione di un modello per descrivere sistemi dinamicamente riconfigurabili • Basata su uno dei linguaggi di descrizione hardware esistenti • Utilizzabile già nelle prime fasi di progetto (permette di considerare la riconfigurabilità a livello di sistema) • Fornire un framework per la simulazione e la progettazione di sistemi dinamicamente riconfigurabili • Specifiche simulabili • Possibilità di variare velocemente parametri quali: num. delle unità di riconf., tempo di riconfigurazione, ecc… • Possibilità di considerare la componente software Carlo Amicucci 3 Sistemi embedded dinamicamente riconfigurabili Rec. IP-Core 1 Rec. IP-Core 2 Fix IP-Core 2 Rec. IP-Core N BUS Processore Embedded Fix IP-Core 1 Rec IP-Core 1 Fix IP-Core 2 Fix IP-Core 1 (Control) Rec IP-Core 3 Rec IP-Core 2 • Generalmente basati su FPGA • Comunicazione • BUS (Tecnologie standard quali AMBA o IBM CoreConnect) • Connessione punto-punto • Presenza di un controllore della riconfigurabilità (generalmente nella parte statica o esterno al dispositivo) che può essere controllato: • Hardware • Software (maggiore flessibilità) • Esempi: Caronte ADRIATIC e RECONF2 Carlo Amicucci 4 TLM e SystemC • Separare la definizione delle funzionalità del sistema dalla definizione dei dettagli di comunicazione • Attraverso la definizione di un Canale di comunicazione • DEF.: un canale implementa una serie di interfacce che sono esposte ai componenti funzionali connessi attraverso di esso. • DEF.: un’interfaccia espone i metodi che possono essere invocati dal componente funzionale per comunicare. • SystemC, dalla versione 2.0, permette di utilizzare la TLM: canale write() read() sc_interface modulo A pA->write(v) pA pB sc_port Carlo Amicucci modulo B v=pB->read() 5 La metodologia proposta • Definire la funzionalità del sistema Specification Model • Non contiene dettagli sull’implementazione • Esplorazione dello spazio delle soluzioni Component Assembly Model • Dettagli implementativi sulle funzionalità • Non contiene dettagli sulla comunicazione Bus Functional Model • Validazione della soluzione attraverso la simulazione Carlo Amicucci 6 Componente dinamicamente riconfigurabile in SystemC Componente Riconfigurabile (sc_module) mutex • Non è possibili istanziare in fase di simulazione un sc_module • Posso modificare SC_THREAD e SC_METHOD utilizzando: • puntatore a funzione • sc_mutex *g() • Configurazione • Associabile un tempo di ric. • Elaborazione • Associabile un tempo di elab. Configurazione (puntatore a funzione) Carlo Amicucci 7 Evoluzione di un componente riconfigurabile nel tempo Mem. delle Conf. f() g() *f() *g() k() *g() *g() Unlocked Locked Riconfig. Elab. Carlo Amicucci 8 Comunicazione Configura 1 «interfaccia» rec_ctrl_if «interfaccia» comm_if Utilizza 1 * * «sc_module» RecController «funzione» Configurazione * Invoca «sc_module» RecHW * • rec_ctrl_if utilizzata dal controllore delle riconfigurazioni per gestire i componenti riconfigurabili • comm_if utilizzata da una configurazione per accedere alle risorse messe a disposizione dal componente riconfigurabile Carlo Amicucci 9 Modelli per Caronte Codice di Controllo (SystemC) Codice di Controllo (C/C++) Cross compilatore GCC PowerPC ISS Modello CoreConnect Memoria Configurazioni BlackBox (SystemC) Processo di controllo Compilatore GCC Scheduler e Controller Configurazioni Open SystemC PowerPC core models Bus arbitration model Component assembly model Modello BlackBoxes Memoria Carlo Amicucci 10 Risultati sperimentali • Filtro Adattativo (5 configurazioni) • Elaborazione pipeline • Acceleratore hw • MD5 (4 configurazioni) • Ver. 1 – elaborazione monolitica • Ver. 2 – elaborazione pipeline • DES (2 configurazioni) • Riconfigurabilità e Sistemi di calcolo parallelo Carlo Amicucci 11 Filtro Adattativo • Component assembly model di Caronte • Permette di vedere come variano le prestazioni del sistema in funzione • Del numero BlackBox • Tempo di riconfigurazione • Politica di scheduling 16 PE Sottrazione (Filtro passa alto) Arch. con due BlackBox 12 N di Operazioni Filtro passa basso Arch. con una BlackBox 14 BB1 BB1 Arch. con tre BlackBox 10 Arch. con quattro BlackBox BB1 BB2 8 BB1 BB1 K(fL) 4 Applicazione della non linearità BB1 BB2 Tempo di riconfigurazione 6 Tempo di elaborazione Immagine 1 Tempo di elaborazione Immagine 2 2 0 Somma BB1 0 100 200 300 400 500 Tem po (m s) Carlo Amicucci 600 700 800 900 1000 Tempo Tempo 12 Prestazioni del simulatore • Il tempo di esecuzione reale dipende da: • Risoluzione del tempo di simulazione • Ottimizzazione in fase di compilazione (il tempo di elab. < 30 %) • La memoria occupata dal modello è di circa • 150 KB per ogni BlackBox • Aumentando il num. Di BlackBox aumenta il numero di thread, ma le prestazioni non degradano 300,00 Tempo (sec) 250,00 Versione ottimizzata Versione debug 200,00 150,00 100,00 50,00 0,00 1 2 3 4 Numero di BlackBoxes Carlo Amicucci 13 Risultati e sviluppi futuri • Generazione automatica di specifiche riconfigurabili da specifiche statiche. • Introduzione di metriche per la stima dell’occupazione • Estensione del simulatore al modello DORM (Data Oriented Reconfigurable Model). In questo modello la funzionalità necessaria a manipolare i dati è definita nel dato stesso. • Utilizzo dei risultati di simulazione per la stima automatica del numero di iterazioni necessarie al mascheramento delle operazioni di riconfigurazione. • C. Amicucci, F. Ferrandi, M.Santambrogio, D. Sciuto. SyCERS: a SystemC design exploration framework for SoC reconfigurable architecture, In Engineering of Reconfigurable System and Algorithms Conference (ERSA ‘06), Las Vegas, Nevada, USA, Giugno 26-29 2006 Carlo Amicucci 14