Skip to main content

A nyílt forráskódú, jogdíjmentes és bővíthető RISC-V térhódítása az iparban

Megjelent: 2022. április 19.

Mouser lidAz utasításkészlet-architektúrák vajmi keveset változtak az elmúlt negyven év során, azonban a nyílt forráskódú, jogdíjmentes, bővíthető RISC-V felrázni látszik az iparágat.

 

 

 

 

 

A processzorok utasításkészlet-architektúrája (ISA)
alig változott 40 év alatt

Évtizedeken keresztül az Intel és az Arm uralta a processzorarchitektúrák világát. Az Intel x86-os architektúrájával a számítógépek, munkaállomások és szerverek területét birtokolja, míg az Arm egy szélesebb piacon vetette meg a lábát, az IoT-eszközöktől kezdve a fogyasztói elektronikai berendezéseken keresztül az ipari automatizálási rendszerekig. Bár léteznek egyéb beágyazott processzor- és mikrokontroller-architektúrák (például az Atmel AVR és a Microchip PIC/MIPS architektúrái), amik képesek voltak saját piaci szegmenst kialakítani, de ezek sosem érték el a domináns szereplők nagyságrendjét. Az Arm IP-licenc modelljét széles körben alkalmazza a beágyazott rendszerek mikrokontroller- és mikroprocesszor-gyártóinak többsége. Azonban ebbe az állóvízbe most követ dobott egy új szereplő, amely egyre nagyobb lendülettel formálja a területet, és állítja kihívás elé a processzor­piaci normákat. A vezető gyártók rohamos tempóban adoptálják a nyílt forráskódú RISC-V utasításkészlet-architektúrát, ahogy ügyfeleik felfedezik a nyílt forráskódú megközelítés nyújtotta kereskedelmi és technológiai előnyöket. Írásunkban a RISC-V születését kívánjuk dokumentálni, kiemelve néhány igazán előnyös tényezőt. Bemutatunk néhány alkalmazási példát, kiértékelőpanelekre, fejlesztői erőforrásokra és az egyre növekvő DevOps toolchain-ökoszisztémára összpontosítva.

 

ISA – Az igazi kapocs a processzorok hardverelemei

és a szoftverek között

Az utasításkészlet-architektúrák (ISA) biztosítják az interfészt a processzorok hardvere és az azt használó szoftverek világa között. Az ISA határozza meg a programok és a rendelkezésre álló hardverelemek (mint az aritmetikai logikai egységek [ALU], regiszterek, a memória és a vezérlőegység) közötti interakciók minden aspektusát. Meghatározza a szóhosszt, a támogatott adattípusokat, a regiszterek és a memória címzésének módját. Röviden az ISA a processzor egyfajta leképezésének tekinthető.
Számos különböző típusú ISA létezik, de gyakorlati szempontból a két legfontosabb a CISC (complex instruction set computer – összetett utasításkészletű számítógép) és a RISC (reduced instruction set computer – csökkentett utasításkészletű számítógép). Ahogy a nevéből is következik, a CISC számos összetett, különféle alkalmazásokat kiszolgáló speciális utasítást tartalmaz, amelyek közül néhány igen ritkán használatos. A CISC-processzorok ezenfelül sok különböző címzési eljárást és változó hosszúságú parancsokat is tartalmaznak. A CISC-processzorok tervezése drága, kifinomult szoftver- és programozási eszközöket igényel, és lényegesen több időt vesz igénybe. Ilyen CISC ISA például az Intel x86.
Ezzel szemben a RISC-processzorok lényegesen egyszerűbbek, és csupán korlátozott számú, gyakran használt utasításokat tartalmaznak, néhány címzési móddal és fix utasításhosszal. Az utasítás-futószalagos technika gyors végrehajtást tesz lehetővé. Míg a CISC-processzorok az adatokat a memóriába mozgatják a műveletek végrehajtásához, egy RISC-processzor belső regisztereket használ erre a célra. RISC-alapú ISA például az Arm, az AVR, a PIC és a MIPS.

 

Mouser1

1. ábra Egy példa – a Microchip AVR mikrokontroller RISC-architektúrája

 

 

ISA-k – Mik a siker legfontosabb tényezői?

