ga('send', 'pageview');
Categories
Blogg

Är du redo för RISC-V?

I ganska många år har persondatorindustrin dominerats av en enda processorarkitektur: x86. Både AMD och Intel har tillverkat processorer i x86-arkitekturen och trots tappra försök från uppstickare som PowerPC och Sun så lyckades ingen av dem bryta arkitekturens dominans i vare sig persondator- eller serversegmenten.

I mobilbranschen var dock läget ett annat. Medan AMD och Intel var låsta i en kapplöpning om att skapa snabbare och mer kraftfulla processorer så behövde mobiltillverkarna snarare lång batteritid och låga temperaturer. Ett företag som snabbt vann mark i mobilbranschen var det engelska bolaget ARM. Deras affärsidé skilde sig från AMDs och Intels då de inte tillverkar sina egna processorer utan endast designar processorarkitekturen och sedan licensierar den till andra bolag för egen tillverkning och försäljning. Tack vare sina energisnåla och snabba processorer lyckades ARM med tiden komma att dominera sin nisch.

Länge såg det alltså ut på detta vis: Intel och AMD dominerade PC- och serversegmenten medan ARM dominerade mobilsegmentet. Men nu har en ny utmanare dykt upp, en konkurrent som kan komma att skaka om både PC-, server- och mobilsegmenten samtidigt: RISC-V.

Öppenhet framför allt

Det som gör RISC-V unik är egentligen inte några revolutionerande tekniker, hög prestanda eller låg strömförbrukning, även om den är fullt duglig på flera av dessa områden. Det unika med RISC-V är att det är den första ISA:n (Instruction Set Architecture) ämnad för professionellt bruk som är helt och hållet öppen, det vill säga belagd med en helt royaltyfri licens. Det betyder att företag (eller privatpersoner, för den delen) kan licensiera RISC-V ISA:n och skapa sina egna kompatibla processorer utan att betala någon för detta. Företagen kan till och med göra sina egna ändringar på processorarkitekturen utan hinder.

Den som vill skapa en kompatibel processor behöver inte heller signera NDA:er eller på något annat sätt dölja dokumentationen de tar del av, då all dokumentation gällande RISC-V är öppen. Alla intellektuella rättigheter till RISC-V ägs dessutom av den icke-vinstdrivande stiftelsen RISC-V International, baserad i Schweiz, vilket syftar både till att skydda arkitekturen mot patenttroll och undvika att den beläggs med exportförbud.

RISC-V för programmerare

Om du vid det här laget tänker “Okej, men hur skriver jag kod för RISC-V processorer?” så är svaret ganska enkelt: i de flesta fall behöver du inte ens tänka på det. RISC-V skiljer sig från andra arkitekturer främst på assembler-nivån. Skriver du alltså inte assemblerkod i vardagen behöver du i de flesta fall inte ändra på ditt arbetssätt.

Det enda du behöver göra är att kolla upp om språket du vill använda har portats till RISC-V arkitekturen. Här har nämligen utvecklarna av kompilatorer och virtuella maskiner gjort mycket av jobbet åt oss redan nu, då många av de mest populära språken redan har gjorts kompatibla med RISC-V. Några exempel på språk du redan nu kan använda i RISC-V miljöer är C och C++ (via GCC och LLVM), Python, Java, Javascript (via Node.js).

För att rent praktiskt komma igång med RISC-V utveckling behöver du antingen komma över hårdvara innehållande en RISC-V-processor eller använda en emulator med stöd för RISC-V:

  • Om du är intresserad av lågnivå-utveckling, exempelvis för IoT, så finns det en mängd mikrodatorer att tillgå. Min personliga favorit här är ESP32-C3 SoC:en som bland annat används av mikrodatorn Wemos C3 Mini. Med den kan du programmera med Arduino C++, ESP-IDF, MicroPython eller CircuitPython och utnyttja processorns blixtsnabba 160 MHz frekvens och gigantiska 400 KB RAM.
  • Om du vill programmera på lite högre nivå kan du köpa en av flera Raspberry Pi-liknande mikrodatorer som du kan installera en fullständig Linux-distro på. Här är min personliga favorit StarFive VisionFive2 som kommer med en 64-bitars 1.5 GHz CPU, 2-8 GB RAM och diverse användbara portar för skärmar, möss, tangentbord, nätverk och lagringsmedia.
  • Om du däremot inte är redo att köpa hårdvara ännu men ändå vill prova en RISC-V miljö så finns det redan stöd för arkitekturen i den populära emulatorn QEMU.
