Veiligheid dankzij open source processorarchitectuur RISC-V

mozaiek-fpga

RISC-V is een breed gedragen open source processor architectuur om FPGA’s en andere hardware aan te sturen. Dankzij het open source karakter kan iedereen zijn eigen softcore maken en die een-op-een overzetten naar een andere FPGA. Technolution ontwikkelt met RISC-V een eigen softcore voor safety- en securitytoepassingen.

Artikel uit Bits&Chips #5, juli 2016 - ook beschikbaar in pdf

Om de veiligheid van een auto te garanderen, gaan ontwerpers tot het uiterste. De rem en de airbag van de auto moeten het altijd doen. Een hapering in de navigatie of het audiosysteem is vervelend, maar zorgt niet direct voor een gevaarlijke situatie.

Wie alle onderdelen in software programmeert op één processor, moet zich in allerlei bochten wringen om de kritieke functies altijd te kunnen garanderen. Daarom worden zulke kritieke functies in aparte hardwarecomponenten gemaakt, geoptimaliseerd op veiligheid. Dit geeft een geïsoleerd stukje hardware waarvan we kunnen garanderen dat het altijd werkt, maar het is verre van flexibel. De auto met deze losse stukjes veilige hardware is een voorbeeld van een mixed criticality-systeem, dat taken uitvoert op verschillende niveaus van veiligheid of beveiliging.

Wat voor auto’s geldt, gaat ook op voor veel andere complexe systemen. De besturing van de röntgenbron van een medische scanner moet altijd functioneren. Met de opkomst van het Internet of Things (IoT) kan alles aan elkaar worden gekoppeld. Maar sommige onderdelen of processen willen we juist niet aan het internet hangen. Ook dan is er sprake van een mixed criticality-systeem. De grootste zekerheid biedt een autonome processor of een separaat systeem zoals bij de rem en airbag van de auto. Technisch en financieel zijn separate systemen echter vaak niet haalbaar: te complex, te groot, te duur.

Tegenwoordig is het heel goed mogelijk om de functionaliteit van deze separate systemen samen te voegen op één FPGA. Van losse stukjes veilige hardware zijn we nu beland bij losse stukjes veilige logica op een FPGA. Ook dit is een mixed criticality-systeem. De kritieke functies draaien op een eigen processor in de programmeerbare chip. Daarvan passen er meerdere op één FPGA: bijvoorbeeld eentje voor de noodstop, die alleen maar naar de voorwaarden voor de noodstop kijkt, en een andere voor de userinterface, die een stuk minder kritiek is.

De FPGA wordt zo een verzamelplaats van losse systemen. De processoren draaien volledig zelfstandig onder hun eigen voorwaarden en beïnvloeden elkaar niet. Elke processor heeft zijn eigen belangrijkheid.

Goed geregeld

Op een FPGA kunnen we met standaard logische poorten elk bouwwerk maken, zoals we met legosteentjes ook alles kunnen bouwen. Maar een compleet systeem bouwen met elementaire bouwstenen kost veel tijd. Daarom levert de fabrikant bij zijn FPGA een aantal kant-en-klare bouwblokken, waaronder een complete processorcore.

Deze zogeheten softcores worden steeds belangrijker in FPGA-ontwerpen. We kunnen er software op draaien voor specifieke taken die lastig zijn te realiseren in logische poorten. Zo combineren we het beste uit twee werelden: de flexibiliteit van software (op de softcore) en de processing-power van logische poorten.

Dat klinkt mooi: flexibiliteit, het beste van twee werelden. Maar er zit een addertje onder het gras. De bouwblokken zijn fabrikant-specifiek. Als we het ontwerp naar een ander stuk hardware willen overzetten, moeten we op zoek naar alternatieven voor de gebruikte bouwblokken. Alsof we een auto bouwen van lego, en dan exact dezelfde auto willen bouwen van Mecano. Vooral het overzetten van de software naar een andere processor is een flinke klus.

