
Bachelor Informatica Performance analyse van een run-time reconfigurable proces- sor met het gebruik van par- tial reconfiguration in een FPGA Sebastiaan van Moergestel 15 juni 2020 Informatica | Universiteit van Amsterdam Supervisor(s): drs. Taco Walstra Signed: 2 Samenvatting Field-programmable gate arrays (FPGAs) worden steeds vaker gebruikt als hardware component. Het is dan belangrijk dat er onderzoek gedaan wordt om de performance van FPGAs te verbeteren. Partial reconfiguration (PR) is een methode die zorgt dat een FPGA design effici¨ent aangepast kan worden in run-time. Er wordt geanalyseerd hoe partial re- configuration de performance van FPGAs verandert. Met Vivado kunnen eenvoudig FPGA designs gemaakt worden zonder voorkennis van hardware programming. Hiermee zijn FPGA designs gemaakt waarbij de designs met PR en zonder PR hetzelfde resultaat geven. De designs zonder PR worden vergeleken met de designs met PR. Met de PYNQ-Z1 FPGA development board worden deze designs geladen met PYNQ. Als resultaat blijkt dat partial reconfiguration een verbetering in de performance geeft in designs waarbij veel reconfgu- rable modules gebruikt worden. Wel kosten meer reconfigurable modules meer hardware recourses, zoals LUTs en FLOP-LATCHs. Het gebruik van PR is ook effici¨enter op designs met grafische filters, aangezien 1 overlay meerdere filters kan beschikken. Door PR worden FPGA designs dus flexibeler, aangezien in run-time bepaalde functies aangepast kunnen worden. 3 4 Inhoudsopgave 1 Introductie 7 1.1 Onderzoeksvragen . .8 1.2 Thesis structuur . .8 2 Theoretische achtergrond 9 2.1 FPGAs . .9 2.1.1 Vivado . 10 2.2 ZYNQ board . 10 2.2.1 PYNQ . 11 2.3 Partial Reconfiguration . 11 2.4 Edge detection . 12 2.5 Gerelateerde Onderzoeken . 13 3 Implementatie 15 3.1 Vivado design suite . 15 3.1.1 'Hello World' . 15 3.1.2 Werken met PYNQ . 15 3.1.3 Werken met Partial Reconfiguration . 16 3.2 Design . 17 3.2.1 Video design . 18 3.2.2 Grafische filters in Vivado HLS . 21 3.2.3 Grafische filters en Partial Reconfiguration . 21 3.2.4 Vergelijking met designs van andere onderzoeken . 22 4 Experimenten 23 5 Resultaten 25 5.0.1 LEDs . 25 5.0.2 Grafische filters . 27 6 Discussie 31 6.1 Conclusie . 31 6.2 Ethiek . 31 6.3 Toekomstige onderzoeken . 32 5 6 HOOFDSTUK 1 Introductie In de hardware architectuur is de processor, vaak een central unit processor (CPU), een van de belangrijkste onderdelen. De processor voert immers de belangrijke instructies uit van de computer applicaties. Een CPU is vaak gedesigned om goed te zijn in alle situaties, daarom wordt het ook een general purpose processor (GPP) genoemd. Het voordeel hiervan is dat een GPP dan ook heel flexibel is in gebruik. Maar een CPU kan niet geweldig zijn in alle situaties en is dus sterker in bepaalde gebieden en zwakker in andere. CPUs zijn vooral voordelig in het sequentieel uitvoeren van instructies. Dit geeft daarbij wel een nadeel dat het zwak is in parallellisatie. Hierdoor wordt een CPU vaak gecombineerd met andere hardware componenten, zodat het in alle situaties de beste performance kan geven. Zo heeft Xilinx, een van de grootste ontwikkelaars van FPGAs, een architectuur ontworpen dat een ARM-processor combineerd met een FPGA. Deze architectuur wordt toegepast op de zogenoemd Zynq FPGA boards. Een Field programmable gate arrays (FPGA) is een reprogrammable logic-device. Dit houdt in dat de logic gates aangepast kunnen worden, zodat de logica specifieke functies kan uit- voeren. Een FPGA is dus een reconfigurable integrated circuit. Dit is te vergelijken met een application-specific integrated circuit (ASIC), een processing unit dat gedesigned is voor een specifieke applicatie. De ASIC heeft het voordeel dat het sneller, kleiner en efficienter in ener- gieverbruik is dan GPPs. Dit gaat ten koste van de flexibiliteit. Een ASIC is dus veel minder flexibel dan een GPP. Het grote verschil tussen een FPGA en een ASIC is dat een FPGA repro- grammable is, terwijl een ASIC een permanent circuit is. Ook heeft een FPGA een makkelijker entry-level barrier integenstelling tot een ASIC dat vaak ook duurder en moeilijker in gebruik is. Wat de FPGA heeft in flexibiliteit komt ten koste van performance, aangezien uit onderzoek blijkt dat een ASIC een betere performance geeft en zuiniger is in energieverbruik (Kuon en Rose 2007). Een FPGA wordt dan ook gezien als het middenpunt tussen een GPP en een ASIC, aangezien het de eigenschappen van efficiency heeft van een ASIC en de flexibiliteit van een GPP. In de laatste jaren worden FPGAs steeds vaker gebruikt en dus een populair doelwit om on- derzoek te doen om de performance van FPGAs te verbeteren. Grote fabrikanten van FPGAs zoals Xilinx hebben jarenlang onderzoek gedaan om de performance van FPGAs te verbeteren. Dit gaf als resultaat een vergroting in de performance en een vermindering van het energiever- bruik van FPGAs (Saban 2011). Door de ontwikkelingen van FPGAs zijn simpele fully-featured FPGA boards makkelijker verkruigbaar dan ooit tevoren. Hiermee kan, vanuit de academische educatie, onderzoek gedaan worden met FPGA boards om de performance nog meer te verbete- ren. Doordat FPGAs steeds populairder worden, flexibel zijn en een lage entry-barrier hebben, zijn FPGAs dus geschikt voor een onderzoek over reconfigurable processors en FPGAs. De Zynq FPGA board van Xilinx beschikt over een GPP dat reconfigurable is. Met behulp van een FPGA kan hierop de performance verbeterd worden. E´envan´ de methodes om dit te doen is door partial reconfiguration (PR). PR is het in runtime aanpassen van design modules, ter- 7 wijl de logica ongetast blijft. Door PR kan de FPGA zich op meerdere scenario's specificeren, zonder dat het design opnieuw geladen moet worden. Een FPGA dat PR gebruikt heeft dus meer flexibiliteit, kans op vermindering van energieverbruik en maakt nieuwe technieken mogelijk voor FPGAs. Partial reconfiguration is geschikt voor image processing. Een FPGA dat grafische filters gebruikt heeft hier veel voordeel bij. Met PR kan er makkelijk gewissled worden met grafische filters. In dit onderzoek wordt dan ook de performance geanalyseerd van een FPGA dat grafische filters gebruikt met PR. ARM-processors worden immers vaak gebruikt door mobile applications zoals smartphones en gebruiken dus vaak image processing algoritmes. Het onderzoek zal zich vooral richten op het algoritme van edge detection als grafische filter. Niet alleen is edge detection een fundamenteel algoritme voor image processing, het is ook een bekend algoritme voor machine learning en computer vision. 1.1 Onderzoeksvragen De volgende vragen worden gesteld voor het gebruik van partial reconfiguration op FPGAs: Hoe verandert de performance van een FPGA met een reconfigurable processor door partial reconfiguration te gebruiken? En hoe be¨ınvloedt partial reconfiguration de flexibiliteit van FPGAs? 1.2 Thesis structuur De structuur van deze thesis is als volgt: In hoofdstuk 2 worden de theoretische achtergrond in details uitgelegd. Ook worden gerelateerde onderzoeken beschreven. In hoofdstuk 3 wordt de implementatie van het onderzoek uitgelegd en hoe het leerprocess met Vivado is gegaan om de uiteindelijke FPGA ontwerpen te cre¨eren. In hoofdstuk 4 worden de experimenten uitgelegd en hoe hiermee de performance geanalyseerd kan worden. Vervolgens wordt in hoofdstuk 5 de resultaten beschreven en geanalyseerd. Hiermee kunnen de onderzoeksvragen beantwoord worden. Tot slot wordt in hoofdstuk 6 een conclusie geplaatst met een discussie over ethiek en toekomstige onderzoeken. 8 HOOFDSTUK 2 Theoretische achtergrond In dit hoofdstuk wordt de achtergrond van FPGAs, Zynq FPGA boards, partial reconfiguration en edge detection ge¨ıntroduceerd. 2.1 FPGAs Een FPGA is een integrated circuit (IC). Dit circuit is zo gemaakt dat het reprogrammable is, waardoor het geprogrammeerd kan worden voor specifieke functies. De reden dat het reprogram- mable is, komt door de architectuur van FPGAs. Uit deze architectuur zijn er 3 componenten het belangrijkst: • Configurable Logic Blocks • Programmable Interconnects • Programmable I/O Blocks Logic Blocks implementeert de logica voor transitor pairs, look-up tables (LUTs), flip-flops (registers) en multiplexers. Deze Logic blocks hebben als voordeel dat ze in parallel kunnen werken en configurable. Als de Logic blocks niet goed werken met een FPGA design, zal dit een fatale error veroorzaken. Interconnections worden gebruikt voor het alloceren van middelen voor de Logic blocks. Elke Logic block is verbonden met een switch matrix dat voor de generale routing structuur zorgt. De switch matrix beschikt over programmeerbare multiplexers om signalen te selecteren die gebruikt worden voor de routing. De I/O blocks worden gebruikt zodat de Logic blocks en de routing architectuur met externe componenten in contact kunnen komen. Tegenwoordig worden de architectuur van FPGAs steeds verbeterd en aangepast. Zo zijn er nu ook FPGAs die programmable function blocks gebruiken zoals Random Access Memory (RAM) blocks, Digital signal processors (DSP) units en microprocessors. Grote hardware bedrijven zoals Xilinx en Intel zullen hierdoor steeds nieuwere generaties van FPGAs uitbrengen die over meer functies beschikken in hun architectuur. 9 Figuur 2.1: Voorbeeld FPGA structuur 2.1.1 Vivado Een manier om een FPGA te programmeren is met behulp van de software suite Vivado van Xilinx. Vivado is gemaakt voor de synthesis en analyse van Hardware description language (HDL) designs, SoC designs en High-level synthesis (HLS). 2.2 ZYNQ board Er zijn vele soorten FPGA boards om mee te werken. Dit onderzoek wordt gericht op een reconfigurable
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages33 Page
-
File Size-