On selvää, että puolijohdealalla keskitytään vihdoin kasvavaan valikoimaan teknologioita, jotka prosessigeometrian kutistamisen sijaan katsovat uusia järjestelmäarkkitehtuureita ja käytettävissä olevan piin parempaa käyttöä uusien piiri- laite- ja kotelointisuunnittelun konseptien kautta. Kun astumme uudelle aikakaudelle, seuraava looginen askel näyttää olevan FPGA-piirin ja prosessorin eli CPU:n yhdistäminen: sulautettu FPGA.
Alan johtavat yritykset ovat jo menossa kohti lisäarvoa tuottavia ratkaisuja, jotka jakavat ohjelmistolähtöisen innovaation perinteisen prosessoriarkkitehtuurin ja uudelleenkonfiguroitavien, laskentaa helpottavina moottoreina toimivien laitekiihdyttimen välillä.
Tämä yhdistelmä ei ole vain keskeinen kehitysvaihe, se lupaa olla erittäin ratkaiseva askel mikroelektroniikan historiassa.
FPGA:n kehitys
Xilinx ja Actel olivat ohjelmoitavan FPGA-logiikan pioneereja 1980-luvulla, kun FPGA-piirejä käytettiin pääasiassa pienivolyymisissä teollisuussovelluksissa ja prototypoinnissa, joissa ne toimivat periaatteessa käyttökelpoisena "laastarina"; jolla järjestelmäsuunnitteluja paikattiin ohjelmoitavilla logiikkaresursseilla.
1990-luvulla Altera ja Lucent käynnistivät FPGA:n toisen aallon uusilla markkinoille tuoduilla toiminnoilla kuten verkkoliikenteen hallinnalla ja pakettien prosessoinnilla. FPGA-piireistä tuli reitittimien, kytkimien ja muiden tietoliikennelaitteiden olennaisia komponentteja samalla kun FPGA-arkkitehtuureihin alettiin sulauttaa SRAM-lohkoja, suuria MAC-osioita, sofistikoituneita konfiguroitavia IO-liitäntöjä ja SerDes-lohkoja, joiden avulla niistä tuli tehokkaampia näissä uusissa rooleissaan.
Vuodesta 2005 lähtien FPGA levisi nopeasti kaikille elektroniikan alueille. Se alkoi tuoda merkittäviä parannuksia suorituskykyyn, tehonkulutukseen ja kustannuksiin. FPGA-piirien kasvava toiminnallinen rikkaus on tuonut myös aiemmin vain DSP- ja grafiikkaprosessoreille ja mikro-ohjaimille varatut segmentit niiden ulottuville.
Tällä FPGA-piirien evoluutiolla liimalogiikasta ja prototypoinnista järjestelmäsuunnittelun keskeiseksi komponentiksi on olut merkittäviä seurauksia koko puolijohdealalle. Datakeskusarkkitehdit ovat alkaneet enenevässä määrin käyttää FPGA-piirejä ohjelmoitavana ohjelmistona sellaisissa sovelluksissa kuin tietoturva, koneoppiminen ja ohjelmistollisesti määritellyt verkot (SDN, software defined networks). Kun markkinoilla on edullisia, vähän tehoa kuluttavia FPGA-piirejä, voimme odottaa, että FPGA:sta tulee seuraava SoC- ja ASIC-suunnitteluihin sulautettava toiminto.
FPGA:n ja prosessorin yhdistäminen
Kun FPGA-piirien suorituskyky, tehonkulutus ja hinta ovat parantuneet merkittävästi, niiden integrointi CPU-arkkitehtuureihin on väistämätöntä.
Varhaiset FPGA-piirit olivat kalliita, tehosyöppöjä ja toiminnallisuudeltaan rajoittuneita, ja usein huono valinta arvosovelluksiin. Näin ei kuitenkaan enää ole. FPGA-piirien viimeisimmät sukupolvet ovat ottaneet isoja edistysaskelia koon, nopeuden ja hinnan suhteen.
FPGA-arkkitehtuurin integrointi CPU:lle on yhä houkuttelevampi vaihtoehto. Jotta voisi ymmärtää miksi näin on ja miten se tehdään, pitää ensin verrata CPU:n ja FPGA:n toiminnallisuuksia.
Mikä on CPU?
CPU:lla (Central Processing Unit) viitataan usein tietokoneen "aivoihin". Se vastaa ohjelmaksi kutsutun tallennettujen käskyjen suorittamisesta peräkkäin. Jokaisessa CPU:ssa on joko perustyyppinen tai modifioitu Harvard-arkkitehtuuri, jossa komennot ja data on tallennettu eri muisteihin.
Mikro-ohjaimet ja mikroprosessorit suorittavat ohjaustason sovelluksia, joilla hallinnoidaan järjestelmätasoa, kun taas kaikki mediaprosessorit (grafiikka-, DSP- ja muut mediaprosessorit) pohjaavat CPU-arkkitehtuureista tuttuun ALU-yksikköön eli aritmetiikka-logiikkayksikköön. Tämä laajentaa mediaprosessorien toiminnallisuutta datasovelluksissa, joissa liikutellaan suuria määriä dataa ja lasketaan monimutkaisempaa aritmetiikkaa.
Vuosien aikana näille arkkitehtuureille on kehitetty erittäin luovia toimintoja, joilla prosessorien suorituskykyä on paranneltu. Logiikkaa ja rekistereitä on lisätty, jotta on saatu tuki monisäikeisyydelle, käskyjen superskalaariseen suorittamiseen on otettu useita liukuhihnoja, joilla on kasvatettu kellojaksoa kohti suoritettavien käskyjen määrää. Samalla SIMD- (single instruction, multiple data) ja VLIW-käskykannat (very long instruction word) nousivat hyödyntämään datan ja käskyjen rinnakkaista käsittelyä.
Suurin haaste prosessoritoteutuksille viimeisen vuosikymmenen aikana on ollut moniydinarkkitehtuurien kehitys. Tämä arkkitehtuuri tuo kuitenkin yhä vähemmän etuja, sillä prosessointikyky ei skaalautu lineaarisesti jokaisen lisätyn CPU-ytimen myötä. Lopulta uusien CPU-ydinten lisääminen ei ole paras mahdollinen ratkaisu.
Mikä on FPGA?
FPGA-piiri on perustaltaan logiikkalohkojen matriisi, joka on liitetty toisiinsa uudelleen konfiguroitavilla reitityskanavilla, jotka voidaan liittää uudelleen suorittamaan hyvin spesifejä toimintoja.
CPU- ja FPGA-piireillä on useita yhteneväisyyksiä: ne käyttävät muistin ja logiikan yhdistelmää pitämään yllä (hold) ja käsittelemään (execute) datakäskyjä. CPU-piirit käyttävät logiikkaa, rekistereitä ja muisteja kootakseen dataa ja käskyjä, ja sitten suorittavat jatkuvasti vaihtuvaa valikoimaa ohjelmistotehtäviä sekä järjestelmän ohjauksessa, että datan käsittelyssä. CPU:t on optimoitu nopeaan kontekstin vaihtamiseen käskyissä ja datassa vain muutamassa kellojaksossa. FPGA sen sijaan vaatii uuden bittivirran ajamisen konfigurointi-RAM-muistiin, mikä on suhteellisen hidas prosessi. Tämän takia FPGA-piirejä käytetään pääasiassa datan käsittelyssä, jossa ne emuloivat digitaalisia logiikkatoimintoja, joilla suoritetaan säännöllisesti toistettavia prosesseja. Itse asiassa FPGA-piirejä käytetään lähes yksinomaan prosessoimaan kuormia, joita toistetaan tuhansien kellojaksojen ajan.
FPGA:n ja CPU:n integrointi
Alalla on selvästi käynnissä väistämätön CPU:n ja FPGA-matriisin tiiviimpi integraatio. Intelillä ja Microsoftilla käynnissä oleva työ havainnollistaa hyvin CPU- ja FPGA-teknologioiden toisiaan täydentävät luonteet.
Intel osti Alteran lähes 17 miljardilla dollarilla kehittääkseen moduuleita, jotka käyttävät sekä Alteran FPGA-piirejä että Intelin mikroprosessoreita kiihdyttääkseen datakeskusten toiminnallisuutta. Microsoftin Catapult-ohjelma puolestaan esittää, että datakeskuspalvelimien laskentakyky voisi kasvaa kaksinkertaiseksi, jos jokaiseen palvelimeen integroitaisiin FPGA-piiri kiihdyttämään Bing-hakuja, Azure-pilvipalveluja ja Microsoft 365 -toimistosovelluksia.
Tämä paremman suorituskyvyn, alhaisempien kustannusten ja pienemmän tehokulutuksen tarve osoittaa, että alalla on paljon uskoa näihin arkkitehtuureihin. Siksi on väistämätöntä, että nämä kaksi arkkitehtuuria alkavat yhdistyä samassa piirissä, jossa FPGA-matriisi integroidaan CPU:lle IP-lohkoina parantamaan suorituskykyä.
Sulautetun FPGA:n aikakausi
Voidaan huoletta sanoa, että FPGA-osion sulauttaminen järjestelmäpiireille on järjestelmäintegraation luonteva kehityskulku mikroelektroniikassa. Tästä syystä Achronix on kehittänyt sulautetun Speedcore FPGA-piirin eli eFPGA:n (embedded FPGA), joka antaa SoC-suunnittelijoille mahdollisuuden määritellä FPGA-lohkon optimaalinen koko, tehonkulutus ja resurssien konfiguroinnin, jota heidän oma sovelluksensa vaatii. Speedcore-käyttäjät voivat määritellä LUT-hakutaulukkojen lukumäärän, sulautettujen muistilohkojen ja DSP-lohkojen määrän, sekä määritellä Speedcore-elementtien suhteen, IO-porttien liitännät ja ylipäätään tehdä valikoituja kompromisseja tehonkulutuksen ja suorituskyvyn välillä.
Sulautetun FPGA-osion edut SoC-piirillä valuvat myös järjestelmätasolle. Piirikortin kehitys yksinkertaistuu, kun erilliset FPGA-piirit poistuvat: suunnittelussa voidaan käyttää edullisempia, vähemmän kerroksia sisältäviä kortteja. Lisäsäästöjä tehonkulutukseen ja kustannuksiin saadaan järjestelmätasolla, kun päästään eroon monista tukitoimintoja tekevistä erilliskomponenteista kuten tehon regulaattoreista, kellosignaalin generaattoreista, passiivisista komponenteista ja erillisten FPGA-piirien jäähdytyksestä. Tämän kaiken lisäksi päästään eroon signaalin eheyteen liittyvistä ongelmista FPGA-piirin ja läheisten komponenttien välillä.
Sulautetun FPGA:n toteuttamisen vaatii metodologioita, taitoja ja teknologioita, joiden kokonaisuus voi vaikuttaa jopa pelottavalta. Toisaalta kyky yhdistää SoC-suunnitteluosaamista, johtavaa FPGA-rautaa ja ohjelmistoja menestyksekkäästi on todella arvokasta.
Kirjoittaja Alok Sanghavi toimii tuotemarkkinoinnin päällikkönä Achronix Semiconductorissa.