3dd 1e birf

22
Politecnico di Milano Politecnico di Milano BiRF: BiRF: Bitstream Relocation Filter Bitstream Relocation Filter Anno Accademico 2005/2006 Massimo Morandi, Marco Novati Massimo Morandi, Marco Novati 3 Giorni DRESD 3 Giorni DRESD 31/7/2006 - 2/8/2006 31/7/2006 - 2/8/2006

Upload: usrdresd

Post on 11-Jul-2015

171 views

Category:

Business


0 download

TRANSCRIPT

Page 1: 3DD 1e BiRf

Politecnico di MilanoPolitecnico di Milano

BiRF:BiRF:Bitstream Relocation FilterBitstream Relocation Filter

Anno Accademico 2005/2006

Massimo Morandi, Marco NovatiMassimo Morandi, Marco Novati

3 Giorni DRESD3 Giorni DRESD31/7/2006 - 2/8/200631/7/2006 - 2/8/2006

Page 2: 3DD 1e BiRf

2

• Obiettivo del lavoroObiettivo del lavoro

• Riconfigurazione per colonneRiconfigurazione per colonne

• Struttura memoria di configurazioneStruttura memoria di configurazione

• Contenuto di un bitstreamContenuto di un bitstream

• Strumenti di rilocazioneStrumenti di rilocazione

• Struttura e funzionamento di BiRFStruttura e funzionamento di BiRF

• Dati di sintesi e di testDati di sintesi e di test

• Conclusioni e sviluppi futuriConclusioni e sviluppi futuri

SommarioSommario

Page 3: 3DD 1e BiRf

3

Obiettivo del lavoro 1/3Obiettivo del lavoro 1/3

• Riconfigurazione dinamica interna secondo Riconfigurazione dinamica interna secondo l'approccio per colonnel'approccio per colonne

• Necessità di creare un gran numero di bitstream Necessità di creare un gran numero di bitstream ottenuti come differenzaottenuti come differenza

• Se si vogliono elevate prestazioni non è ammissibile Se si vogliono elevate prestazioni non è ammissibile che l'intero processo di creazione dei bitstream che l'intero processo di creazione dei bitstream avvenga a runtimeavvenga a runtime

Page 4: 3DD 1e BiRf

4

Obiettivo del lavoro 2/3Obiettivo del lavoro 2/3

• La soluzione tradizionale prevede la memorizzazione La soluzione tradizionale prevede la memorizzazione di tutti i bitstream parziali che vengono creati a prioridi tutti i bitstream parziali che vengono creati a priori

• Questo comporta un notevole lavoro in fase di sintesi Questo comporta un notevole lavoro in fase di sintesi e un grande spreco di memoria sul dispositivoe un grande spreco di memoria sul dispositivo

• Sarebbe vantaggioso poter ottenere a runtime tutti i Sarebbe vantaggioso poter ottenere a runtime tutti i possibili bitstream a partire da una quantità limitata possibili bitstream a partire da una quantità limitata in memoriain memoria

• Sì può fare?Sì può fare?

Page 5: 3DD 1e BiRf

5

• Sì può fare, con la rilocazioneSì può fare, con la rilocazione

• Dato un bitstream è possibile, con opportune Dato un bitstream è possibile, con opportune manipolazioni, modificare la posizione su FPGA del manipolazioni, modificare la posizione su FPGA del modulo che descrivemodulo che descrive

• Sfruttando questa possibilità basta creare a priori e Sfruttando questa possibilità basta creare a priori e salvare un solo bitstream per ogni ip-core dal quale si salvare un solo bitstream per ogni ip-core dal quale si possono ricavare tutti gli altri in differenti posizionipossono ricavare tutti gli altri in differenti posizioni

• BiRF si occupa appunto di effettuare tali BiRF si occupa appunto di effettuare tali manipolazioni a runtimemanipolazioni a runtime

Obiettivo del lavoro 3/3Obiettivo del lavoro 3/3

Page 6: 3DD 1e BiRf

6

Riconfigurazione per colonneRiconfigurazione per colonne

Vantaggi:Vantaggi:

• Si presta in modo Si presta in modo naturale alla rilocazionenaturale alla rilocazione

• Semplifica il problema Semplifica il problema rendendolo 1Drendendolo 1D

• Soluzione adottata Soluzione adottata nelle FPGA Xilinxnelle FPGA Xilinx

Page 7: 3DD 1e BiRf

7

• Colonne di 5 tipi:Colonne di 5 tipi:• Center, SRAM, IRAM, I/O, CLBCenter, SRAM, IRAM, I/O, CLB

Colonna CLB = 48 frameMajor Address

