Implementazione di linguaggi 2A Query-to-Hardware Compiler   for FPGA architecturesBruno Filippo Mazzarello       Enrico C...
AbstractSfruttare i vantaggi di tecnologie multi-core per attività dielaborazione dati è un problema molto importante.Cons...
Il futuro dei processoriUn esempio di possibile calcolatore del futuro è il CellBroadband Engine, frutto di una ricerca di...
Il progetto AvalancheSi tratta di un progetto dellETH Zurich.In Avalanche viene studiato limpatto di architetture moderne ...
Field-Programmable Gate ArraysGli FPGA sono una tecnologia molto promettente che sirivela interessante se applicata al cam...
FPGAs for stream processingIn ogni FPGA vi è un gran numero di LookUp Tables (LUTs),che forniscono una tipologia programma...
FPGAs for stream processingLe lookup tables sono collegate attraverso una interconnectnetwork in grado di indirizzare i se...
FPGAs for stream processingInfine, i flip-flops, chiamati anche registri, forniscono 1 bitognuno di memorizzazione e sono ...
I vantaggi degli FPGA  sono economici  possono essere riprogrammati  lalto numero di elementi logici permette di raggiunge...
I problemi delle architetture attualiProblemi noti da parecchi anni:   the memory wall   I/O bottlenecksProblemi più recen...
Il memory wallIl vantaggio maggiore dellutilizzo degli FPGA è dato dallaltolivello di parallelismo offerto.Questo permette...
FPGA e la soluzione al memory wallNegli FPGA i registri flip-flop (così come la block RAM tipica diquesta tipologia di pro...
Content-Addressable MemoryLa content-addressable memory (CAM) puo essere accedutasfruttando il valore di un dato, piuttost...
BottlenecksCon lintroduzione di tecnologie multi-core, le performanceofferte dalle CPU sono migliorate notevolmente, sebbe...
GlacierCosè?Glacier è composto da unacomponent library e da uncompilatore che permette ditradurre ed implementare query su...
Glacier - Come funziona?La component library di Glacier è composta da modulicomponibili che rappresentano gli operatori ch...
Glacier - OperatoriUn vantaggio di Glacier è dato dalla componibilità, infattiGlacier accetta composizioni arbitrarie degl...
FPGAs for stream processing
FPGA system setup
Network adapterLa comunicazione tra linterfaccia di rete e la CPU è effettuatautilizzando un protocollo a passi:  1. la sc...
CPU adapterPer inviare le informazioni risultanti alla CPU si utilizza ora unastrategia simile a quella utilizzata dallint...
CPU adapterDue differenti approcci sono concepibili per implementare unacomunicazione nellaltra direzione (dalla CPU allFP...
La piattaforma FPGA utilizzatahttp://www.xilinx.com/univ/xupv5-lx110t.htmNegli studi dellETH Zurich è stata utilizzata una...
Un caso praticoVerranno mostrati i risultati di un caso pratico effettuato incollaborazione con una banca Svizzera:  Il si...
Utilizzo di Glacier per il caso dellabanca SvizzeraNellapproccio in oggetto è stato utilizzato Glacier per generarepiani d...
System integrationGlacier fornisce interfacce per componenti che acquisisconodati dalla CPU o dalla rete e ritornano lo st...
Glacier functionalitiesAttualmente Glacier supportatutte le query composte daglioperatori nella tabella vista inprecedenza...
Una query di esempioSELECT Price, VolumeFROM TradesWHERE Symbol = "UBSN" AND Volume > 100000INTO LargeUBSTradesCREATE INPU...
Una query di esempioIl compilatore effettua il parsing dellaquery e produce una rappresentazionecorrispondente al piano di...
Circuit generationIl compito di Glacier è quello di tradurre un piano di esecuzionedi una query nella descrizione di un ci...
Circuit generation
Query avanzateI circuiti per query di aggregazione e per query che contengonoraggruppamenti richiedono meccanismi FPGA agg...
Demo setupLa dimostrazione effettuata dal team dellETH Zurich ha messoin mostra un intero design flow di Glacier ed uno st...
Design flowIl compilatore di Glacier è incapsulato allinterno del design flowche utilizza una catena di strumenti FPGA sta...
Stream engine
Query compilationProcesso di compilazione dal piano di query a circuiti FPGAprevede lattuazione di regole di compilazione ...
From queries to circuitsOgni operazione SQL puo essere tradotta in un circuitohardware in maniera sistematica tramite Glac...
Compilation rulesSelection and Projection                        Query di selezione  Query di proiezione
Compilation rulesArithmetics and Boolean Operations            Generico operatore aritmetico/booleanoQuery di uguaglianza
Compilation rulesUnion                         Operatore di unione         Operatore di        unione binaria
Compilation rulesWindowing              Operatore window           Utilizzo    delloperatore          Window
Compilation rulesAggregation   Algebraic Aggregate Functions  Holistic Aggregate Functions
Compilation rulesGrouping                Operatore Group-By           Utilizzo    delloperatore         Group-By
Compilation rulesConcatenation Operator                Query di concatenazione
Optimization Reducing Clock Synchronization Tempo di esecuzione reale                                  Miglioramento      ...
Optimization   Increasing ParallelismLeliminazione di registri intermedi (interni) porta ad esecuzioniparallele.
Optimization   Trading Unions For MultiplexersUtilizzare un multiplexer al posto di un operatore di unione n-aria al termi...
Example queriesGli esempi presi in considerazione si basano su unacollaborazione tra ETH Zurich e una banca svizzera.Lo sc...
Query Q1La prima query è molto semplice ed utilizza una sempliceproiezione applicata alla selezione.SELECT Price, VolumeFR...
Query Q2E la stessa query vista in precedenza, riportata in quanto ciriferiremo ad essa come query Q2.SELECT Price, Volume...
Query Q3Utilizzando le funzionalità della finestra scorrevole e delraggruppamento, la query conta il numero di transazioni...
Query Q4La query utilizza una funzione di aggregazione wsum checomputa la somma pesata sui prezzi delle ultime quattrotran...
Query Q5Questa query determina i prezzi medi delle transazioni per ognisimbolo su una finestra che si riferisce agli ultim...
EvaluationLa compilazione di query in circuiti logici ha significatosolamente se i circuiti risultanti risolvono i problem...
Latency and throughputLe caratteristiche di performance di piani di esecuzionehardware possono essere accuratamente deriva...
LatencyMisuriamo la latenza di un circuito hardware nel numero di ciclidi clock necessari dal momento in cui una tupla ent...
Latency & Issue RatePer circuiti semplici come le query Q1 e Q2, la latenzacorrisponde al numero di flip-flop coinvolti ne...
ThroughputIl tempo massimo di esecuzione è direttamente dipendentedalla sua frequenza di esecuzione.Con un Clock di 100 MH...
End-to-end performanceUn aspetto chiave dellutilizzo degli FPGA per attività di datastream processing è che il circuito ha...
Performance e flusso di datiLa più grande sfida è quella di processare dati di rete con unalto tasso di package (concetto ...
Risultati di performanceGli studi dellETH Zurich hanno rivelato quanto sia difficilegenerare un flusso di pacchetti molto ...
Confronto sulle performance
ConclusioniI risultati dimostrano chiaramente che il circuito non delude leaspettative.Questo rende gli FPGA particolarmen...
Bibliografia  Streams on Wires - A Query Compiler for FPGAs  Rene Mueller, Jens Teubner, Gustavo Alonso  http://portal.acm...
Upcoming SlideShare
Loading in …5
×

A query-to-hardware compiler for FPGA architectures

906 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
906
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A query-to-hardware compiler for FPGA architectures

  1. 1. Implementazione di linguaggi 2A Query-to-Hardware Compiler for FPGA architecturesBruno Filippo Mazzarello Enrico Cambiaso bruno.mazzarello@gmail.com enrico.cambiaso@gmail.com
  2. 2. AbstractSfruttare i vantaggi di tecnologie multi-core per attività dielaborazione dati è un problema molto importante.Considerare lutilizzo degli FPGA come architetture multi-core per lelaborazione di stream di dati puo rivelarsi una sceltavincente; verranno illustrate le possibili integrazioni di questatipologia di dispositivi hardware con un database system.In seguito verrà presentato Glacier, uno strumento utilizzatoper tradurre una query in un circuito logico; verrannoconsiderati i soli operatori più comuni e ne verrà discusso ildesign come elementi modulari.Verranno inoltre mostrati i miglioramenti di performanceottenuti inserendo un FPGA allinterno del percorso dei dati.
  3. 3. Il futuro dei processoriUn esempio di possibile calcolatore del futuro è il CellBroadband Engine, frutto di una ricerca di IBM, che fornisceotto Synergistic Processing Units (SPUs) prossime ad unaCPU di tipo general-purpose.In modo simile, i produttori hardware hanno già annunciato cheil processore del futuro in un elaboratore multi-core nonconterrà CPU identiche: alcune avranno unità floating point,altre forniranno un vasto insieme di instruzioni, altre ancoraavranno differenti caratteristiche.
  4. 4. Il progetto AvalancheSi tratta di un progetto dellETH Zurich.In Avalanche viene studiato limpatto di architetture moderne suoperazioni di elaborazione dei dati.Nel progetto è stato valutato il potenziale delle tecnologie FPGAse utilizzate come processori aggiuntivi su elaboratori multi-coree limportanza dei risultati raggiunti in attività di data processing.
  5. 5. Field-Programmable Gate ArraysGli FPGA sono una tecnologia molto promettente che sirivela interessante se applicata al campo dei database.Due principali aziende produttrici di FPGA: Xilinx http://www.xilinx.com Altera http://www.altera.com
  6. 6. FPGAs for stream processingIn ogni FPGA vi è un gran numero di LookUp Tables (LUTs),che forniscono una tipologia programmabile di porte logiche.Ogni lookup table puo implementare una funzione 6 bit → 1 bit.
  7. 7. FPGAs for stream processingLe lookup tables sono collegate attraverso una interconnectnetwork in grado di indirizzare i segnali attraverso il chip.
  8. 8. FPGAs for stream processingInfine, i flip-flops, chiamati anche registri, forniscono 1 bitognuno di memorizzazione e sono direttamente collegabili alleunità logiche.
  9. 9. I vantaggi degli FPGA sono economici possono essere riprogrammati lalto numero di elementi logici permette di raggiungere un livello di parallelismo non confrontabile con quello offerto da architetture tradizionali multi-core o processori grafici (parallelismo puro) possono essere integrati allinterno per percorso dei dati
  10. 10. I problemi delle architetture attualiProblemi noti da parecchi anni: the memory wall I/O bottlenecksProblemi più recenti: sfruttare a pieno il parallelismo su architetture multi-core scendere a patti con processori di diversa natura overhead crescente per intra-host communications
  11. 11. Il memory wallIl vantaggio maggiore dellutilizzo degli FPGA è dato dallaltolivello di parallelismo offerto.Questo permette infatti di scappare dal Von Neumannbottleneck (memory wall), che colpisce tutte le architettureclassiche.Nel modello di Von Neumann la memoria è fisicamenteseparata dalla CPU e laccesso ai dati si rivela molto costoso.
  12. 12. FPGA e la soluzione al memory wallNegli FPGA i registri flip-flop (così come la block RAM tipica diquesta tipologia di processori) sono allinterno del chip estrettamente legati agli elementi logici.In aggiunta, le LUTs possono essere riprogrammate a runtimeper essere utilizzate come memoria aggiuntiva.In questo modo è possibile accedere alle risorse dimemorizzazione degli FPGA sfruttando un alto livello diparallelismo.
  13. 13. Content-Addressable MemoryLa content-addressable memory (CAM) puo essere accedutasfruttando il valore di un dato, piuttosto che un indirizzo dimemoria esplicito.Tipicamente, le CAM vengono utilizzate per tradurrelidentificativo di un elemento nellindirizzo utilizzato permemorizzare linformazione di quellelemento.
  14. 14. BottlenecksCon lintroduzione di tecnologie multi-core, le performanceofferte dalle CPU sono migliorate notevolmente, sebbene sianorimasti i limiti architetturali dei prodotti hardware.I veri colli di bottiglia dei sistemi attuali sono dati dallecomunicazioni con le periferiche di input/output, che sonoconsiderati un problema critico.Gli FPGA sono visti come una soluzione a questo problema,infatti vari prototipi e alcuni prodotti hanno mostrato lepotenzialità della tecnologia FPGA per lutilizzo praticoapplicato ad un database.
  15. 15. GlacierCosè?Glacier è composto da unacomponent library e da uncompilatore che permette ditradurre ed implementare query sudatabase come circuiti hardwaresu FPGA.Come funziona?Dato un piano di esecuzione di una query, il compilatoreindividua le corrispondenti componenti e le collega allinterno diun circuito digitale.
  16. 16. Glacier - Come funziona?La component library di Glacier è composta da modulicomponibili che rappresentano gli operatori che processano lostream di dati.Data una query, il compiler di Glacier istanzia i modulinecessari e li connette tra loro in un circuito logico digitale cheviene poi tradotto in una configurazione FPGA.
  17. 17. Glacier - OperatoriUn vantaggio di Glacier è dato dalla componibilità, infattiGlacier accetta composizioni arbitrarie degli operatori algebricisupportati.
  18. 18. FPGAs for stream processing
  19. 19. FPGA system setup
  20. 20. Network adapterLa comunicazione tra linterfaccia di rete e la CPU è effettuatautilizzando un protocollo a passi: 1. la scheda di rete trasferisce un pacchetto ricevuto allinterno della memoria principale del sistema host utilizzando il DMA 2. la scheda di rete informa la CPU dellarrivo generando un interrupt 3. linterrupt permette al sistema operativo di effettuare uno switch verso il kernel mode, dove il sistema operativo decodifica tutti i pacchetti necessari, prima di passare i dati allo user space
  21. 21. CPU adapterPer inviare le informazioni risultanti alla CPU si utilizza ora unastrategia simile a quella utilizzata dallinterfaccia di rete descrittain precedenza.I dati vengono scritti in una coda FIFO accessibile dalla CPUtramite un registro memory-mapped.Ogni volta che un nuovo dato è stato preparato si genera uninterrupt per informare la CPU, che leggerà la coda FIFO epasserà i dati al programma utente.
  22. 22. CPU adapterDue differenti approcci sono concepibili per implementare unacomunicazione nellaltra direzione (dalla CPU allFPGA):I memory-mapped slave registers permettono alla CPU di passare idati direttamente allinterno del circuito FPGA scrivendo linformazionein una speciale locazione di memoria virtuale.Mentre questo approccio fornisce un accesso intuitivo e con bassalatenza allFPGA, i protocolli di sincronizzazione necessari risultanopoco efficienti in condizioni di alto volume di traffico, se confrontatiallapproccio DMA-based, nel quale i dati vengono scritti in unamemoria esterna, dove la logica dellFPGA si attiva autonomamentedopo aver ricevuto una richiesta dalla CPU.
  23. 23. La piattaforma FPGA utilizzatahttp://www.xilinx.com/univ/xupv5-lx110t.htmNegli studi dellETH Zurich è stata utilizzata una piattaforma disviluppo Xilinx XUPV5-LX110T, caratterizzata da una FPGA ditipo Virtex-5 XC5VLX110T da 100 MHz.Caratteristiche della piattaforma: XUPV5-LX110T board 1GB Compact Flash card 256 MB SODIMM module 10/100/1000 ethernet interface SATA cable XUP USB-JTAG Programming Cable DVI to VGA adapter 6A power supply
  24. 24. Un caso praticoVerranno mostrati i risultati di un caso pratico effettuato incollaborazione con una banca Svizzera: Il sistema della banca in oggetto richiede di processare in tempo reale un alto volume di traffico dal mercato finanziario Eurex. Il flusso di dati arriva sotto forma di pacchetti UDP ogni circa un secondo.La bassa latenza, specialmente sotto condizioni di trafficoelevato, è critica e difficile da raggiungere con metoditradizionali software-based che processano il flusso di dati iningresso.
  25. 25. Utilizzo di Glacier per il caso dellabanca SvizzeraNellapproccio in oggetto è stato utilizzato Glacier per generarepiani di esecuzione hardware ed eseguire query su processoriFPGA.LFPGA è stato posto tra linterfaccia di rete e gli alti livellidellapplicazione utilizzata dalla banca e eseguita su un servertradizionali.
  26. 26. System integrationGlacier fornisce interfacce per componenti che acquisisconodati dalla CPU o dalla rete e ritornano lo stream risultante almittente.
  27. 27. Glacier functionalitiesAttualmente Glacier supportatutte le query composte daglioperatori nella tabella vista inprecedenza.In aggiunta a questi operatori vengono fornite interfacce perla comunicazioni via rete e con la CPU, operatori perbilanciare la latenza, concatenazione di stream e metodi pervalutare espressioni aritmetiche e booleane.
  28. 28. Una query di esempioSELECT Price, VolumeFROM TradesWHERE Symbol = "UBSN" AND Volume > 100000INTO LargeUBSTradesCREATE INPUT STREAM Trades ( Seqnr int, -- sequence number Symbol string(4), -- valor symbol Price int, -- stock price Volume int -- trade volume)
  29. 29. Una query di esempioIl compilatore effettua il parsing dellaquery e produce una rappresentazionecorrispondente al piano di esecuzionedella query.Gli operatori aritmetici e booleani sonoesplicitamente visibili, per poteragevolare la preparazione dello schemadi compilazione composizionale.
  30. 30. Circuit generationIl compito di Glacier è quello di tradurre un piano di esecuzionedi una query nella descrizione di un circuito hardware espressonellhardware description language VHDL.
  31. 31. Circuit generation
  32. 32. Query avanzateI circuiti per query di aggregazione e per query che contengonoraggruppamenti richiedono meccanismi FPGA aggiuntivi, comememorie con contenuto indirizzabile o multiplexer.Attualmente limplementazione di Glacier supporta aggregatialgebrici solo sotto alcune limitazioni.
  33. 33. Demo setupLa dimostrazione effettuata dal team dellETH Zurich ha messoin mostra un intero design flow di Glacier ed uno streamengine che processa i dati in arrivo dalla rete.
  34. 34. Design flowIl compilatore di Glacier è incapsulato allinterno del design flowche utilizza una catena di strumenti FPGA standard come back-end.
  35. 35. Stream engine
  36. 36. Query compilationProcesso di compilazione dal piano di query a circuiti FPGAprevede lattuazione di regole di compilazione e successiveottimizzazioni
  37. 37. From queries to circuitsOgni operazione SQL puo essere tradotta in un circuitohardware in maniera sistematica tramite Glacier.Per assicurare la reale composizione, tutte le regole delsottopiano dovranno aderire ad una interfaccia comune: ogni tupla di n colonne è rappresentata da n fili nella FPGA in ogni set di fili, una tupla puo essere propagata ad ogni clock (100 milioni di tuple per secondo) una linea aggiuntiva (data valid) indica la presenza di una tupla nel clock corrente useremo rettangoli per rappresentare componenti logici indicheremo i registri come box grigi ogni circuito sarà clock-driven o sincronizzato le frecce rappresenteranno i fili tra un componente logico e laltro
  38. 38. Compilation rulesSelection and Projection Query di selezione Query di proiezione
  39. 39. Compilation rulesArithmetics and Boolean Operations Generico operatore aritmetico/booleanoQuery di uguaglianza
  40. 40. Compilation rulesUnion Operatore di unione Operatore di unione binaria
  41. 41. Compilation rulesWindowing Operatore window Utilizzo delloperatore Window
  42. 42. Compilation rulesAggregation Algebraic Aggregate Functions Holistic Aggregate Functions
  43. 43. Compilation rulesGrouping Operatore Group-By Utilizzo delloperatore Group-By
  44. 44. Compilation rulesConcatenation Operator Query di concatenazione
  45. 45. Optimization Reducing Clock Synchronization Tempo di esecuzione reale Miglioramento del tempo di esecuzione
  46. 46. Optimization Increasing ParallelismLeliminazione di registri intermedi (interni) porta ad esecuzioniparallele.
  47. 47. Optimization Trading Unions For MultiplexersUtilizzare un multiplexer al posto di un operatore di unione n-aria al termine delloperazione di windows.
  48. 48. Example queriesGli esempi presi in considerazione si basano su unacollaborazione tra ETH Zurich e una banca svizzera.Lo schema dei dati (così come il contesto di utilizzo) è lo stessoutilizzato in precedenza. CREATE INPUT STREAM Trades ( Seqnr int, -- sequence number Symbol string(4), -- valor symbol Price int, -- stock price Volume int -- trade volume )
  49. 49. Query Q1La prima query è molto semplice ed utilizza una sempliceproiezione applicata alla selezione.SELECT Price, VolumeFROM TradesWHERE Symbol = "UBSN"INTO UBSTrades
  50. 50. Query Q2E la stessa query vista in precedenza, riportata in quanto ciriferiremo ad essa come query Q2.SELECT Price, VolumeFROM TradesWHERE Symbol = "UBSN" AND Volume > 100000INTO LargeUBSTrades
  51. 51. Query Q3Utilizzando le funzionalità della finestra scorrevole e delraggruppamento, la query conta il numero di transazioni consimbolo UBSN avvenute negli ultimi 10 minuti.SELECT count () AS NumberFROM Trades [ SIZE 600ADVANCE 60 TIME ]WHERE Symbol = "UBSN"INTO NumUBSTrades
  52. 52. Query Q4La query utilizza una funzione di aggregazione wsum checomputa la somma pesata sui prezzi delle ultime quattrotransazioni con simbolo USBN. SELECT wsum (Price, [ .5, .25, .125, .125 ]) AS Wprice FROM ( SELECT * FROM Trades WHERE Symbol = "UBSN" ) [ SIZE 4 ADVANCE 1 TUPLES ] INTO WeightedUBSTrades
  53. 53. Query Q5Questa query determina i prezzi medi delle transazioni per ognisimbolo su una finestra che si riferisce agli ultimi 10 minuti.SELECT Symbol, avg (Price) AS AvgPriceFROM Trades [ SIZE 600 ADVANCE 60 TIME ]GROUP BY SymbolINTO PriceAverages
  54. 54. EvaluationLa compilazione di query in circuiti logici ha significatosolamente se i circuiti risultanti risolvono i problemi visti inprecedenza.Ci concentreremo ora su due valutazioni: latenza e throughput verificheremo che lintegrazione di un FPGA allinterno del percorso dei dati migliora le performance a livello end-to- end
  55. 55. Latency and throughputLe caratteristiche di performance di piani di esecuzionehardware possono essere accuratamente derivati unicamentedallanalisi del design del circuito.In questo modo le performance di un circuito di grandidimensioni sono determinate dalle performance dei suoisottopiani.
  56. 56. LatencyMisuriamo la latenza di un circuito hardware nel numero di ciclidi clock necessari dal momento in cui una tupla entra allinternodel circuito al momento in cui il risultato viene prodotto.Per il caso di query che contengono group-by la tupla di inputrilevante è lultima tupla dello stream di input.In un flusso di dati sequenziale, la latenza di tutti i sottopiani siaccumula:
  57. 57. Latency & Issue RatePer circuiti semplici come le query Q1 e Q2, la latenzacorrisponde al numero di flip-flop coinvolti nel circuito.Per le query Q3 e Q4 loperatore di unione aggiunge altralatenza dovuta alla coda FIFO che utilizza.Nella query Q5 la differenza tra lettura/scrittura nella memoriaCAM introduce ulteriore latenza in maniera dipendente dallaquantità di dati in arrivo.
  58. 58. ThroughputIl tempo massimo di esecuzione è direttamente dipendentedalla sua frequenza di esecuzione.Con un Clock di 100 MHz, nel nostro caso (query Q2)possiamo processare 100 milioni di tuple al secondo.Come visto nella tabellaprecedente, si giunge ad unissue rate di 1 per tutte lequery prese come esempio.
  59. 59. End-to-end performanceUn aspetto chiave dellutilizzo degli FPGA per attività di datastream processing è che il circuito hardware puo esseredirettamente incorporato allinterno del percorso dei dati.Linteresse è quello di utilizzare lFPGA come preprocessoreche opera tra linterfaccia di rete fisica e una CPU di tipogeneral-purpose.LETH Zurich ha implementato questa piattaforma di svilupposu FPGA, per verificare lefficienza di questa configurazione.
  60. 60. Performance e flusso di datiLa più grande sfida è quella di processare dati di rete con unalto tasso di package (concetto opposto a quello di pacchetti digrandi dimensioni).Lapplicazione configurata via software, comincia a decaderecon un flusso di dati ~maggiore di 100.000 pacchetti alsecondo, a causa dellalto overhead di comunicazione intra-host, necessaria per ogni pacchetto.Al contrario, il nostro circuito di esecuzione della query èdirettamente connesso allinterfaccia di rete fisica.
  61. 61. Risultati di performanceGli studi dellETH Zurich hanno rivelato quanto sia difficilegenerare un flusso di pacchetti molto alto allinterno di unlaboratorio.Utilizzando un generatore di pacchetti NetBSD-based, si èriusciti a generare un massimo di 1.000.400 pacchetti persecondo (come traffico UDP), che non è risultata sufficiente asaturare limplementazione hardware utilizzata.
  62. 62. Confronto sulle performance
  63. 63. ConclusioniI risultati dimostrano chiaramente che il circuito non delude leaspettative.Questo rende gli FPGA particolarmente interessanti, anche perscenari molto comuni quali interrogazioni a basi di dati checoinvolgono una grande quantità di informazioni.Altri scenari interessanti riguardano ambienti in cui leinformazioni devono essere processate quasi in tempo realerendendo lapplicazione molto simile ai sistemi real-time.
  64. 64. Bibliografia Streams on Wires - A Query Compiler for FPGAs Rene Mueller, Jens Teubner, Gustavo Alonso http://portal.acm.org/ft_gateway.cfm?id=1687654&type=pdf Glacier: A Query-to-Hardware Compiler Rene Mueller, Jens Teubner, Gustavo Alonso http://portal.acm.org/ft_gateway.cfm?id=1807307&type=pdf fpga4fun.com - What are FPGAs? http://www.fpga4fun.com/FPGAinfo1.htm IBM: Cell Broadband Engine resource center http://www.ibm.com/developerworks/power/cell/index.html

×