Bruger programmerbar gate array

Brugerprogrammerbar gate array ( FPGA , engelsk  field-programmable gate array, FPGA ) er en halvlederenhed, der kan konfigureres af producenten eller udvikleren efter fremstilling; den mest komplekse type programmerbare logiske integrerede kredsløb i organisationen .

De programmeres ved at ændre logikken i kredsløbsdiagrammet , for eksempel ved at bruge kildekoden i hardwarebeskrivelsessproget (for eksempel Verilog ). De kan ændres næsten når som helst under deres brug. Består af konfigurerbare logiske blokke som switche med flere indgange og en udgang ( logiske porte , porte ). I digitale kredsløb implementerer sådanne switches de grundlæggende binære operationer AND , NAND , OR , NOR og XOR. Den grundlæggende forskel mellem FPGA'er er, at både funktionerne af blokke og konfigurationen af ​​forbindelser mellem dem kan ændres ved hjælp af specielle signaler, der sendes til kredsløbet. Nogle applikationsspecifikke integrerede kredsløb ( ASIC'er ) bruger logiske arrays, der i design ligner FPGA'er, men de konfigureres én gang under produktion, mens FPGA'er konstant kan omprogrammeres og ændre topologien af ​​forbindelser under brug. En sådan fleksibilitet kræver imidlertid en betydelig stigning i antallet af transistorer i mikrokredsløbet.

Historie

I tidlige FPGA'er kunne kun forbindelser mellem porte ændres ved programmering [1] ; i 1985 udviklede Xilinx medstiftere Ross Freeman og Bernard V. Vonderschmitt  den første kommercielt succesrige FPGA, XC2064 , som har programmerbare porte og programmerbare forbindelser mellem dem (i 2005 blev Freeman opført for denne opfindelse til US National Inventors Hall of Berømmelse ). Selve konceptet med feltprogrammerbare portarrays, logiske porte og logiske blokke blev patenteret af David Page og Louwern Peterson i 1985 [2] [3] . I 1990'erne var der et kraftigt hop i interessen for FPGA'er, deres kompleksitet og produktionsvolumen steg: hvis de i de første år hovedsageligt blev brugt inden for telekommunikation og kommunikationsnetværk, så fandt de anvendelse i slutningen af ​​årtiet. forbrugsvarer, i bilindustrien og andre industrier.  

I 1997 kombinerede Adrian Thompson genetiske algoritmer og FPGA-teknologi for at skabe en enhed, der var i stand til at skelne mellem 1 kHz og 10 kHz lydtoner . Genetiske algoritmer gjorde det muligt ved hjælp af et 64 × 64 gate-array på en Xilinx-chip at skabe den nødvendige konfiguration for at løse problemet [4] . I de samme år begyndte de at blive meget brugt til prototyper af specialiserede integrerede kredsløb og processorer til generelle formål . I begyndelsen af ​​2000'erne begyndte FPGA'er at blive brugt til at fremskynde specifikke operationer i servernoder i både HPC -industrien og databasemotorer ( Netezza ). I anden halvdel af 2010'erne var der en stigning i interessen for teknologien på grund af effektiviteten af ​​dens anvendelse til dyb læring (primært på grund af muligheden for at implementere aritmetik med reduceret præcision og registerløse beregninger - en analog af Googles tensorprocessor ), og infrastruktur-skyudbydere havde mulighed for at købe FPGA ved abonnement fra den offentlige sky ( Amazon F1, Baidu , Tencent , Huawei ).

I 2018 udgjorde volumen af ​​det globale FPGA-marked omkring $5,7 milliarder, de største producenter er Xilinx (51% af markedet), Intel (36%, på grund af aktiverne i Altera ), Microchip (17%), Lattice Semiconductor (9 %) [5] .

Arkitektur

FPGA har tre typer programmerbare elementer:

PLB'er er funktionelle elementer til opbygning af brugerlogik. BVV sørger for kommunikation mellem sagens kontakter og interne signallinjer. Programmerbare interne kommunikationsressourcer giver kontrol over forbindelsesstierne for input og output af PLB og input-output enhederne (I/O) til de tilsvarende netværk [6] . Alle routingkanaler har samme bredde (samme antal ledninger). De fleste I/O-blokke (I/O'er) passer ind i enten én række (højde) eller én kolonne (bredde) af gate-arrayet.