Írásunk további részében kizárólag a RISC-processzorokkal foglalkozunk. Processzor alatt értünk minden feldolgozó eszközt, például a mikrokontrollereket és mikroprocesszorokat. A népszerűbb RISC ISA-k 8, 16 és 32 bites szóhosszal is elérhetők, a 64 és 128 bites ISA-k jellemzően a nagyobb igényű, speciális alkalmazási területeken használatosak. A használt szóhossz jelentős hatással van a hardver tervezésére, a processzor működési sebességére és a címezhető memória méretére egyaránt. Minimális elvárásként egy ISA egy aritmetikai logikai egységet (ALU), memória- és vezérlőlogikát kell tartalmazzon. Az ALU alapvető aritmetikai számítási műveleteket végez, mint összeadás, összehasonlítás és kivonás, amelyekhez a regisztereket használja, illetve „azonnali” műveletként saját magában is elvégezheti ezeket. A memóriacímzés abszolút vagy indexelt lehet. A vezérlőlogika hajtja a feltételes és feltétel nélküli elágazási és egyéb címzési műveleteket.
Egy ISA utasításkészlete műveleti kódokból (gépi kód) áll, amelyek egy meghatározott műveletet végeznek, általában egy vagy több operandussal. Például az Atmel/Microchip AVR ISA ADC utasítása két regiszterben lévő operandus összeadását végzi egy carry flag-gel, az eredményt pedig a célregiszterbe helyezi. Az ISA dokumentációja tartalmazza az egyes utasítások órajelciklusban vagy utasításszámláló iterációban mért időigényét. A RISC-processzorok utasításainak túlnyomó többsége egy órajelciklus alatt kerül végrehajtásra.
A mikrokontrollerek és mikroprocesszorok gyártói számára az ISA a termékek tervezésének kulcsfontosságú komponense. Így az ISA-k szellemi termékké váltak, meghatározott eszközcsaládokhoz létrehozva azokat. Ilyen termékcsalád például az Atmel/Microchip AVR (8, 16, 32 bit) a Microchip PIC (8, 16, 32 bit) és a MIPS (32 és 64 bit).
Az Advanced RISC Machines (Arm) – az 1990-es évek elején az Acorn vállalatból kiválva – szakított a mikrokontrollerek és mikroprocesszorok gyártásának bevett üzleti modelljével. Az Arm az eszközök gyártása és értékesítése helyett inkább a szellemi tulajdonának licencelésére (IP-licenc) alapozta működését, és a befolyó jogdíjakból szerezte bevételét. Az új megközelítés hamar tért hódított, mivel megszabadította a félvezetőgyártókat a saját utasításkészlet-architektúrák fejlesztésének és testreszabásának feladatától. Manapság a legtöbb félvezetőipari gyártó Arm ISA-n alapuló processzorokat kínál, egyesek pedig az ISA-n alapuló eszközöket is szállítanak, minden egyes eladott darab után jogdíjat fizetve az Arm számára. Az ISA életciklusát és fejlesztését az Arm irányítja.
Bár az egyes ISA-k mellett és ellen is szólnak érvek, egy adott processzorachitektúra sikeressége nem csupán annak technikai képességeitől, de a szoftverfejlesztői eszközök rendszerének elérhetőségétől is nagyban függ. Toolchainek (fejlesztéshez használt alapvető programok), integrált fejlesztőkörnyezetek, fordítóprogramok, hibakereső rendszerek és alkalmazásspecifikus köztes szoftverek, mind létfontosságú szerepet játszanak egy processzor és a hozzá tartozó ISA népszerűségének alakulásában.

 

Az utasításkészlet-architektúra nyílt forráskódúvá tétele

