Thesis Magnone Slides IT

20
Politecnico di Milano Politecnico di Milano UNA METODOLOGIA PER LA STIMA DELLE RISORSE HARDWARE IN ARCHITETTURE RICONFIGURABILI Relatore: Prof. Fabrizio FERRANDI Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco Domenico Correlatore: Ing. Marco Domenico SANTAMBROGIO SANTAMBROGIO Tesina di Laurea di Marco MAGNONE Matr. 640006

Transcript of Thesis Magnone Slides IT

Page 1: Thesis Magnone Slides IT

Politecnico di MilanoPolitecnico di Milano

UNA METODOLOGIA PER LA STIMADELLE RISORSE HARDWARE

IN ARCHITETTURE RICONFIGURABILI

Relatore: Prof. Fabrizio FERRANDI Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco Domenico SANTAMBROGIOCorrelatore: Ing. Marco Domenico SANTAMBROGIO

Tesina di Laurea di Marco MAGNONE

Matr. 640006

Page 2: Thesis Magnone Slides IT

- - 22 - -DRESD - PandA ProjectDRESD - PandA Project

SommarioSommario

IntroduzioneSistemi dedicatiObiettivi

FrameworkPandAFlusso di sviluppo

Estrazione delle metrichePDGVettore di caratterizzazioneImplementazioneParametrizzazione delle metricheStruttura di CLB e slice

Test e risultatiEsempiRisultatiConclusioni e sviluppi futuri

Page 3: Thesis Magnone Slides IT

- - 33 - -DRESD - PandA ProjectDRESD - PandA Project

IntroduzioneIntroduzione

IntroduzioneSistemi dedicatiObiettivi

FrameworkPandAFlusso di sviluppo

Estrazione delle metrichePDGVettore di caratterizzazioneImplementazione delle metricheParametrizzazione delle metricheStruttura di CLB e slice

Test e risultatiEsempiRisultatiConclusioni e sviluppi futuri

Page 4: Thesis Magnone Slides IT

- - 44 - -DRESD - PandA ProjectDRESD - PandA Project

Sistemi dedicatiSistemi dedicati

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG.> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Descrizione a livello di sistema

Analisi

Verifica

Partizionamento HW/SW

Descrizione HW Descrizione SW

Sintesi HW Generazione SW

Sintesi Interfacce

Integrazione + Valutazione vincoli

Simulazione + Validazione

Sistema Integrato

• Creazione del modello

• Generazione della descrizione

Valutazione del progetto ed esplorazione dello spazio delle soluzioni sulla base di prestazioni, dimensioni, consumo e costo

Minimizzazione di una cifra di merito rispettando i vincoli di progetto. E’ necessario disporre di strumenti di stima della qualità del sistema per la parte hardware e quella software

Verifica del comportamento del sistema da un punto di vista funzionale e di timing sia per validare la specifica iniziale sia il partizionamento introdotto

Tecniche per la sincronizzazione tra hardware e software (scambi di segnale, schemi in interrupt..)

Page 5: Thesis Magnone Slides IT

- - 55 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

ObiettiviObiettivi

SVANTAGGI DELLE METRICHE PRESENTI IN LETTERATURA

• Limitazione a funzioni combinatorie ad un solo ingresso (Nemani e Najm)

• Orientamento ad un solo dispositivo obiettivo, quindi in caso di differente architettura è necessario rifare tutto (Kulkarni, Najjar, Rinkel)

• Errori medi di stima alti (intorno al 20-25%)

• Sostanziale dipendenza tra implementazione delle metriche e dispositivo

obiettivo scelto

Ricerca di metriche che permettano una stima affidabile dell’area occupata e del tempo di esecuzione dei singoli componenti in

un’architettura riconfigurabile utilizzando descrizioni semi formali quali PDG e SDG

Analisi di varie strutture dati (PDG e FGPDG) e validazione dei risultati tramite flusso automatico con l’utilizzo di EDK

