UNA METODOLOGIA PER LA STIMA DELLE RISORSE HARDWARE IN ARCHITETTURE RICONFIGURABILI   Relatore: Prof. Fabrizio FERRANDI  C...
Sommario <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul><...
Introduzione <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></...
Sistemi dedicati Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Est...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Framework <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul>...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Estrazione delle metriche <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Test e risultati <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></u...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Esempi (2): unità funzionali Quindi l’area espressa in CLB dell’intero PDG è pari a: A [CLB] = A Somm  + A Cont  + A ArrMu...
Risultati (1): unità funzionali  Errore medio % Stima tempo Stima  FF Stima CLB Errore medio stima FF sempre nullo tranne ...
Risultati (2): il filtro FIR Il sorgente C del filtro è costituito dalla funzione  clear , che pone zeri nella  delay line...
Stato: .:: Introduzione > Sistemi dedicati > Obiettivi .:: Framework > PandA > Flusso di sviluppo .:: Estrazione delle met...
Upcoming SlideShare
Loading in...5
×

Thesis Magnone Slides IT

687
-1

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
687
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Thesis Magnone Slides IT

    1. 1. UNA METODOLOGIA PER LA STIMA DELLE RISORSE HARDWARE IN ARCHITETTURE RICONFIGURABILI Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco Domenico SANTAMBROGIO Tesina di Laurea di Marco MAGNONE Matr. 640006
    2. 2. Sommario <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul><ul><li>Framework </li></ul><ul><ul><li>PandA </li></ul></ul><ul><ul><li>Flusso di sviluppo </li></ul></ul><ul><li>Estrazione delle metriche </li></ul><ul><ul><li>PDG </li></ul></ul><ul><ul><li>Vettore di caratterizzazione </li></ul></ul><ul><ul><li>Implementazione </li></ul></ul><ul><ul><li>Parametrizzazione delle metriche </li></ul></ul><ul><ul><li>Struttura di CLB e slice </li></ul></ul><ul><li>Test e risultati </li></ul><ul><ul><li>Esempi </li></ul></ul><ul><ul><li>Risultati </li></ul></ul><ul><ul><li>Conclusioni e sviluppi futuri </li></ul></ul>
    3. 3. Introduzione <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul><ul><li>Framework </li></ul><ul><ul><li>PandA </li></ul></ul><ul><ul><li>Flusso di sviluppo </li></ul></ul><ul><li>Estrazione delle metriche </li></ul><ul><ul><li>PDG </li></ul></ul><ul><ul><li>Vettore di caratterizzazione </li></ul></ul><ul><ul><li>Implementazione delle metriche </li></ul></ul><ul><ul><li>Parametrizzazione delle metriche </li></ul></ul><ul><ul><li>Struttura di CLB e slice </li></ul></ul><ul><li>Test e risultati </li></ul><ul><ul><li>Esempi </li></ul></ul><ul><ul><li>Risultati </li></ul></ul><ul><ul><li>Conclusioni e sviluppi futuri </li></ul></ul>
    4. 4. Sistemi 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 <ul><li>Creazione del modello </li></ul><ul><li>Generazione della descrizione </li></ul>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 ..)
    5. 5. 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 Obiettivi <ul><li>SVANTAGGI DELLE METRICHE PRESENTI IN LETTERATURA </li></ul><ul><li>Limitazione a funzioni combinatorie ad un solo ingresso ( Nemani e Najm ) </li></ul><ul><li>Orientamento ad un solo dispositivo obiettivo, quindi in caso di differente architettura è necessario rifare tutto ( Kulkarni, Najjar, Rinkel ) </li></ul><ul><li>Errori medi di stima alti (intorno al 20-25%) </li></ul><ul><li>Sostanziale dipendenza tra implementazione delle metriche e dispositivo obiettivo scelto </li></ul>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
    6. 6. Framework <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul><ul><li>Framework </li></ul><ul><ul><li>PandA </li></ul></ul><ul><ul><li>Flusso di sviluppo </li></ul></ul><ul><li>Estrazione delle metriche </li></ul><ul><ul><li>PDG </li></ul></ul><ul><ul><li>Vettore di caratterizzazione </li></ul></ul><ul><ul><li>Implementazione delle metriche </li></ul></ul><ul><ul><li>Parametrizzazione delle metriche </li></ul></ul><ul><ul><li>Struttura di CLB e slice </li></ul></ul><ul><li>Test e risultati </li></ul><ul><ul><li>Esempi </li></ul></ul><ul><ul><li>Risultati </li></ul></ul><ul><ul><li>Conclusioni e sviluppi futuri </li></ul></ul>
    7. 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 PandA <ul><li>Progetto nato all’interno del DEI del Politecnico di Milano che mira a sviluppare un framework per la progettazione di sistemi dedicati </li></ul><ul><li>Struttura del progetto modulare, composta da sottoprogetti che interagiscono tra di loro, raggruppati in varie categorie: </li></ul><ul><ul><ul><li>Livello di gestione di descrizioni comportamentali </li></ul></ul></ul><ul><ul><ul><li>Livello di gestione di grafi e descrizioni strutturali </li></ul></ul></ul><ul><ul><ul><li>Livello di sintesi ad alto livello </li></ul></ul></ul><ul><li>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 </li></ul>Le metriche introdotte verranno implementate all’interno di PandA considerando il sotto-modulo IR: graph
    8. 8. 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 sviluppo Descrizione ad alto livello PandA GCC Parser IR: tree IR: graph IR: circuit Metriche Partizionamento HW/SW VHDL IP CoreGen EDK 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
    9. 9. Estrazione delle metriche <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul><ul><li>Framework </li></ul><ul><ul><li>PandA </li></ul></ul><ul><ul><li>Flusso di sviluppo </li></ul></ul><ul><li>Estrazione delle metriche </li></ul><ul><ul><li>PDG </li></ul></ul><ul><ul><li>Vettore di caratterizzazione </li></ul></ul><ul><ul><li>Implementazione delle metriche </li></ul></ul><ul><ul><li>Parametrizzazione delle metriche </li></ul></ul><ul><ul><li>Struttura di CLB e slice </li></ul></ul><ul><li>Test e risultati </li></ul><ul><ul><li>Esempi </li></ul></ul><ul><ul><li>Risultati </li></ul></ul><ul><ul><li>Conclusioni e sviluppi futuri </li></ul></ul>
    10. 10. 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 PDG Sa P Sb R 1 S 1 Sc ENTRY T a,li,- a,lc,- a,lc,a a,li,o a,lc,o S : for(a=ref; a<b; a++) { S 1 : ..........; } P : ..........; Sa Sb Sc Archi di dipendenza di controllo Archi di dipendenza dal flusso di dati X,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 R 1 Nodo regione
    11. 11. 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 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 C 1 -C 4 C 5 -C 6 C 7 -C 14 C 15 -C 17 C 28 -C 33 C 34 -C 38
    12. 12. 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 metriche 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..)
    13. 13. 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 metriche <ul><li>L’area e il ritardo di propagazione di ogni unità funzionale sono stati ottenuti </li></ul><ul><li>attraverso una serie di passi: </li></ul><ul><li>Generazione del learning-set </li></ul><ul><li>Sintesi del learning-set </li></ul><ul><li>Analisi del rapporto di sintesi </li></ul><ul><li>Estrazione della metrica dall’analisi del rapporto di sintesi </li></ul><ul><li>Validazione della metrica </li></ul>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
    14. 14. 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 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) C IN C OUT C IN C OUT SHIFT Switch Matrix Slice X0Y0 Slice X0Y1 Slice X1Y0 Slice X1Y1 C IN Slice X1Y0 Slice X1Y1 LUT F LUT G FF/ latch FF/ latch CY CY <ul><li>Ogni CLB è composta da: </li></ul><ul><li>4 slice </li></ul><ul><li>2 buffer 3-state </li></ul><ul><li>Ogni slice è composta da: </li></ul><ul><li>2 generatori di funzioni logiche (LUT a 4 ingressi) </li></ul><ul><li>2 elementi di memorizzazione funzionanti in modalità sincrona (FF) o asincrona (latch) </li></ul>
    15. 15. Test e risultati <ul><li>Introduzione </li></ul><ul><ul><li>Sistemi dedicati </li></ul></ul><ul><ul><li>Obiettivi </li></ul></ul><ul><li>Framework </li></ul><ul><ul><li>PandA </li></ul></ul><ul><ul><li>Flusso di sviluppo </li></ul></ul><ul><li>Estrazione delle metriche </li></ul><ul><ul><li>PDG </li></ul></ul><ul><ul><li>Vettore di caratterizzazione </li></ul></ul><ul><ul><li>Implementazione delle metriche </li></ul></ul><ul><ul><li>Parametrizzazione delle metriche </li></ul></ul><ul><ul><li>Struttura di CLB e slice </li></ul></ul><ul><li>Test e risultati </li></ul><ul><ul><li>Esempi </li></ul></ul><ul><ul><li>Risultati </li></ul></ul><ul><ul><li>Conclusioni e sviluppi futuri </li></ul></ul>
    16. 16. 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à funzionali <ul><li>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: </li></ul><ul><li>Sommatori – Sottrattori </li></ul><ul><li>CLB =N Slice =S*N LUT =L*N N dimensione in byte degli addendi </li></ul><ul><li>Moltiplicatori </li></ul>N 2 /2 [(N 1 =1), V N 2 ] N 1 *N 2 [(1<N 1 <16), V N 2 ] V [N 1 >16, N 2 >50] (N 1 +N 2 ) [(N 1 >16), (1<N 2 <50)] 4 CLB = N 1 , N 2 dimensione in byte delle due variabili da moltiplicare 2 Quindi per l’intero PDG si avranno le seguenti metriche per i sommatori e moltiplicatori: A Somm [CLB] = C 1 *C 2 C 1 num. Sommatori, C 2 dim.media addendi A Mol1 [CLB] = C 15 *C 16 *0.5 C 15 num. Molt. con N 1 =1, C 16 dim.media N 2 A Mol2 [CLB] = C 17 *C 18 *C 19 A Mol3 [CLB] = C 20 *(C 21 +C 22 )*0.25 A Mol4 [CLB] = C 23 *C 24 *C 25
    17. 17. Esempi (2): unità funzionali Quindi l’area espressa in CLB dell’intero PDG è pari a: A [CLB] = A Somm + A Cont + A ArrMul + A Comp1 + A Comp2 + A Comp3 + A Comp4 + A Mol1 + A Mol2 + + A Mol3 + AMol4 + A MolK + A OpLog1 + A OpLog2 + A OpLog3 + A Mux Per quanto riguarda il timing , si è proceduto nello stesso modo e si è ottenuto ad esempio per gli addizionatori: T Add [s] = NumAdd * [(LungMediaAddendo*d r )+d c ] d r e d c 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) (T Add + T Mol + T Mux + T Log ) 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 (A 1 ,A 2 ) e timing (T 1 ,T 2 ), il macro nodo risultante ha: A = A 1 + A 2 T = MAX (T 1 ,T 2 ) 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
    18. 18. 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
    19. 19. Risultati (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. Stima Implementazione Area [CLB] 75 80 85 90 95 100 Stima Implementazione 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
    20. 20. 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 futuri <ul><li>Errori medi di stima per le singole unità funzionali soddisfacenti, intorno al 2% per le CLB e al 5% per il tempo di esecuzione </li></ul><ul><li>Facilità nell’adattare le metriche ad architetture differenti </li></ul><ul><li>Errori medi di stima per benchmark complessi tra il 12% e il 18% </li></ul><ul><li>Problemi riscontrati con il wiring delay </li></ul><ul><li>Maggiore utilizzo dei PDG a granularità fine </li></ul><ul><li>Integrazione automatica nel flusso di sviluppo delle stime ottenute </li></ul><ul><li>Maggiore indipendenza dai coefficienti di delay nelle stime del tempo di esecuzione </li></ul>In futuro..
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×