Az Arm egy szabványos ISA-t hozott létre a félvezetőipari gyártók számára, amelyhez a gyártók hozzáigazíthatták eszközeik különböző, egyes alkalmazási területekhez szükséges periferiális interfészeit. Ez a megközelítés lehetővé tette a gyártók számára, hogy termékeiket bizonyos szinten differenciálhassák a szintén az Arm szellemi termékét használó más félvezetőgyártók termékeitől. Az Arm széles körű térnyerése lecsökkentette az addig bevált, más ISA-k (AVR, PIC, stb.) piaci elérését.
Azonban a processzorok vásárlói körültekintően kell meghozzák egy Arm ISA-ra alapuló rendszerépítési döntéseiket, mivel a több processzorgyártó piaci jelenléte lehetővé teszi a különböző beszerzési opciók mérlegelését hasonló alkatrészek esetén. A fejlesztés egy adott eszközlánc köré történő szabványosítása üzletileg is megfontolandó döntés.
Egy olyan iparágban, amely számos nyílt forráskódú kezdeményezést is felkarolt, a processzorok utasításkészletének területe meglehetősen zártnak hatott mindaddig, amíg 2010-ben meg nem jelent a RISC-V ISA. Eredetileg a Berkeley-ben található Kaliforniai Egyetemen fejlesztették ki oktatási célokra, azonban a nyílt forráskódú ISA létrehozásának ötlete gyorsan teret nyert. A nyílt forráskódú megközelítés szándéka éppen az ISA-k tervezésének negyven éve szinte változatlan mivoltából ered. A forráskód nyílttá tétele növelheti az interakciók és a programok újrafelhasználásának mértékét, és remélhetően hosszú távú támogatást biztosíthat a gyártók eszközlánc-beszállítói részéről. Egy nyílt forráskódú ISA használatával a gyártók mentesülnek a jogdíjak fizetése alól, ráadásul saját maguk is új utasításokat és bővítményeket készíthetnek hozzá.
Az alap RISC-V ISA és bővítményeinek fejlesztése és kezelése az akadémiai kutatói közösség és az iparág közötti együttműködésben történik. A RISC-V ISA a 32, 64 és 128 bites szóhosszokat támogatja. 2015-ben a fejlesztésben együttműködő félvezetőipari társaságok által létrehozott RISC-V alapítványnak köszönhetően jelentős előrelépés történt a RISC-V fejlesztésében. A kereskedők figyelmét felkeltették a jogdíjmentesség és a bővíthetőség jelentette előnyök. Az Arm-licencek nem teszik lehetővé az utasításkészletek módosítását, hogy azok jobban megfelelhessenek egyes speciális alkalmazási terület igényeinek (például az alacsony fogyasztás elősegítésével), azonban a RISC-V esetében ennek nincs akadálya. A RISC-V alapítvány több mint 750 iparági tagot számlál.
Ahogy a főbb processzorgyártók figyelme a RISC-V felé fordult, a szoftvereszközök fejlesztői is egyre inkább megkezdték fejlesztőkörnyezeteikben és eszközláncaikban a RISC-V támogatásának bevezetését.

 

A RISC-V indulása

Az egyik legelső elérhető RISC-V-alapú, 32 bites processzor a SiFive Freedom E31 egylapkás rendszere volt. A SiFive-ot a RISC-V ISA alapítói hozták létre, hogy tapasztalataikat minél hamarabb piacképes termékké tudják váltani. A prototípusok készítésének ösztönzése érdekében a SiFive közösségi finanszírozás keretében létrehozott egy alacsony költségű, szabványos méretű, Arduino fejlesztőtáblát, a HiFive1-et. A SiFive HiFive1 B Wi-Fi-kapcsolódási képességet és 32 MB flash-memóriát biztosít.

 

Mouser2

2. ábra A SiFive HiFive1 B fejlesztőtábla

 


A SEEED is szállít egy Feather/MKR formátumú, 0,96 collos LCD-kijelzővel felszerelt fejlesztőkártyát, Sipeed Longan Nano néven, ami egy GigaDevice 32 bites RISC-V magot használ.
A SparkFun egy a HiFive1 B-hez hasonló fejlesztőkártyát szállít. A SparkFun RED-V RedBoard szintén az Arduino UNO-R3 méretben készül és egy SiFive E310 RISC-V-alapú egylapkás rendszert használ.
Egy professzionális mérnököket célzó, sokkal átfogóbb RISC-V-platform a Microchip PolarFire SoC FPGA Icicle fejlesztőeszköze.
Az ötmagos, Linux-kompatibilis RISC-V RV64-mag fejlesztőeszközéhez tervezett PolarFire SoC 256 ezer logikai egységgel és egy 784 elemű matematikai blokkal is fel van szerelve. Az Icicle kit ideális valós idejű, alacsony fogyasztású tervek prototípusainak elkészítéséhez az IoT-eszközöktől a gépi tanulási alkalmazásokig, köszönhetően a perifériacsatlakozások átfogó kínálatának, amelyben HDMI, PCIe, USB, CAN, SPI és I2C is megtalálható. A külső bővítő interfészopciók között megtalálható egy mikroBUS-aljzat és egy 40 tűs Raspberry Pi-csatlakozó.

 

Mouser3

3. ábra A Microchip RISC-V PolarFire SoC kiértékelőkészlet funkcionális blokkdiagramja

 

 

RISC-V – Most kezdődik az utazás

A RISC-V utasításkészlet-architektúra relatíve rövid időn belül komoly lendületet kapott. Az alapítványnál 2020 júliusában ünnepelték a RISC-V-fejlesztés megkezdésének tizedik évfordulóját. Az alapítvány honlapján olvasható információk szerint jelenleg már 12 RISC-V-alapú egylapkás rendszer, valamint 86 mag érhető el kereskedelmi forgalomban.
A RISC-V hamar képessé vált jól használható, bővíthető és jogdíjmentes alternatívát nyújtani a piacon megtalálható többi utasításkészlet-architektúrával szemben.

 

 

MarkSzerző: Mark Patrick

Mouser Electronics

 

 

Mouser Electronics
Franchised Distributor
www.mouser.com