Skip to main content

„Erőgép” (vastag) kártyaméretben

Megjelent: 2018. június 07.

3 1abra lidA Raspberry Pi-vel és az Arduinoval kezdődött az a folyamat, amely egész „mozgalmat” indított útjára a beágyazott elektronikában. Sokan felismerték az apró méret, a megfizethető ár és nem utolsósorban a nyílt forrású szellemi termékek és szakmai közösségek köré épülő ökoszisztéma vonzerejét, és gombamód szaporodnak a koncepciót hasznosító kezdeményezések. Ennek egy példáját, az AVNET „belépő szintű” MiniZed-jét már bemutattuk a Kártyaszámítógép extrával – 1 és Kártyaszámítógép, extrával – 2 cikkeinkben. És ha már a MiniZed is szerény külsejét meghazudtoló teljesítőképességet kínált, még inkább igaz ez a most terítékre kerülő Ultra96 fejlesztőeszközre.



Rendszeres olvasóink emlékezhetnek a Kártyaszámítógép, extrával – 2 cikkünk 3. ábrájára, amely az akkori cikk témáját képező MiniZed fejlesztőkártyát helyezte el egy olyan „család” körében, amely kis méretű, de nagy teljesítményű, FPGA-alapú programozható logikát is tartalmazó rendszercsipekre épített kártyákból áll. Ezúttal az ábra egy másik „szereplőjét”, ugyanennek a terméksornak egy „felsőbb kategóriás” tagját, az Ultra96 fejlesztőeszközt vesszük szemügyre. Előre kell bocsátanunk, hogy az eszköz annyira új, hogy lapunk megjelenésekor érkezik az első két tesztpéldány az EBV budapesti irodájába. Az érdeklődők az AVNET multinacionális alkatrészdisztribútor cég magyarországi képviselete, az EBV Elektronik Kft. munkatársaitól, jelesül Nagy Krisztián támogatómérnöktől kaphatnak tájékoztatást a kereskedelmi forgalmazás megindulásának várható időpontjáról.

 

EBV Ultra96 1

1 ábra  Az AVNET Ultra96 fejlesztőkészlet tartalma

 

Első benyomások

Az AVNET Ultra96 eléggé „minimalista” tartalmú csomagban érkezik (1. ábra), mivel a szállító – általában okkal – feltételezi, hogy a felhasználó nem először találkozik hasonló fejlesztőeszközzel, és a szükséges „általános rendeltetésű” tartozékok (pl. tápegység) a rendelkezésére állnak. Az Ultra96 kártya (2. ábra) is a Raspberry Pi-nél megszokott „bankkártyamérethez” igazodik: az alapterülete 85 × 54 mm. A „vastagságának” (ma még ) természetesen meg kell haladnia a bankkártyáét, már csak a csatlakozók és más, terjedelmesebb alkatrészek magassága miatt is, de az Ultra96-nál rögtön szembeötlik egy (sem a Raspberry Pi-nél, sem az Arduino-nál nem tapasztalt) további „vastagító” elem: egy mattfeketére színezett alumínium borítás a kártya csatlakozókkal átellenes oldalán. Mögé pillantva azonnal rájövünk a rendeltetésére: ez egy hűtőbordaként (is) funkcionáló védőlemez, amely egy, a rendszercsipre a PC-alaplapok processzoránál megszokott módon „ráültetett” hűtőventilátorral működik együtt. Ez nem túl vonzó tulajdonság, hiszen ezeket az apró „kártyagépeket” nem utolsósorban kis fogyasztásuk, mozgó alkatrészeket nem tartalmazó, passzív hűtésük és zajtalan működésük miatt szeretjük. „Nagy okának” kell tehát lenni, ha az Ultra96 fejlesztői mégis a ventilátoros „rásegítésű”, hűtőbordás megoldást választották. Nem nehéz kitalálni: az ilyen alkalmazásban szokatlanul „izmos” rendszercsip teljesítőképességének árát fizetjük meg a „megemelt” fogyasztással és hődisszipációval, ami miatt csak aktív hűtéssel garantálható a megbízható működés. A kártya fogyasztása még ezzel együtt sem „elborzasztó”: a működtetésre12 V/2 A-es tápegység ajánlott, ami nyilván nincs is „koppanásig” kihasználva. A fogyasztás mindenesetre a kategória állandó „hivatkozási alapjához”, a Raspberry Pi-hez, de az előző számainkban bemutatott MiniZed-hez képest is nagyobb – a továbbiakban meglátjuk, milyen „többletet” kapunk a teljesítőképességben az aránylag nagyobb fogyasztásért cserébe.

 

