Felhasználó programozható kaputömb

A felhasználó által programozható kaputömb ( FPGA , angolul  field-programable gate array, FPGA ) egy félvezető eszköz , amelyet a gyártó vagy a fejlesztő a gyártás után konfigurálhat; a programozható logikai integrált áramkörök legösszetettebb típusa a szervezetben .

Programozásuk a kapcsolási rajz logikájának megváltoztatásával történik , például a hardverleíró nyelv forráskódjának használatával (például Verilog ). Használatuk során szinte bármikor módosíthatók. Konfigurálható logikai blokkokból áll, például kapcsolókból több bemenettel és egy kimenettel ( logikai kapuk , kapuk ). A digitális áramkörökben az ilyen kapcsolók az AND , NAND , OR , NOR és XOR alapvető bináris műveleteket valósítják meg. Az FPGA-k közötti alapvető különbség az, hogy az áramkörbe küldött speciális jelek segítségével mind a blokkok funkciói, mind a köztük lévő kapcsolatok konfigurációja megváltoztatható. Egyes alkalmazásspecifikus integrált áramkörök ( ASIC ) az FPGA-khoz hasonló felépítésű logikai tömböket használnak, azonban a gyártás során egyszer konfigurálják őket, míg az FPGA-k folyamatosan újraprogramozhatók, és használat közben megváltoztathatók a kapcsolatok topológiája. Az ilyen rugalmasság azonban megköveteli a tranzisztorok számának jelentős növelését a mikroáramkörben.

Történelem

A korai FPGA -kban csak a kapuk közötti kapcsolatokat lehetett programozással megváltoztatni [1] ; 1985-ben a Xilinx társalapítói, Ross Freeman és Bernard V. Vonderschmitt  kifejlesztették az első kereskedelmileg sikeres FPGA-t, az XC2064-et, amely programozható kapukkal és programozható összeköttetésekkel rendelkezik közöttük (2005-ben Freemant ezért a találmányért bejegyezték az Egyesült Államok Nemzeti Feltalálói Csarnokába Hírnév ). A mezőben programozható kaputömbök, logikai kapuk és logikai blokkok koncepcióját David Page és Louwern Peterson szabadalmaztatta 1985-ben [2] [3] . Az 1990-es években meredeken megugrott az FPGA-k iránti érdeklődés, megnőtt a komplexitásuk és a gyártási volumenük: ha a kezdeti években főként a távközlési és kommunikációs hálózatok területén használták őket, akkor az évtized végére már az FPGA-k területén is alkalmazásra találtak. fogyasztási cikkek, az autóiparban és más iparágakban.  

1997-ben Adrian Thompson kombinálta a genetikai algoritmusokat és az FPGA technológiát, hogy létrehozzon egy olyan eszközt, amely képes megkülönböztetni az 1 kHz -es és 10 kHz -es hanghangokat . A genetikai algoritmusok lehetővé tették a probléma megoldásához szükséges konfiguráció létrehozását egy Xilinx chipen lévő 64 × 64-es kaputömb használatával [4] . Ugyanebben az években kezdték széles körben használni speciális integrált áramkörök és általános célú processzorok prototípusainak készítésére. A 2000-es évek elején az FPGA-kat elkezdték használni a szervercsomópontok bizonyos műveleteinek felgyorsítására mind a HPC -iparban, mind az adatbázismotorokban ( Netezza ). A 2010-es évek második felében megnőtt az érdeklődés a technológia iránt a mélytanulásban való alkalmazásának hatékonysága miatt (elsősorban az aritmetika csökkentett pontosságú és regiszter nélküli számítások megvalósításának lehetősége miatt - a Google tenzorprocesszor analógja) ), az infrastrukturális felhőszolgáltatóknak pedig lehetőségük volt FPGA-t vásárolni előfizetéssel a nyilvános felhőből ( Amazon F1, Baidu , Tencent , Huawei ).

2018-ra a globális FPGA-piac volumene körülbelül 5,7 milliárd dollárt tett ki, a legnagyobb gyártók a Xilinx (a piac 51%-a), az Intel (36%, az Altera eszközei miatt ), a Microchip (17%), a Lattice Semiconductor (9%) [5] .

Építészet

Az FPGA háromféle programozható elemet tartalmaz:

A PLB-k a felhasználói logika felépítésének funkcionális elemei. A BVV kommunikációt biztosít a ház érintkezői és a belső jelvezetékek között. A programozható belső kommunikációs erőforrások biztosítják a PLB és a bemeneti-kimeneti egységek (I/O) be- és kimenetei csatlakozási útvonalainak vezérlését a megfelelő hálózatokhoz [6] . Minden útválasztó csatorna azonos szélességű (azonos számú vezeték). A legtöbb I/O blokk (I/O) a kaputömb egy sorába (magasság) vagy egy oszlopába (szélesség) illeszkedik.

