14
Politecnico di Milano Politecnico di Milano SyCERS: Un framework basato SyCERS: Un framework basato su SystemC per la su SystemC per la progettazione e simulazione progettazione e simulazione di sistemi embedded di sistemi embedded dinamicamente dinamicamente riconfigurabili riconfigurabili Carlo AMICUCCI Matr. 642360 Relatore prof. Donatella SCIUTO Correlatore ing. Marco Domenico SANTAMBROGIO

Thesis Amicucci Slides IT

Embed Size (px)

Citation preview

Page 1: Thesis Amicucci Slides IT

Politecnico di MilanoPolitecnico di Milano

SyCERS: Un framework basato su SyCERS: Un framework basato su SystemC per la progettazione e SystemC per la progettazione e

simulazione di sistemi embedded simulazione di sistemi embedded dinamicamente riconfigurabilidinamicamente riconfigurabili

Carlo AMICUCCI

Matr. 642360

Relatore prof. Donatella SCIUTO

Correlatore ing. Marco Domenico SANTAMBROGIO

Page 2: Thesis Amicucci Slides IT

Carlo Amicucci 2

SommarioSommario

• Obiettivi

• Sistemi embedded dinamicamente riconfigurabili

• Transaction Level Modeling (TLM) e SystemC

• Riconfigurabilità dinamica e SystemC

•Modelli SystemC per Caronte

• Risultati sperimentali

• Sviluppi futuri

Page 3: Thesis Amicucci Slides IT

Carlo Amicucci 3

ObiettiviObiettivi

• 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

Page 4: Thesis Amicucci Slides IT

Carlo Amicucci 4

Sistemi embedded Sistemi embedded dinamicamente riconfigurabilidinamicamente riconfigurabili

Rec.IP-Core

1

BUS

Rec.IP-Core

N

Rec.IP-Core

2

ProcessoreEmbedded

FixIP-Core

1

FixIP-Core

2

FixIP-Core

1(Control)

RecIP-Core

3

RecIP-Core

1

FixIP-Core

2

RecIP-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

Page 5: Thesis Amicucci Slides IT

Carlo Amicucci 5

TLM e SystemCTLM 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:

write()read()write()read()

modulo Amodulo A

pA->write(v)pA->write(v)

modulo Bmodulo B

v=pB->read()v=pB->read()

canale

pA pB

sc_interface

sc_port

Page 6: Thesis Amicucci Slides IT

Carlo Amicucci 6

La metodologia propostaLa metodologia proposta

SpecificationModel

SpecificationModel

ComponentAssembly

Model

ComponentAssembly

Model

BusFunctional

Model

BusFunctional

Model

• Definire la funzionalità del sistema

• Non contiene dettagli sull’implementazione

• Esplorazione dello spazio delle soluzioni

• Dettagli implementativi sulle funzionalità

• Non contiene dettagli sulla comunicazione

• Validazione della soluzione attraverso la simulazione

Page 7: Thesis Amicucci Slides IT

Carlo Amicucci 7

Componente dinamicamente Componente dinamicamente riconfigurabile in SystemCriconfigurabile in SystemC

• Non è possibili istanziare in fase di simulazione un sc_module

• Posso modificare SC_THREAD e SC_METHOD utilizzando:

• puntatore a funzione

• sc_mutex

• Configurazione

• Associabile un tempo di ric.

• Elaborazione

• Associabile un tempo di elab.

*g()

ComponenteRiconfigurabile(sc_module)

Configurazione(puntatore a funzione)

mutex

Page 8: Thesis Amicucci Slides IT

Carlo Amicucci 8

Evoluzione di un componente Evoluzione di un componente riconfigurabile nel temporiconfigurabile nel tempo

*f()*g()

*g()*g()

Mem. delle Conf.Mem. delle Conf.

f()

g()k()

UnlockedUnlocked

LockedLockedRiconfig.Riconfig.

Elab.Elab.

Page 9: Thesis Amicucci Slides IT

Carlo Amicucci 9

ComunicazioneComunicazione

«sc_module»RecHW

«interfaccia»comm_if

«funzione»Configurazione

*

*Invoca

1 *

Utilizza

«sc_module»RecController

1 *

Configura«interfaccia»rec_ctrl_if

• 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

Page 10: Thesis Amicucci Slides IT

Carlo Amicucci 10

Modelli per CaronteModelli per Caronte

Codice di Controllo

(SystemC)

Codice di Controllo

(SystemC)

CompilatoreGCC

CompilatoreGCC

ConfigurazioniBlackBox(SystemC)

ConfigurazioniConfigurazioni

Processo di controllo

Processo di controllo

Schedulere Controller

Schedulere Controller

ModelloMemoria

ModelloMemoria

ModelloMemoria

BlackBoxes

ModelloCoreConnect

ModelloCoreConnect

PowerPCISS

PowerPCISS

Open SystemC PowerPC core models

Cross compilatore

GCC

Cross compilatore

GCC

Codice di Controllo(C/C++)

Codice di Controllo(C/C++)

Component assembly modelBus arbitration model

Page 11: Thesis Amicucci Slides IT

Carlo Amicucci 11

Risultati sperimentaliRisultati 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

Page 12: Thesis Amicucci Slides IT

Carlo Amicucci 12

Filtro AdattativoFiltro 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

BB1

BB1

BB1

BB1

BB1

Filtro passa basso

Sottrazione (Filtro passa

alto)

K(fL)

Applicazione della non linearità

Somma

PE

Tempo

Tempo di riconfigurazione

Tempo di elaborazione Immagine 1

Tempo di elaborazione Immagine 2

BB1

BB2

BB1

BB2

BB1

Filtro passa basso

Sottrazione (Filtro passa

alto)

K(fL)

Applicazione della non linearità

Somma

PE

Tempo

0

2

4

6

8

10

12

14

16

0 100 200 300 400 500 600 700 800 900 1000

Tempo (ms)

N d

i Op

eraz

ion

i

Arch. con una BlackBox

Arch. con due BlackBox

Arch. con tre BlackBox

Arch. con quattro BlackBox

Page 13: Thesis Amicucci Slides IT

Carlo Amicucci 13

Prestazioni del simulatorePrestazioni 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

0,00

50,00

100,00

150,00

200,00

250,00

300,00

1 2 3 4

Numero di BlackBoxes

Tem

po

(se

c)

Versione ottimizzata

Versione debug

Page 14: Thesis Amicucci Slides IT

Carlo Amicucci 14

Risultati e sviluppi futuriRisultati 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