ultra96 angle1 hd

2. ábra   Az AVNET Ultra96 fejlesztőkártya

 

A Linaro és a 96Boards

Itt jegyezzük meg, hogy – bár ez „első ránézésre” nem mindenki számára felismerhető – a kártya méretei, elrendezése és más jellemzői a nyílt forrású beágyazott elektronikai szakmai közösség, a Linaro szervezet (www.linaro.org) „96Boards” specifikációját követik. A nonprofit, kompetencia-alapon „önszerveződő” Linaro közösség alapvetően az ARM-architektúrájú processzorok köré épített hardverek fejlesztésével foglalkozik, de nem „retten vissza” olyan „nem ARM” eszközök kidolgozásától sem, amelyek felhasználásának a beágyazott rendszerek fejlesztői vehetik hasznát. A Linaro-szervezet (amelynek tagja az ARM architektúrafejlesztőn kívül több, ARM-magos terméket is előállító piacvezető gyártóvállalat is) „rendszerépítő” kezdeményezéséről, az ARM-alapú 96Boards „kváziszabványról” a www.96boards.org webcímen találhat bővebb tájékoztatást az érdeklődő. A bankkártyányi méretek megszokottnak számítanak ebben a kategóriában, de a fejlesztők számára rokonszenves lehet, hogy a Raspberry Pi „körülcsatlakozós” felépítésétől eltérően minden csatlakozó a hordozólap egyazon oldalán található, ami jelentősen egyszerűsítheti a 96Board-kártyákon alapuló végtermékek házának mechanikai konstrukcióját. Ráadásul a „csereszabatos” mechanikai elrendezés olyan – árban és teljesítőképességben „lépcsőzött” – végtermék-családok fejlesztését is lehetővé teszi, amelyben a 96Board-specifikációjú vezérlőkártyának a feladat követelményeihez illeszkedő megválasztása képezi a kategóriadifferenciálás (egyik) alapját.
Azt is előre bocsáthatjuk, hogy az Ultra96 – éppen a „felső kategóriás” processzor képességeinek és a programozható logikában megvalósítható gyorsítófunkciók lehetőségének köszönhetően – messze kiemelkedik a Linaro-közösség más, ARM-alapú termékei közül a „fogyasztásicikk-kategóriában” (Consumer Edition – CE, amely nem tévesztendő össze az EU-szabványoknak való megfelelés jelzésével). Azt ugyanis meg kell említenünk, hogy a 96Boards-specifikációnak a CE-specifikációtartományán kívül létezik egy Enterprise Edition (EE) megnevezésű, „nagyságrenddel” magasabb árfekvésű kategóriája is. A kategóriák elnevezése azonban megtévesztő: nem arról van szó, hogy a CE-kategóriájú kártyák a „professzionálisabb” EE-nél alacsonyabb minőségi követelményeket elégítenének ki. A különbség sokkal inkább a kártyák „felszereltségében” – és ezzel együtt az alkalmazási területében – van. Az EE-kártyák gazdag perifériakínálata könnyű prototípusfejlesztést ígér, az alkalmazások jelentős köre valósítható meg velük anélkül, hogy lényeges járulékos hardverfejlesztésre lenne szükség, míg a – minőségüket tekintve ugyancsak professzionális – CE-kártyák inkább szoftverfejlesztést támogató „futtatórendszerként” használhatók kényelmesen. A teljesség kedvéért megjegyzem még, hogy az említett CE- és EE-kategóriákon kívül létezik egy „beszédes” elnevezésű „IoT” specifikációs kategória is, amely kis méretével és alacsony fogyasztásával szolgálja a „dolgok internetéhez” eszközöket fejlesztő mérnököket.

 