Page 6: Thesis Magnone Slides IT

- - 66 - -DRESD - PandA ProjectDRESD - PandA Project

FrameworkFramework

IntroduzioneSistemi dedicatiObiettivi

FrameworkPandAFlusso di sviluppo

Estrazione delle metrichePDGVettore di caratterizzazioneImplementazione delle metricheParametrizzazione delle metricheStruttura di CLB e slice

Test e risultatiEsempiRisultatiConclusioni e sviluppi futuri

Page 7: Thesis Magnone Slides IT

- - 77 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

PandAPandA

• Progetto nato all’interno del DEI del Politecnico di Milano che mira a sviluppare un framework per la progettazione di sistemi dedicati

• Struttura del progetto modulare, composta da sottoprogetti che interagiscono tra di loro, raggruppati in varie categorie:

1. Livello di gestione di descrizioni comportamentali

2. Livello di gestione di grafi e descrizioni strutturali

3. Livello di sintesi ad alto livello

• La struttura interna si chiama IR: tree ed è un grafo i cui nodi sono istanze di classi C++ appartenenti ad un’unica gerarchia, mentre gli archi sono implicitamente definiti come riferimenti tra coppie di nodi. E’ composto da due sotto-moduli: IR: graph e IR: circuit

Le metriche introdotte verranno implementate all’interno di PandA considerando il sotto-modulo IR: graph

Page 8: Thesis Magnone Slides IT

- - 88 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Flusso di sviluppoFlusso di sviluppo

Descrizione ad alto livello PandA GCC Parser

IR: tree

IR: graph

IR: circuit

Metriche

Partizionamento HW/SW

VHDLIP CoreGenEDK System Creator

bitstream C

Tool che crea automaticamente un core compatibile con EDK partendo da una generica funzionalità VHDL

Tool che collega automaticamente il generico IP-Core e un dato sistema con architettura EDK-compatibile

Page 9: Thesis Magnone Slides IT

- - 99 - -DRESD - PandA ProjectDRESD - PandA Project

Estrazione delle metricheEstrazione delle metriche

IntroduzioneSistemi dedicatiObiettivi

FrameworkPandAFlusso di sviluppo

Estrazione delle metrichePDGVettore di caratterizzazioneImplementazione delle metricheParametrizzazione delle metricheStruttura di CLB e slice

Test e risultatiEsempiRisultatiConclusioni e sviluppi futuri

Page 10: Thesis Magnone Slides IT

- - 1010 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

PDGPDG

Sa P

Sb

R1

S1 Sc

ENTRY

T

a,li,-

a,lc,-a,lc,a

a,li,o

a,lc,o

S: for(a=ref; a<b; a++) {

S1: ..........; }

P: ..........;

Sa Sb Sc

Archi di dipendenza di controllo

Archi di dipendenza dal flusso di datiX,Y,Z

X Variabile interessata alla dipendenza

Y

li loop indipendent

lc loop carried

Z

do def-order dependency o output dependency a anti-dependency - nessuna delle tre precedenti

R1 Nodo regione

Page 11: Thesis Magnone Slides IT

- - 1111 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Vettore di caratterizzazioneVettore di caratterizzazione

Il processo di stima esplora progressivamente l’intero grafo per arrivare a determinare le caratteristiche dell’intera applicazione.

Si considera il PDG di ogni task presente nell’applicazione e si compila una lista di tutti i tipi di operazioni presenti, determinando un vettore di caratterizzazione del tipo:

Unità funzionale Coefficiente

Sommatori – Sottrattori - Contatori

Array Multiplier

Comparatori

Moltiplicatori - Moltiplicatori per costante

Operazioni Logiche

MUX - Shifter

C1-C4

C5-C6

C7-C14

C15-C17

C28-C33

C34-C38

Page 12: Thesis Magnone Slides IT

- - 1212 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Implementazione delle Implementazione delle metrichemetriche