Wemos C3 Mini
StarFive VisionFive2

Några potentiella problem du kan stöta på när du programmerar i RISC-V miljöer är att vissa bibliotek som använder specifika processorfeatures (tex transaktionellt minne eller packed-SIMD instruktioner) för att snabba upp koden ibland inte ännu har stöd i RISC-V processorer. Detta kan exempelvis påverka dig om du arbetar med maskininlärning, 3D-grafik eller videokomprimering för att nämna några. Wikipedia-sidan för RISC-V har en komplett lista över vilka processorfeatures som finns tillgängliga redan idag och vilka som fortfarande är under utveckling eller ännu inte finns i roadmap:en. 

Var används RISC-V just nu?

I dagsläget finns redan många olika implementationer av RISC-V tillgängliga på den öppna marknaden. Som vi sett ovan så finns arkitekturen tillgänglig i många olika inbäddade system, såväl små och svaga som stora och kraftfulla. Det finns sedan länge RISC-V processorer kompatibla med Arduino, och ett växande antal mikrodatorer i samma formfaktor som Raspberry Pi, utöver alla de inbyggda system som använder RISC-V processorer utan att vi som slutanvändare har någon aning om det.

För entusiaster börjar det dock dyka upp fler och fler alternativ baserade på RISC-V. I skrivande stund finns det två laptops med RISC-V processorer: DC Roma och Balthazar Personal Computing Device. I dagsläget är operativsystemsstödet för dessa laptops ganska begränsat, men redan nu har nästa version av Linux-distributionen Debian utlovat stöd för RISC-V, vilket lär bli startskottet för bredare Linux-stöd.
Det finns även flera tablets på marknaden baserade på RISC-V, bland annat PineTab-V från Pine64 och Lichee Pad 4A från Sipeed. I dagsläget saknar dessa liksom ovan nämnda laptops ännu fullständigt stöd i Android och Linux, men säljs för att ge utvecklare möjlighet att fortsätta arbetet med att porta operativsystemen till dem och bereda väg för framtida produkter ämnade för en bredare publik.

Framtiden är (snart) här

Anamningen av RISC-V arkitekturen har inte visat några tecken på att avta ännu, och den lista på 45 pågående RISC-V projekt från olika företag på Wikipedia är ett tydligt bevis på det. Användningen av RISC-V verkar inte heller begränsa sig till inbäddade system, tablets och laptops utan siktar mot flera andra segment:

  • Såväl akademiska institutioner som RISC-V International har påbörjat arbetet med att designa servrar baserade på RISC-V processorer. Redan nu har Huawei avslöjat långt gångna planer på ett eget RISC-V serverchipp.
  • Ett konsortium av företag bestående av Robert Bosch, Infineon Technologies, Nordic Semiconductor, NXP Semiconductors och Qualcomm bildades i början av augusti 2023 med målet att ta fram RISC-V-baserade produkter för fordonsindustrin.
  • Samma konsortium har även som uttalat mål att expandera de nya RISC-V processorerna till mobilbranschen framöver, samtidigt som Google sagt att RISC-V kommer att bli en första-klass-arkitektur för Android inom kort, med stöd i Android-emulatorn planerat för 2024.

Tack vare RISC-V arkitekturens öppenhet, modernitet, prestanda och möjlighet att inte bara basera nya produkter på ISA:n utan även göra egna tillägg till den (något som inte tillåts för ARM eller x86) gör den till en mycket attraktiv arkitektur för nya projekt, och gör att dess potential att expandera till alla möjliga branscher framöver är mycket hög. Givet det kan vi förvänta oss att se RISC-V i fler och fler olika kontext i framtiden.

Eller för att uttrycka det på ett annat sätt: RISC-V är framtiden!

By Ola Rende

Backendutvecklare, fullstackutvecklare

Leave a Reply

Your email address will not be published. Required fields are marked *