• Doppio indirizzo:Doppio indirizzo:• Major Address, Minor AddressMajor Address, Minor Address

Struttura memoria configurazioneStruttura memoria configurazione

• Colonne divise in N frame a seconda del tipoColonne divise in N frame a seconda del tipo

Page 8: 3DD 1e BiRf

8

Contenuto di un bitstreamContenuto di un bitstream

Rappresenta Rappresenta la posizione la posizione iniziale del iniziale del modulomodulo

Anche il Anche il checksum è checksum è coinvolto nel coinvolto nel processoprocesso

Page 9: 3DD 1e BiRf

9

• Software:Software:• PARBIT (PARtial BItfile Transformer)PARBIT (PARtial BItfile Transformer)

• BAnMaT (Bitstream Analyzer Manipulation Tool)BAnMaT (Bitstream Analyzer Manipulation Tool)

• Hardware:Hardware:

• REPLICA filter (Relocation Per onLIne Configuration Alteration)REPLICA filter (Relocation Per onLIne Configuration Alteration)

• Per ottenere prestazioni compatibili con la Per ottenere prestazioni compatibili con la riconfigurazione interna non è possibile usare riconfigurazione interna non è possibile usare strumenti softwarestrumenti software

Strumenti di rilocazioneStrumenti di rilocazione

Page 10: 3DD 1e BiRf

10

• Ideato all'università di PaderbornIdeato all'università di Paderborn

• Obiettivo: realizzare la rilocazione durante il normale Obiettivo: realizzare la rilocazione durante il normale processo di trasferimento del bitstream e quindi a processo di trasferimento del bitstream e quindi a "costo zero" (temporale)"costo zero" (temporale)

• A questo lavoro è ispirata la realizzazione del BiRFA questo lavoro è ispirata la realizzazione del BiRF

Strumenti di rilocazione: Strumenti di rilocazione: ReplicaReplica

Page 11: 3DD 1e BiRf

11

Struttura e funzionamento del Struttura e funzionamento del BiRFBiRF

• Input di BiRF:

• DATA_IN: bitstream da rilocare diviso in blocchi da 32 bit

• TARGET_COL: colonna iniziale di destinazione del modulo

• CHIP_COLS: # colonne CLB del dispositivo

• CHIP_RAMS: # colonne RAM del dispositivo

• RAM_SPACE: memoria addizionale (Virtex-E)

• Gli ultimi 3 dipendono solo dalla scheda e diventano

quindi costanti sul sistema finale

• Output: DATA_OUT, ovvero il bitstream rilocato a

blocchi di 32 bit

Page 12: 3DD 1e BiRf

12

Struttura e funzionamento del Struttura e funzionamento del BiRFBiRF

Page 13: 3DD 1e BiRf

13

Struttura e funzionamento del Struttura e funzionamento del BiRF: ParserBiRF: Parser

Page 14: 3DD 1e BiRf

14

Struttura e funzionamento del Struttura e funzionamento del BiRF: MJABiRF: MJA

Page 15: 3DD 1e BiRf

15

Struttura e funzionamento del Struttura e funzionamento del BiRF: CRCBiRF: CRC

Page 16: 3DD 1e BiRf

16

Struttura e funzionamento del Struttura e funzionamento del BiRF: CRCBiRF: CRC

Implementazione hardware della fase principale del Implementazione hardware della fase principale del calcolo del CRCcalcolo del CRC

Page 17: 3DD 1e BiRf

17

Dati di test: funzionamentoDati di test: funzionamento

Es1: Es1: rilocazione rilocazione con modifica con modifica del FAR a del FAR a “x00000000”“x00000000”

Es2: multiCmd non interessato dalla rilocazione Es2: multiCmd non interessato dalla rilocazione

Page 18: 3DD 1e BiRf

18

Dati di test: spazio occupatoDati di test: spazio occupato

• Spazio occupato da BiRF su vp7,vp20 e vp30

Page 19: 3DD 1e BiRf

19

Dati di test: tempo di Dati di test: tempo di rilocazione 1/2rilocazione 1/2

• Tempo necessario per l'elaborazione di 3 bitstream completi e due parziali

• Da ulteriori test si osserva che il tempo di rilocazione cresce linearmente

Page 20: 3DD 1e BiRf

20

Dati di test: tempo di Dati di test: tempo di rilocazione 2/2rilocazione 2/2

• Dati completi sui bitstream del grafico precedente

• Il throughput (costante) è di circa 424 Mbyte/s; più che sufficiente per il processo di riconfigurazione

Page 21: 3DD 1e BiRf

21

Conclusioni e sviluppi futuriConclusioni e sviluppi futuri

Page 22: 3DD 1e BiRf

22

Fine PresentazioneFine Presentazione