We zouden dus graag een ‘platform’ hebben dat onafhankelijk is van het type of merk hardware. Dat is een van de drijfveren achter het opensource-initiatief RISC-V (zie kader). RISC-V vormt de koppeling tussen de software en de processor. De softwarecommando’s worden ontleed tot instructies die de processor direct kan uitvoeren. Het idee is dat we met een beperkte set instructies alle software kunnen draaien.
Zelf een instructieset-architectuur ontwikkelen is nogal een onderneming: we hebben een heel ecosysteem nodig rondom de architectuur, met allerhande tools, compilers, besturingssystemen, applicaties en debugtools. Bij RISC-V is dat goed geregeld en nog steeds groeiende. Vanwege het open source karakter kan iedereen ermee aan de slag en eraan bijdragen. En voor dit verhaal minstens zo belangrijk: we kunnen een RISC-V-ontwerp een-op-een overzetten naar een andere FPGA, ongeacht het merk.

Over RISC-V
RISC (reduced instruction set computing) is in de jaren tachtig ontstaan als alternatief voor de op dat moment steeds complexer wordende processorarchitecturen, zoals de Intel x86. Berkeley University heeft op basis van de RISC-filosofie een processorarchitectuur doorontwikkeld speciaal voor onderzoeks- en educatiedoeleinden. Met de komst van de vijfde generatie (de V in RISC-V) staat er een architectuur die geschikt is voor commerciële toepassingen.
RISC-V biedt een serieus alternatief voor commerciële architecturen als Arm (in mobiele telefoons), x86 (Intel-pc’s) en Mips. Daarmee heeft het de potentie om de ‘Linux van embedded hardwareplatforms’ te worden. Technolution is een van de 27 oprichters van de RISC-V Foundation, naast onder meer Google, HP en Oracle. Zo ondersteunt het bedrijf uit Gouda de verdere ontwikkeling van de RISC-V-standaard.

Hergebruiken

Vanwege de vrijheid en flexibiliteit gebruiken we bij Technolution RISC-V om een eigen softcore te ontwikkelen voor high-safety en high-security toepassingen, zoals lucht- en ruimtevaart, overheidsbeveiliging en medische toepassingen. De softcore gaat op een specifieke, veilige manier met software om. Hij raakt niet van streek als er een bitje omvalt door kosmische straling of bewuste manipulatie door een aanvaller. Zijn robuustheid en hoge betrouwbaarheid maken hem ook geschikt voor toepassingen waar het moeilijk is om het systeem te repareren of te corrigeren, zoals in satellieten.

Een eigen RISC-V-softcore heeft als voordeel dat we de software samen met de softcore als één geheel kunnen overzetten in een nieuw ontwerp, ongeacht het type of merk hardware. We hoeven deze software/softcore-combinatie maar eenmalig te ontwerpen en te certificeren, waarna we haar onbeperkt kunnen hergebruiken. We kunnen dus putten uit een steeds grotere gereedschapskist van gecertificeerde bouwblokken. Met verschillende soorten softcores (grootte, performance) die goed combineren in één mixed criticality-systeem. Dankzij de flexibiliteit van de FPGA kunnen we het ontwerp volledig naar onze eigen hand zetten. En komen we een fout tegen in ons ontwerp, of bedenken we een slimme uitbreiding, dan zetten we snel een nieuw ontwerp of een update in de FPGA.

Auteurs

Jonathan Hofman is domeinarchitect en Jan Jaap Treurniet is securityspecialist bij Technolution. Beiden zijn intensief betrokken bij diverse securitygerelateerde projecten. Merijn van den Berg is technisch schrijver bij het bedrijf uit Gouda.

Redactie Nieke Roos

Contact:

jan-jaap-treurniet
  • Jan Jaap Treurniet
  • ✆ +31 (0)182 59 40 00
    Contact
jonathan-hofman
  • Jonathan Hofman
  • ✆ +31 (0)182 59 40 00
    Contact

Gerelateerde items

Aansluiting bij partnerprogramma Microsemi Corporation

Lees verder

Nieuws

Officiële oprichting RISC-V Foundation

Lees verder

Nieuws

Voeding voor nieuwe generatie communicatiesystemen

Lees verder

Project

Bewustwording van informatiebeveiliging

Lees verder

Publicatie