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
Scarica

SyCERS: Un framework basato su SystemC per la