Politecnico di Milano UNA METODOLOGIA PER LA STIMA DELLE RISORSE HARDWARE IN ARCHITETTURE RICONFIGURABILI Relatore: Prof. Fabrizio FERRANDI Correlatore:

Slides:



Advertisements
Presentazioni simili
Implementazione di un sistema di gestione per un IP-Core in ambiente GNU\Linux embedded: Infrared Data Association Relatore: Prof. Fabrizio FERRANDI Correlatore:
Advertisements

Misure riflettometriche nel dominio della frequenza (OFDR)
1 Introduzione ai calcolatori Parte II Software di base.
Francesco Redaelli - Davide Sacchi
Politecnico di Milano Realizzazione di un componente per un sistema dedicato: integrazione del componente RC6 a 128 bit in EDK Relatore: Prof. Fabrizio.
Politecnico di Milano Sviluppo di una applicazione per DIOPSIS 740: Rotazione e Ridimensionamento di immagini Sviluppo di una applicazione per DIOPSIS.
Relatore: Prof. Anna Antola
Carlo Di Federico - Matricola n Roberto Gonella - Matricola n
IPGen: un framework per la generazione automatica di IP-Core per FPGA
BAnMaT Light: un tool per la rilocazione software dei bitstream
BAnMaT:un framework per l’analisi e la manipolazione di bitstream orientato alla riconfigurabilità parziale Relatore: Prof. Fabrizio FERRANDI.
POLITECNICO DI MILANO Valutazione del tool PlanAhead per la realizzazione di architetture riconfigurabili Chiara Fornoni: Relatore:
Politecnico di Milano Realizzazione di una Applicazione basata su Riconfigurabilit à Dinamica: Riconoscimento di Contorni di Immagini A.A. 2004/2005 Relatore:
Realizzazione di un componente per un sistema dedicato: sviluppo dell’algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio Ferrandi Correlatore:
POLITECNICO DI MILANO Politecnico di Milano A.A. 2005/06 MECCANISMI DI SINCRONIZZAZIONE PER SISTEMI MULTIPROCESSORE BASATI SUL DISPOSITIVO D740 Candidato:
Relatore: Prof. Fabrizio Ferrandi
Politecnico di Milano Sviluppo di strumenti per l'analisi e la manipolazione di bitstream per la riconfigurabilità parziale Relatore: Prof. Fabrizio FERRANDI.
POLITECNICO DI MILANO NERD: Net-based Environment for Reconfigurable Devices Realizzazione di un Framework Distribuito Multi Utente per la Riconfigurabilità
Politecnico di Milano Realizzazione di un algoritmo di controllo per la riconfigurabilit à dinamica di moduli SystemC Relatore: Fabrizio Ferrandi Correlatore:
POLITECNICO DI MILANO DRCP: Come gestire in modo efficiente la riconfigurazione parziale dinamica su FPGA Luca Cerri: Relatore: Prof.
Relatore: Prof. Fabrizio FERRANDI
Stefano Magnoni : Arber Ngjela : Relatore: Prof. Francesco BRUSCHI
Progetto di circuiti su FPGA
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Circuiti sequenziali Capitolo 5.
Laureando: Emanuele Viviani
Realizzazione di algoritmi video su FPGA
Architetture.
Università degli Studi di Trieste
Introduzione Cosa sono le reti di Petri?
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Basi di Dati prof. A. Longheu
Relatore:. Prof. Fabrizio FERRANDI Correlatore:. Ing. Marco D
Architettura e modi di trasferimento
Luca Pizzamiglio Dipartimento di Elettronica ed Informazione Corso di Laurea in Ingegneria Informatica 17 Giugno 2003 Stimatori d'area per descrizioni.
Controllo remoto di un robot mobile realizzato con Lego Mindstorms
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Reti Logiche Luciano Gualà home page
Introduzione ai circuiti sequenziali
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
A.S.E.25.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 25 Reti sequenziali sincronizzate complesseReti sequenziali sincronizzate complesse –Macchina.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Strutture di controllo in C -- Flow Chart --
Reti Logiche Luciano Gualà
PROGETTO 1 Un lettore di musica digitale è dotato di un sistema per la regolazione del volume composto da tre pulsanti + e – e [] e progettato in modo.
D.E.I.S. Universita di Bologna VHDL come strumento CAD allinterno di flussi di progetto per dispositivi Digitali VHDL come strumento CAD allinterno di.
Contatore: esempio di circuito sequenziale
SISTEMI LINEARI TEMPO INVARIANTI SEZIONE 7
ARITMETICA BINARIA.
PROGETTO DI UN FILTRO POLIFASE FIR DECIMATORE PER IMPIEGO IN UN SISTEMA MULTISTANDARD UMTS-WLAN RELATORE: Prof. Carla Vacchi CORRELATORE: Ing. Everest.
Marco Losito - matr Paola Mussida - matr
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria “Enzo Ferrari” – Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica.
Parte 1 Introduzione alla Teoria dei Circuiti
UNIVERSITÀ DEGLI STUDI DI PAVIA
Un motion planner per guide multimediali interattive
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Elaborato di Laurea di Alessandro LAZZARINI BARNABEI
STMicroelectronics Proposte di tesi
ELETTRONICA DIGITALE (II PARTE) (1)
VHDL per FPGA Courtesy of S. Mattoccia.
Lezione 2 Matlab: Control System Toolbox
Teoria dei sistemi Autore: LUCA ORRU'.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano introduzione alle architetture superscalari Come.
4/12/98Cristina Silvano - CEFRIEL1 Sintesi ad alto livello Cristina Silvano CEFRIEL - Politecnico di Milano Electronic Design Automation (EDA) Area Via.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più.
Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti.
Transcript della presentazione:

Politecnico di Milano 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

DRESD - PandA Project Sommario Introduzione Sistemi dedicati Obiettivi Framework PandA Flusso di sviluppo Estrazione delle metriche PDG Vettore di caratterizzazione Implementazione Parametrizzazione delle metriche Struttura di CLB e slice Test e risultati Esempi Risultati Conclusioni e sviluppi futuri

DRESD - PandA Project Introduzione Introduzione Sistemi dedicati Obiettivi Framework PandA Flusso di sviluppo Estrazione delle metriche PDG Vettore di caratterizzazione Implementazione delle metriche Parametrizzazione delle metriche Struttura di CLB e slice Test e risultati Esempi Risultati Conclusioni e sviluppi futuri

DRESD - PandA Project 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 HWDescrizione SW Sintesi HWGenerazione 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..)

DRESD - 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 Obiettivi 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 dellarea occupata e del tempo di esecuzione dei singoli componenti in unarchitettura 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 lutilizzo di EDK

DRESD - PandA Project Framework Introduzione Sistemi dedicati Obiettivi Framework PandA Flusso di sviluppo Estrazione delle metriche PDG Vettore di caratterizzazione Implementazione delle metriche Parametrizzazione delle metriche Struttura di CLB e slice Test e risultati Esempi Risultati Conclusioni e sviluppi futuri

DRESD - 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 PandA Progetto nato allinterno 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 ununica 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 allinterno di PandA considerando il sotto-modulo IR: graph

DRESD - 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 sviluppo Descrizione ad alto livello PandA GCCParser IR: tree IR: graph IR: circuit Metriche Partizionamento HW/SW VHDLIP CoreGen EDK System Creator bitstreamC 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

DRESD - PandA Project Estrazione delle metriche Introduzione Sistemi dedicati Obiettivi Framework PandA Flusso di sviluppo Estrazione delle metriche PDG Vettore di caratterizzazione Implementazione delle metriche Parametrizzazione delle metriche Struttura di CLB e slice Test e risultati Esempi Risultati Conclusioni e sviluppi futuri

DRESD - 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 PDG Sa P Sb R1R1 S1S1 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: ; SaSbSc 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

DRESD - 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 caratterizzazione Il processo di stima esplora progressivamente lintero grafo per arrivare a determinare le caratteristiche dellintera applicazione. Si considera il PDG di ogni task presente nellapplicazione 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

DRESD - 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 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 SS3 S1S2 T F ENTRY S S3 S1S2 T F ENTRY S S3 S1S2 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..)

DRESD - 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 metriche Larea 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 dallanalisi 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 allinterno di una singola CLB. Quindi prima di applicare le metriche è necessario ottenere il valore di tali costanti, in base allarchitettura 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

DRESD - 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 slice Larchitettura obiettivo di questo lavoro è la Virtex II Pro di Xilinx, che ha allinterno 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 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)

DRESD - PandA Project Test e risultati Introduzione Sistemi dedicati Obiettivi Framework PandA Flusso di sviluppo Estrazione delle metriche PDG Vettore di caratterizzazione Implementazione delle metriche Parametrizzazione delle metriche Struttura di CLB e slice Test e risultati Esempi Risultati Conclusioni e sviluppi futuri

DRESD - 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à 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 N 2 /2[(N 1 =1), V N 2 ] N 1 *N 2 [(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 lintero 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.5C 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

DRESD - PandA Project Esempi (2): unità funzionali Quindi larea espressa in CLB dellintero 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 linfluenza 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

DRESD - PandA Project 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

DRESD - PandA Project 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] 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

DRESD - 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 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à nelladattare 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..