Upload
lalia-grandi
View
218
Download
1
Embed Size (px)
Citation preview
Politecnico di MilanoPolitecnico di Milano
Sviluppo di strumenti per l'analisi e la Sviluppo di strumenti per l'analisi e la manipolazione di bitstream per la manipolazione di bitstream per la
riconfigurabilità parzialericonfigurabilità parziale
Relatore: Relatore: Prof. Fabrizio FERRANDI Prof. Fabrizio FERRANDI Correlatore: Correlatore: Ing. Marco D. SANTAMBROGIOIng. Marco D. SANTAMBROGIO
Tesi di Laurea di: Tesi di Laurea di: Giorgio Galvalisi Giorgio Galvalisi
Carmine Galeone Carmine Galeone
Anno Accademico 2004/2005
2
SommarioSommario
• Introduzione alle FPGAIntroduzione alle FPGA
• La riconfigurabilità parzialeLa riconfigurabilità parziale
• BAnMaTBAnMaT
• Lavoro svoltoLavoro svolto
• ConclusioniConclusioni
3
Field Programmable Gate Field Programmable Gate ArraysArrays
• Dispositivi programmabili dall’utenteDispositivi programmabili dall’utente
• Schema semplificato di una FPGA XilinxSchema semplificato di una FPGA Xilinx
• CLB
• IOB
• Interconnessione
4 Slice in un CLB2 Celle Logiche per Slice
4
• Unità base: frame (largo un bit, lungo tutta la Unità base: frame (largo un bit, lungo tutta la FPGA)FPGA)
• Colonna: composta da più frameColonna: composta da più frame
Memoria di configurazioneMemoria di configurazione
Colonna CLB = 48 frameMajor Address
5
• File binario contenente la configurazione File binario contenente la configurazione della FPGAdella FPGA
• Composto daComposto da
• Comandi di configurazioneComandi di configurazione
• Dati di configurazioneDati di configurazione
• StrutturaStruttura
BitstreamBitstream
6
• La FPGA viene riconfigurata solo in parteLa FPGA viene riconfigurata solo in parte
• Riduzione dei tempi di riconfigurazioneRiduzione dei tempi di riconfigurazione
• Possibilità di realizzare sistemi complessi attraverso Possibilità di realizzare sistemi complessi attraverso divisione in modulidivisione in moduli
• Due approcciDue approcci
• Module basedModule based
• Difference basedDifference based
Riconfigurazione ParzialeRiconfigurazione Parziale
7
Funzionalità dello strumento:Funzionalità dello strumento:
• Analisi passivaAnalisi passiva
• Analisi attivaAnalisi attiva
• Implementazione originale: analisi del file Implementazione originale: analisi del file mediante funzione di parsingmediante funzione di parsing
BBitstream itstream AnAnalysis alysis MaManipulation nipulation TToolool
8
Il parser: flusso di Il parser: flusso di esecuzioneesecuzione
9
•Modifiche al programmaModifiche al programma
• Gestione erroriGestione errori
• Funzionalità aggiunteFunzionalità aggiunte
• Calcolo funzioniCalcolo funzioni
• Lettura frameLettura frame
• Lettura colonne CLBLettura colonne CLB
• Lettura LUTLettura LUT
• Scrittura LUTScrittura LUT
Fasi del lavoroFasi del lavoro
10
• Permettono di localizzare un componente nel Permettono di localizzare un componente nel bitstreambitstream
• Esempio: caso CLBEsempio: caso CLB
Calcolo funzioniCalcolo funzioni
11
• Lettura frameLettura frame
• Calcolo di MJA e MNACalcolo di MJA e MNA
• Estrazione del frame volutoEstrazione del frame voluto
• Lettura colonnaLettura colonna
• Calcolo del MJACalcolo del MJA
• Lettura di 48 frame consecutiviLettura di 48 frame consecutivi
(da MNA=0 a MNA=47)(da MNA=0 a MNA=47)
Lettura frame/colonnaLettura frame/colonna
12
• Look-Up Table: implementa funzione combinatoria ad n Look-Up Table: implementa funzione combinatoria ad n ingressiingressi
Lettura LUT (1/2)Lettura LUT (1/2)
13
• 16 frame da leggere16 frame da leggere
• Per ciascun framePer ciascun frame
• Calcolo della posizione Calcolo della posizione
del framedel frame
• Lettura del frameLettura del frame
• Estrazione della parola Estrazione della parola
contenente il bitcontenente il bit
• Lettura del bitLettura del bit
Lettura LUT (2/2)Lettura LUT (2/2)
14
Per ciascun framePer ciascun frame
• Calcolo della posizione Calcolo della posizione
del framedel frame
• Lettura del frameLettura del frame
• Estrazione della parola Estrazione della parola
contenente il bitcontenente il bit
• Lettura del bit originale Lettura del bit originale
e sostituzione del nuovo bite sostituzione del nuovo bit
Scrittura LUTScrittura LUT
15
• Possibili applicazioniPossibili applicazioni
• Approccio Approccio difference baseddifference based alla riconfigurazione alla riconfigurazione parzialeparziale
• Analisi struttura bitstreamAnalisi struttura bitstream
• Individuazione erroriIndividuazione errori
• Correzione di componenti logici mal configuratiCorrezione di componenti logici mal configurati
• Lavori futuriLavori futuri
• Lettura di frame/colonne IOB e RAMLettura di frame/colonne IOB e RAM
• Lettura e modifica di blocchi SRAMLettura e modifica di blocchi SRAM
ConclusioniConclusioni
16
Fine PresentazioneFine Presentazione