3 3abra 

3. ábra  Az Ultra96 fejlesztőkártya tömbvázlata

 

A készlet tartalma

A vásárló a készletben az Ultra96 fejlesztőkártyán kívül egy 16 GB-os, az azonnal futtatható PetaLinux operációs rendszerrel „előtöltött” microSD kártyát, a Xilinx SDSoC szoftver-erőforrásainak igénybevételére jogosító kódot tartalmazó „utalványt” (vouchert) és a gyorsan végrehajtható első beüzemelés rövid útmutatóját kapja.
A 3. ábra mélyebb betekintést ad a kártya hardverlehetőségeibe. A kártya „motorja” a Xilinx félvezetőgyártó vállalat (www.xilinx.com) igen fejlett, 16 nm-es technológiával készülő Zynq® UltraScale+ XCZU3EG-1SBVA484E típusszámú rendszercsipje a következő jellemzőkkel:

  • négymagos ARM® Cortex-A53 alkalmazásprocesszor: 
    – CoreSight hibakereső hardver,
    – NEON (SIMD – egy utasítással több adat párhuzamos feldolgozására alkalmas) technológia,
    – szimpla- és duplapontosságú lebegőpontos aritmetika,
    – 256 kbájt integrált, hibajavító kódos memória, külső RAM interfész dinamikus (DDR4 és LPDDR4) memóriákhoz,
    – négycsatornás SPI és eMMC (Embedded MultiMedia Card) interfész,
    – 214 PS I/O; UART; CAN; USB 2.0; I2C; SPI; 32 bit GPIO; valós idejű óra (RTC); watchdog időzítők; három időzítő/számláló modul ,
    – 4 db PS-GTR (multigigabit/s-os interfész a programozható logika és az alkalmazásprocesszor között), PCIe Gen1/2 interfész, SATA 3.1 HDD illesztő, DisplayPort 1.2a, USB 3.0, SGMII (soros gigabites, médiafüggetlen interfész),
    – ARM Mali 400 MP2 grafikus processzor,
  • kétmagos ARM Cortex-R5 valós idejű processzor CoreSight hibakeresővel és szimpla- és duplapontosságú, lebegőpontos aritmetikával és szoros csatolású memóriainterfésszel (Tightly Coupled Memory Interface – TCM);
  • FPGA-modul: – kb. 154 ezer logikai cella, – 1,8 MB funkciófüggő RAM, – 7,6 MB, 216 blokkra bontott RAM, – 360 DSP-egység.

A távolról sem teljes felsorolásból látható, hogy az Ultra96 rendszercsipje kiemelkedő mennyiségű és minőségi összetételű hardvererőforrással „kényezteti el” a felhasználót. Külön kiemeljük az előző lapszámban ismertetett MiniZed-be épített rendszercsip FPGA-jához képest többszörös mennyiségű, fejlettebb architektúrájú és jelentősen nagyobb teljesítőképességű, 2…5-szörös „teljesítőképesség/watt” energiahatékonyságú programozható logikai (PL) szegmensét.

 

Hogyan fogjunk hozzá?

Az Ultra96 kártyát tartalmazó készleten kívül szükséges

  • egy névlegesen 12 V/2 A-es, 1,7 mm-es belső és 4,8 mm-es külső átmérőjű koaxiális csatlakozóval szerelt tápegység, de a specifikációs tartomány elég széles: 8…18 V/2…3 A (A 2 A-t meghaladó energiaellátás akkor ajánlott, ha a kártyán keresztül kívánjuk megoldani egy vagy több vendégkártya és/vagy perifériás egység áramellátását is.),
  • USB billentyűzet és egér, USB-A csatlakozókkal,
  • Displayport-bemenetű monitor és kábel,
  • egy microSD kártya, ha az operációs rendszer és valamilyen többlettároló között kívánunk gyorsan és könnyen átkapcsolni, valamint (opcionálisan),
  • olyan 96Boards-kompatibilis vendégkártyák (az angol szakzsargonban mezzanine-kártya), amelyeket a feladatunk követelményei indokolnak.