Una volta che il PDG è stimato, si considerano le dipendenze di controllo, quali loop o branch, e si costruiscono dei macro-nodi fondendo insieme due o piu’ nodi, e si ripete il procedimento per i nuovi nodi.

ENTRY

S S3

S1 S2

T F

ENTRY

S S3

S1 S2

T F

ENTRY

S S3

S1 S2

T F

Allo stesso modo si valutano gli SDG, cioè considerando i singoli PDG come macro-nodi e valutando le dipendenze che intercorrono tra essi (esecuzione parallela, sequenziale..)

Page 13: Thesis Magnone Slides IT

- - 1313 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Parametrizzazione delle Parametrizzazione delle metrichemetriche

L’area e il ritardo di propagazione di ogni unità funzionale sono stati ottenuti

attraverso una serie di passi:

1. Generazione del learning-set

2. Sintesi del learning-set

3. Analisi del rapporto di sintesi

4. Estrazione della metrica dall’analisi del rapporto di sintesi

5. Validazione della metrica

Per rendere le metriche adattabili ad un certo numero di dispositivi, si sono introdotti dei parametri, S e L, indicanti rispettivamente il numero di slice e di LUT all’interno di una singola CLB. Quindi prima di applicare le metriche è necessario ottenere il valore di tali costanti, in base all’architettura di volta in volta presa in considerazione.

Xilinx FPGA S L

Virtex II Pro – Virtex II – Virtex IV 4 8 Virtex V 2 8 Virtex 2 4 Spartan 3/3L – Spartan 3E 4 8

Page 14: Thesis Magnone Slides IT

- - 1414 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Struttura di CLB e sliceStruttura di CLB e slice

L’architettura obiettivo di questo lavoro è la Virtex II Pro di Xilinx, che ha all’interno di ogni CLB 4 slice (S=4) e 4x2=8 LUT (L=8)

CIN

COUT

CIN

COUT

SHIFT

Switch

Matrix

Slice

X0Y0

Slice

X0Y1

Slice

X1Y0

Slice

X1Y1

CIN

Slice

X1Y0

Slice

X1Y1

LUT

F

LUT

G

FF/

latch

FF/

latch

CY

CY

Ogni CLB è composta da:• 4 slice• 2 buffer 3-state

Ogni slice è composta da:• 2 generatori di funzioni logiche (LUT a 4 ingressi)• 2 elementi di memorizzazione funzionanti in modalità sincrona (FF) o asincrona (latch)

Page 15: Thesis Magnone Slides IT

- - 1515 - -DRESD - PandA ProjectDRESD - PandA Project

Test e risultatiTest e risultati

IntroduzioneSistemi dedicatiObiettivi

FrameworkPandAFlusso di sviluppo

Estrazione delle metrichePDGVettore di caratterizzazioneImplementazione delle metricheParametrizzazione delle metricheStruttura di CLB e slice

Test e risultatiEsempiRisultatiConclusioni e sviluppi futuri

Page 16: Thesis Magnone Slides IT

- - 1616 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Esempi (1): unità funzionaliEsempi (1): unità funzionali

Alcuni esempi di metriche ottenute per la SINGOLA unità funzionale, per le famiglie Virtex II e Spartan, per le quali il potere espressivo di una CLB equivale ad un byte:

• Sommatori – Sottrattori

CLB=N Slice=S*N LUT=L*N N dimensione in byte degli addendi

• Moltiplicatori

N2/2 [(N1=1), V N2]

N1*N2 [(1<N1<16), V N2] V [N1>16, N2>50]

(N1+N2) [(N1>16), (1<N2<50)]4

CLB=

N1, N2 dimensione in byte delle due variabili da moltiplicare

2

Quindi per l’intero PDG si avranno le seguenti metriche per i sommatori e moltiplicatori:

ASomm[CLB] = C1*C2 C1 num. Sommatori, C2 dim.media addendi

AMol1[CLB] = C15*C16*0.5 C15 num. Molt. con N1=1, C16 dim.media N2