A klasszikus FPGA logikai blokkja (LB) egy igazságtáblázatból ( English  lookup table, LUT ) áll több bemenetre és egy flip- flopból (a korai implementációkban 4 bemenetet használtak, később - nagyobb számú bemenetet, ami lehetővé tette lehetséges kisebb számú logikai blokk használata tipikus alkalmazásokhoz [7] ).

A logikai blokknak (PLB) van egy igazságtáblázata négy bemenethez és egy órabemenethez. Csak egy blokk kimenet van - egy regiszter vagy nem regiszter kimeneti igazságtábla. Mivel a kereskedelmi forgalomban lévő FPGA-k órajeleit (és gyakran más, nagyszámú bemenettel párhuzamos jeleket - nagy fanout jeleket) speciális útválasztó áramkörök irányítják , ezeket a jeleket külön kezelik.

Az adott példaarchitektúra esetében a logikai blokk kivezetése az alábbiakban látható.

A bemenetek a logikai blokk külön oldalain találhatók; a kimeneti érintkező két csatornán vezethető: vagy a blokktól jobbra, vagy az aljára. Az egyes logikai blokkok kimeneti érintkezőit a szomszédos csatornák útválasztó szegmenseihez lehet kötni. Hasonlóképpen, egy I/O blokk pad csatlakoztatható bármely szomszédos csatorna útválasztó eleméhez. Például a chip felső padja csatlakoztatható bármelyik W vezetékhez (ahol W a csatorna szélessége) a közvetlenül alatta lévő vízszintes csatornában.

Az FPGA-útválasztás általában nem szegmentált, azaz minden vezetékszegmens csak egy logikai blokkot köt össze a kapcsolóblokkkal. A kapcsolóblokkban lévő programozható kapcsolók körbekerítése miatt a nyomvonal hosszabb. A rendszeren belüli kapcsolatok sebességének növelése érdekében egyes FPGA architektúrák hosszabb nyomkövetési kapcsolatokat használnak a logikai egységek között.

A kapcsolóblokkok a függőleges és vízszintes csatornák metszéspontjában jönnek létre. Ezzel az architektúrával a kapcsolóblokkban minden egyes vezetőnek három programozható kapcsolója van, amelyek lehetővé teszik, hogy a szomszédos csatornaszegmensekben lévő három másik vezetőhöz csatlakozzon. Az ebben az architektúrában használt kapcsolók modellje vagy topológiája a kapcsolóegységek sík vagy tartomány topológiája. Ebben a topológiában az 1. számú nyomkövetés csak a szomszédos csatornák 1. számú nyomvonalához kapcsolódik, a 2. számú nyomkövetés csak a 2. számú nyomkövetéshez, és így tovább.

A modern FPGA családok kibővítik a fent felsorolt ​​képességeket, és beépített magas szintű funkciókkal rendelkeznek, amelyeknek köszönhetően a primitív alapú megvalósításhoz képest csökkenthető a chip területe és felgyorsítható a tipikus részfeladatok végrehajtása. Ilyen funkciók például a multiplexerek, a digitális jelfeldolgozó egységek , a beágyazott processzorok, a gyors I/O logika és a beágyazott memória.

Az FPGA-kat széles körben használják érvényesítési rendszerekben is, beleértve a szilícium előtti és szilícium utáni érvényesítést, valamint a beágyazott rendszerek programjainak fejlesztésében . Ez lehetővé teszi az integrált áramköri vállalatok számára, hogy teszteljék eszközeik teljesítményét a gyári gyártás előtt, csökkentve ezzel a piacra kerülés idejét.

Jegyzetek

  1. Az FPGA -k története 
  2. Google Patent Search, " Újraprogramozható PLA ".
  3. Google Patent Search, " Dinamikus adatok újraprogramozható PLA ".
  4. Az áramkörök eredetéről. . Hozzáférés dátuma: 2012. május 4. Az eredetiből archiválva : 2012. április 27.
  5. Doug Black. A Xilinx szerint új FPGA-ja a világ legnagyobb . Enterprise AI (2019. augusztus 21.). Letöltve: 2020. augusztus 3. Az eredetiből archiválva : 2020. november 4.
  6. FPGA architektúra archiválva : 2018. május 11. a Wayback Machine -nél 
  7. Magasabb rendszerteljesítmény elérése a Virtex-5 FPGA családdal, WP245 (v1.1.1) 2006. július 7. Az eredetiből archiválva 2007. szeptember 27-én. xilinx.com  _

Linkek