Az Ultra96 kártyát Linux operációs rendszerrel „előtöltve” kapjuk kézhez, amely kétféleképpen futtatható.

  • Futtatás PC-kliensen keresztül:
    –  Csatlakoztassuk az Ultra96-hoz a tápegységet.

    –  Nyomjuk meg az SW3 (POWER) pillanatkapcsolót (ez a fejlesztők kedves figyelmessége ahhoz képest, hogy a legtöbb hasonló méretű kártya tépfeszültségének kapcsolását „kívül” kell megoldani). 
    –  Kigyullad a DS6 (DONE) led, amely azt jelzi, hogy az FPGA-t konfiguráló bitszekvencia sikeresen betöltődött.
    –  A LED2 jelzi, hogy a Linux betöltődött és fut.
    –  Egy WiFi-képes PC-vel keressük meg az Ultra96_xxxxxxxxxxxx nevű WiFi-hálózatot és csatlakozzunk fel rá (a 12 „x” helyén az adott Ultra96-kártya MAC-címét találjuk). 
    –  A PC böngészőjével nyissuk meg a 192.168.2.1 IP-című weblapot, amely a kártya „kezelőfelületének” tekinthető. 
  • Futtatás a kártya saját erőforrásaival:
    –  Csatlakoztassuk az Ultra96-ot egy DisplayPort-bemenetű monitorhoz egy „miniDP → DisplayPort” kábellel.
    –  Csatlakoztassunk USB billentyűt és egeret a J8 és J9 USB-A csatlakozókhoz.
    –  Nyomjuk meg az SW3 (POWER) pillanatkapcsolót.
    –  A képernyőn követhetjük a Linux betöltődését kísérő üzeneteket.
    –  Amint az előző változatnál is, a DS6 (DONE) led jelzi, hogy az FPGA-t konfiguráló bitszekvencia sikeresen betöltődött.
    –  A Linux betöltődése után a „klasszikus” asztali kezelőfelületről használható.

Érthető azonban, ha a felhasználót (az Ultra96 esetében) nem egy „szimpla” linuxos számítógép futtatása érdekli, hanem azt is szeretné megismerni, milyen előnyök származnak a rendszercsip programozható logikát jelentő szegmenséből. Ezzel kapcsolatban visszautalunk a Kártyaszámítógép extrával – 1 és Kártyaszámítógép, extrával – 2 cikkeinkre. Ott bemutattuk, hogy a programozható logika (az FPGA) használatához nincs szükség speciális FPGA-ismeretekre. Elegendő az alkalmazást a hagyományos módon, C/C++ környezetben megírni és a kártya rendszercsipjének alkalmazásprocesszorán futtatni. Ezután a szokásos programtesztelő-hibakereső módszereket használva érdemes kideríteni, hogy mely programrészek futtatása veszi igénybe a futásidő túlnyomó hányadát. Ezeket a programmodulokat a Xilinx Vivado-fejlesztőkörnyezetében egyszerű „drag&drop” módszerrel „áthúzzuk” a programozható logika munkaterületére. A Vivado ebből olyan bitszekvenciát generál, amellyel a programozható logika konfigurálásával a szoftveralkalmazásból átemelt programrész funkcióját ellátó logikai hálózattá, „gyorsító” célprocesszorrá válik. Ennek futási ideje töredéke a szekvenciálisan végrehajtódó szoftveralkalmazásénak, ezáltal a teljes alkalmazás olyan mértékben felgyorsul, amely hagyományos mikroprocesszor programozásával nem is érhető el.
Rendkívüli módon felgyorsíthatja az alkalmazásfejlesztés folyamatát a Xilinx UltraScale+ rendszercsipjéhez elérhető számos alkalmazás igénybevétele is, amelyek a leggyakoribb és legvalószínűbb alkalmazási területekhez mutatnak kész megoldásokat, továbbá az általános és célorientált szoftverfejlesztési erőforrások sokasága, amelyekkel az előbbiek testre szabhatók vagy eredeti alkalmazások fejleszthetők.

 

Mire elég az FPGA-val megvalósított gyorsítás?