AMol2[CLB] = C17*C18*C19

AMol3[CLB] = C20*(C21+C22)*0.25

AMol4[CLB] = C23*C24*C25

Page 17: Thesis Magnone Slides IT

- - 1717 - -DRESD - PandA ProjectDRESD - PandA Project

Esempi (2): unità funzionaliEsempi (2): unità funzionali

Quindi l’area espressa in CLB dell’intero PDG è pari a:

A[CLB] = ASomm + ACont + AArrMul + AComp1 + AComp2 + AComp3 + AComp4 + AMol1 + AMol2+ + AMol3 + AMol4 + AMolK + AOpLog1 + AOpLog2 + AOpLog3 + AMux

Per quanto riguarda il timing, si è proceduto nello stesso modo e si è ottenuto ad esempio per gli addizionatori:

TAdd[s] = NumAdd * [(LungMediaAddendo*dr)+dc]

dr e dc sono rispettivamente il ripple line delay e il combinatorial delay e sono ricavabili dal data sheet della scheda

Quindi il ritardo di propagazione è dato dalla somma dei singoli contributi, pesati da un fattore empirico 1.5 necessario per tenere in considerazione l’influenza del routing e dal fattore (1/LP) necessario per pesare la somma dei singoli contributi in relazione alla struttura del task.

T[s] = (1.5/LP) (TAdd + TMol + TMux + TLog)

Una volta che il PDG è stimato, costituisce un nodo, quindi si considerano le dipendenze di controllo, si formano i macro-nodi e si combinano le stime di area e tempo. Ad esempio nel caso di nodi eseguiti in PARALLELO con area (A1,A2) e timing (T1,T2), il macro nodo risultante ha: A = A1 + A2 T = MAX (T1,T2)

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Page 18: Thesis Magnone Slides IT

- - 1818 - -DRESD - PandA ProjectDRESD - PandA Project

Risultati (1): unità funzionali Risultati (1): unità funzionali

Errore medio %

Stima tempo

Stima FF

Stima CLB

Errore medio stima FF sempre nullo tranne Molt. e MUX

Errore medio stima CLB intorno al 2%

Errore medio stima tempo di esecuzione al di sotto del 5% (problema wiring)

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Page 19: Thesis Magnone Slides IT

- - 1919 - -DRESD - PandA ProjectDRESD - PandA Project

Risultati (2): il filtro FIRRisultati (2): il filtro FIR

Il sorgente C del filtro è costituito dalla funzione clear, che pone zeri nella delay line e dalla funzione fir-basic, che immagazzina i campioni di ingresso e calcola i campioni di uscita.

StimaImplementazione

Area [CLB]

75

80

85

90

95

100

StimaImplementazione

Frequenza [Mhz]

Errore medio stima CLB tra il 12% e il 18%

Errore medio stima temporale 7%

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Page 20: Thesis Magnone Slides IT

- - 2020 - -DRESD - PandA ProjectDRESD - PandA Project

Stato:

.:: Introduzione> Sistemi dedicati> Obiettivi

.:: Framework> PandA> Flusso di sviluppo

.:: Estrazione delle metriche> PDG> Vettore di caratterizzaz.> Implementaz. > Parametr.> CLB e slice

.:: Test e risultati> Esempi> Risultati> Conclusioni e sviluppi futuri

Conclusioni e sviluppi futuriConclusioni e sviluppi futuri

• Errori medi di stima per le singole unità funzionali soddisfacenti, intorno al 2% per le CLB e al 5% per il tempo di esecuzione

• Facilità nell’adattare le metriche ad architetture differenti

• Errori medi di stima per benchmark complessi tra il 12% e il 18%

• Problemi riscontrati con il wiring delay

• Maggiore utilizzo dei PDG a granularità fine

• Integrazione automatica nel flusso di sviluppo delle stime ottenute

• Maggiore indipendenza dai coefficienti di delay nelle stime del tempo di esecuzione

In futuro..