Den logiske blok (LB) af den klassiske FPGA består af en sandhedstabel ( engelsk  opslagstabel, LUT ) for flere input og en flip- flop (4 input blev brugt i tidlige implementeringer, senere - et større antal input, hvilket gjorde det muligt at bruge et mindre antal logiske blokke til typiske applikationer [7] ).

Den logiske blok (PLB) har en sandhedstabel for fire indgange og en urindgang. Der er kun én blokudgang - en register- eller ikke-registerudgangssandhedstabel. Da clock-signaler i kommercielle FPGA'er (og ofte andre signaler, der er paralleliseret til et stort antal indgange - high-fanout-signaler) dirigeres en særlig måde af specielle routing-kredsløb, styres disse signaler separat.

For den givne eksempelarkitektur er den logiske blokpinout vist nedenfor.

Indgangene er placeret på separate sider af den logiske blok; udgangsstiften kan føres i to kanaler: enten til højre for blokken eller til bunden. Udgangsbenene på hver logikblok kan forbindes til routingsegmenter i tilstødende kanaler. På samme måde kan en I/O-blokpude forbindes til et routing-element i enhver tilstødende kanal. For eksempel kan chippens øverste pude forbindes til en hvilken som helst af W-lederne (hvor W er kanalbredden) i den vandrette kanal direkte under den.

Typisk er FPGA-routing ikke-segmenteret, det vil sige, at hvert ledningssegment kun forbinder en logisk blok til switch-blokken. På grund af de programmerbare kontakters omvikling i kontaktblokken er sporet længere. For at øge hastigheden af ​​intrasystemforbindelser bruger nogle FPGA-arkitekturer længere sporingsforbindelser mellem logiske blokke.

Omskiftningsblokke skabes i skæringspunktet mellem lodrette og vandrette kanaler. Med denne arkitektur har hver leder i en switch-blok tre programmerbare switche, der gør det muligt at forbinde til tre andre ledere i tilstødende kanalsegmenter. Modellen eller topologien af ​​switchene, der anvendes i denne arkitektur, er den plane eller domæne topologi af switching-enhederne. I denne topologi forbinder spor nummer 1 kun spor nummer 1 i tilstødende kanaler, spor nummer 2 forbindes kun med spor nummer 2 og så videre.

Moderne FPGA-familier udvider de ovennævnte muligheder og har indbyggede funktioner på højt niveau, takket være hvilke det er muligt at reducere chipområdet og fremskynde udførelsen af ​​typiske underopgaver i sammenligning med implementeringen baseret på primitiver. Eksempler på sådanne funktioner er multipleksere, digitale signalbehandlingsenheder , indlejrede processorer, hurtig I/O-logik og indlejret hukommelse.

FPGA'er bruges også i vid udstrækning til valideringssystemer, herunder præ-silicium og post-silicium validering, samt i udviklingen af ​​programmer til indlejrede systemer . Dette giver virksomheder med integrerede kredsløb mulighed for at teste ydeevnen af ​​deres enheder, før de fremstiller dem på fabrikken, hvilket reducerer tiden til markedet.

Noter

  1. FPGAs  historie
  2. Google Patentsøgning, " Re-programmable PLA ".
  3. Google Patentsøgning, " PLA for dynamisk data omprogrammerbar ".
  4. Om kredsløbs oprindelse. . Dato for adgang: 4. maj 2012. Arkiveret fra originalen 27. april 2012.
  5. Doug Black. Xilinx siger, at dens nye FPGA er verdens største . Enterprise AI (21. august 2019). Hentet 3. august 2020. Arkiveret fra originalen 4. november 2020.
  6. FPGA Architecture Arkiveret 11. maj 2018 på Wayback Machine 
  7. Opnå højere systemydelse med Virtex-5-familien af ​​FPGA, WP245 (v1.1.1) 7. juli 2006 Arkiveret fra originalen den 27. september 2007. xilinx.com  _

Links