Az FPGA képességei leginkább a nagy adatmennyiségek „áramlásával” és azonos idejű feldolgozásával járó feladatoknál használhatók ki. Ilyenek a gépi tanulás, a mesterséges intelligencia, a képfeldolgozás, alakfelismerés, adatáram (stream) generálása és valós idejű feldolgozása, párhuzamos jelfeldolgozás, robottechnika, vezetéstámogató rendszerek és autonóm járművek, – tipikusan olyan jelfeldolgozási feladatok, amelyek a hagyományos, szekvenciális végrehajtású processzorokkal valós időben nem, vagy csak túlságosan nagy „nyers erő” munkába állításával, jelentős költségek és szakmai nehézségek árán lennének megoldhatók.
Érdemes megnézni a 96Boards YouTube csatornán található „Ultra96 Accelerated Image Recognition Tech Demo” videodemonstrációt, amelyben egy kamera kimeneti jelét valós időben feldolgozó, az Ultra96 kártya magját képező rendszercsipen futó alakfelismerő alkalmazás kimeneti képe látható: igen nagy biztonsággal történik a közlekedési jelzőtáblák felismerése még mostoha megvilágításnál is. Figyelemreméltó az FPGA-alrendszer használatával elérhető, tipikusan 6000-szeres gyorsítás a tisztán szekvenciális szoftvermegoldáshoz képest.
Itt jegyzem meg, hogy az alkalmazásprocesszor – a NEON technológia révén – maga is alkalmas egy utasításnak egyidejűleg több adaton való végrehajtására (ez a párhuzamos feldolgozás egyik fontos változata). Az FPGA-val azonban nem csak kisebb logikai céláramkörök, hanem akár teljes processzorok vagy DSP-elemek is megvalósíthatók, amelyre számos kész, a feladat jellegéhez jól illeszthető IP-megoldás (Intellectual Property), köztük konfigurálható „szoft processzorok” is rendelkezésre állnak. Ezek előnye, hogy nem kell mereven ragaszkodni a hagyományos hardveres processzorok merev adatszerkezeteihez, a tipikusan rövid adatstruktúrákat nem kell 32 vagy 64 bites környezetben feldolgozni egy olyan utasításkészlettel, amelynek a speciális feladat a töredékét sem használja ki – és mindezt csak azért, mert „ilyen a processzor”. A „szoft processzorok” és más, a felhasztnáló által definiált gyorsítófunkciók ezzel ellentétben olyan „célratörően”, feladatspecifikusan valósíthatók meg, hogy elkerülhető az energia és a hardver erőforrások pazarló felhasználása.

 

Összefoglalás

Ma már nincs akadálya annak, hogy bankkártyányi méretben nem csak játék vagy tanuló számítógépeket, hanem professzionális feladatokra alkalmas informatikai eszközöket is meg lehessen valósítani. A Xilinx Zynq® Ultrascale+ MPSoC ARM processzort és FPGA-val megvalósított programozható logikai kapacitást is tartalmazó rendszercsipjei tovább bővítik az ilyen kis méretű számítógépkártyák alkalmazhatósági körét olyan feladatok megoldására, amelyek a szekvenciális programvégrehajtásra alkalmas mikroprocesszorokkal nem vagy csak nehezen lennének kezelhetők. A nyílt forrású eszközkészlet, a széles körű szakmai közösségre és a kölcsönösség elvére alapuló támogatóhálózat, a gyorsan tanulható és használatba vehető eszközök gyorsan piacra juttatható végtermékek előállítására teszik képessé a fejlesztőket.

 

Szerző: Tóth Ferenc

 

A cikk alapjául szolgáló információkat az AVNET Engineering Services termékeit Magyarországon képviselő EBV Elektronik Kft. bocsátotta rendelkezésemre. A témához kapcsolódó további szakmai képzéseket a https://www.avnet.com/wps/portal/ebv/resources/training-and-events/ oldalon találják. Javasoljuk, hogy a mélyebben érdeklődők vegyék fel a kapcsolatot Nagy Krisztiánnal (Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.), a cég támogatómérnökével.

 

EBV Elektronik Kft.
1117 Budapest, Budafoki út 91-93.
Tel.: +36 1 436 7220

E-mail: Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.

www.ebv.com

 

Még több EBV Elektronik