Gaat multicoretechnologie vliegen?

Author:

Heikki Deschacht is expert elektronica-engineer avionica bij de Defence Aerospace-divisie van Barco.

Reading time: 8 minutes

Dat multicoretechnologie een hoge vlucht neemt in tal van markten is allang duidelijk. Fabrikanten van luchtvaartsystemen (avionica) zouden dit ook letterlijk willen nemen. Ook voor hen zijn de voordelen van multicore aantrekkelijk, maar het inzetten van de technologie in een veiligheidskritieke toepassing is lastig en tot op heden vliegt geen enkele meerkernige processor in een dergelijke gecertificeerde applicatie. Barco legt uit wat er allemaal bij komt kijken.

Economische en ecologische belangen verhogen continu de druk op de luchtvaartindustrie om het brandstofverbruik van vliegtuigen drastisch te reduceren. Een schijnbaar eenvoudige manier is om toestellen de kortst mogelijke of meest efficiënte route te laten vliegen tussen vertrekpunt en bestemming. Dit vergt echter aanzienlijk meer functionaliteit en intelligentie in de boordsystemen om botsingen te vermijden en de vlucht te optimaliseren.

Ook de reductie van het vliegtuiggewicht leidt tot een lager brandstofverbruik en een lagere CO2-uitstoot. Dit kan bereikt worden door vergaande integratie zodat er met minder subsystemen een steeds groeiend aantal functies te realiseren is. Ook vanuit dit gezichtspunt zijn steeds krachtigere processoren vereist.

De TU Delft ontwikkelde SVS-symbologie voor Barco, dat het op en touchscreengebaseerde cockpitdemonstrator toont.

Daarnaast blijft het belangrijkste aandachtspunt in de luchtvaart de vliegveiligheid. Synthetic vision– en enhanced vision-systemen (SVS en EVS, zie kader) reduceren bijvoorbeeld aanzienlijk het risico op ongevallen op de landingsbaan en het risico om tegen een berg aan te vliegen. Beide systemen zijn complex en zeer software-intensief.

Maar meer rekenkracht betekent doorgaans minder compacte subsystemen die meer energie verbruiken. En dat betekent juist weer extra gewicht: elke verbruikte watt drijft de omvang en het gewicht van koelsystemen en vermogensopwekkers op.

Multicore processing is daarom een aantrekkelijke technologie in de zoektocht naar oplossingen om meer en steeds complexer wordende functies te realiseren in minder en compactere subsystemen die op hun beurt minder verbruiken. Ook bij onze avionica-afdeling bestuderen we het gebruik van multicore in veiligheidskritieke cockpitbeeldschermen. Al snel doemt hierbij echter de vraag op of multicore geschikt is voor veiligheidkritieke applicaties zoals avionica. Vandaag zijn er heel wat beperkingen op het gebruik van meerkernige processoren in dergelijke toepassingen.

Vliegtuigbouwers kunnen niet zomaar de laatste technologische snufjes introduceren in een commercieel toestel. Nieuwe technologie wordt als onbetrouwbaar beschouwd totdat het tegendeel is bewezen. Een gezond uitgangspunt naar veiligheid toe, maar zeer conservatief naar innovatie toe. Multicoretechnologie is in deze wereld nog een vrij nieuwe trend en wordt daardoor argwanend bekeken door de certificatiedeskundigen.

Bovendien is de keerzijde van de multicoremedaille vrij goed gekend. De uitvoering van software op een multicore platform is moeilijk deterministisch te maken vanwege de lastig te voorspellen interactie tussen de verschillende kernen. Terwijl determinisme juist een van de kernvoorwaarden is om een avionicasysteem gecertificeerd te krijgen. Daarnaast is de segregatie in tijd en ruimte tussen verschillende functies moeilijker aantoonbaar. Het falen van de ene functie mag in veel gevallen geen invloed hebben op de correcte werking van een andere functie.

Ook het inzicht in de werking van de interconnecties tussen de cores is veel beperkter dan bij verbindingen tussen discrete chips. Dit is het gevolg van de beperkte informatie die chipfabrikanten publiceren over de interconnecties en de quasi-onmogelijkheid hierop te meten.

Aangezien de ganse wereld naar multicore evolueert wordt het vandaag al moeilijk een deftige processor te vinden die niet over meerdere rekenkernen beschikt. Deze trend dwingt dus ook de luchtvaartindustrie op korte termijn over te stappen naar deze architectuur. In veel gevallen kan vooralsnog echter slechts één kern daadwerkelijk benut worden.

Warmtebeeldcamera‘s laten piloten zien wat normaal verborgen blijft. Het beeld rechts toont een nachtlanding van een ondergesneeuwd landschap. Foto: CMC Electronics

Gemeenschappelijke vragen

Een voorbeeld van een multicorearchitectuur die op veel belangstelling uit de avionica-industrie kan rekenen, vinden we in de QorIQ-familie van Freescale. De P4080 biedt bijvoorbeeld een multicore processorplatform met acht kernen die elk over eigen L1- en L2-caches beschikken, twee geheugencomplexen met elk hun eigen L3-caches, een set aan I/O-functies (Ethernet, PCI Express, Serial RapidIO, I2C, et cetera) en een een zogeheten Corenet-fabric die alles onderling verbindt.

Als je weet dat elke kern en de meeste I/O-functies op een onvoorspelbaar moment het initiatief kunnen nemen om met een aanzienlijke bandbreedte via de Corenet-fabric te lezen of te schrijven in het werkgeheugen, dan wordt het snel duidelijk dat er heel wat interactie ontstaat tussen de verschillende spelers. Dan komt het erop aan te weten wie op wie wacht en hoe lang dat wachten kan duren. Dit vraagstuk oplossen is een van de grote uitdagingen voor de avionicafabrikanten die dergelijke Socs willen gebruiken.

Daarnaast kunnen we meestal niet aantonen dat de chipfabrikant zijn multicore IC heeft ontwikkeld volgens een strikt gestandaardiseerd avionicaontwikkelproces (RTCA/DO-254). De European Aviation Safety Agency, de voornaamste organisatie waarlangs bedrijven hun producten moeten certificeren om ze op de Europese markt te zetten, vereist in zo‘n geval een grote inspanning van de avionicafabrikant om aan te tonen dat het gebruik van zo‘n IC geen risico met zich meebrengt. Dit gaat van het analyseren van chip-errata over het beoordelen van de maturiteit van de component tot het beoordelen van de processen toegepast door de chipmaker.

Bij de selectie van een multicore IC moeten we dus rekening houden met verschillende aspecten. Als belangrijkste technische overweging is het inzicht in de geheugenorganisatie, met inbegrip van het aantal geheugencomplexen, de beschikbare bandbreedte op de interne interconnectie, arbitratiemechanismen en latency-karakteristieken. Daarmee kunnen de effecten van gelijktijdige transfers van en naar de geheugens worden ingeschat. Gezien de talrijke combinaties van mogelijke transfertypes is het een huzarenstuk om een worstcase-effect te voorspellen.

Ook andere architecturale voor- en nadelen moeten we in de overweging meenemen. Daarnaast willen we de verhouding tussen energieverbruik en prestaties weten – we zijn immers op zoek naar manieren om energie te besparen. Het is dus van levensbelang dat de fabrikant bereid is om extra ondersteuning te geven.

Freescale heeft dit snel begrepen. Sedert de introductie van de QorIQ-familie in 2009 benaderden verschillende avionicabedrijven de chipmaker met dezelfde vragen. Dit resulteerde uiteindelijk in een werkgroep, Multicore for Avionics (MCFA) genaamd. Hier nemen intussen tientallen avionicabedrijven aan deel, waaronder Barco. Binnen deze werkgroep beantwoordt Freescale de gemeenschappelijke vragen aan alle deelnemers tegelijkertijd. Dit is voor iedereen een efficiëntere aanpak dan een individueel antwoord aan elk bedrijf. Tevens licht Freescale een tipje van de sluier op over de interne werking van de QorIQ-architectuur.

Bij Barco bieden we onze klanten onder de noemer Mosart een open softwarearchitectuur aan waarbij een groot deel van de complexiteit rond het multicoreaspect transparant wordt gemaakt voor de systeemintegrator. Op deze manier kan die het maximale voordeel halen uit de multicoretechnologie in het beeldscherm zonder zich al te veel zorgen te maken over de vele gerelateerde certificatieaspecten.

Kleinere prestatiewinst

Hebben we eenmaal een processor uitgekozen, dan moeten we aan de applicatiekant maatregelen nemen om hierop veiligheidskritieke applicaties mogelijk te maken. In commerciële toepassingen parallelliseert het OS dat op de processor draait de taken zo veel mogelijk over de beschikbare kernen. Dit model staat bekend als symmetrische multiprocessing (SMP). SMP levert in de praktijk een behoorlijke prestatiewinst op als de software zich leent voor parallellisatie. In een veiligheidskritieke applicatie zou dit echter een van de belangrijkste karakteristieken om zeep helpen: determinisme. Het RTos in een avionicasysteem moet daarom eerder neigen naar een asymmetrisch multiprocessingmodel (AMP). Hierbij is het steeds op voorhand gekend welke taak wanneer op welke kern uitgevoerd zal worden. Wanneer de taken sterk van elkaar afhankelijk zijn, levert AMP in de praktijk meestal een kleinere prestatiewinst op dan SMP (de wet van Amdahl).

Een ander probleem doet zich voor als meerdere kernen toegang willen tot dezelfde I/O-functie, zoals een PCI Express-poort. Een eenvoudige oplossing hiervoor is ervoor te zorgen dat er slechts één kern is die de I/O-functies kan aanspreken. Deze fungeert zo in het AMP-model als I/O-server voor de andere kernen die data nodig hebben van dit kanaal. Ook hier moeten we aan prestaties inboeten ten voordele van determinisme.

Ten slotte moeten we nadenken over de communicatie tussen de kernen. Het is niet altijd mogelijk de taken op de verschillende kernen volledig onafhankelijk van elkaar te houden. Bij de I/O-serveraanpak bijvoorbeeld is onvermijdelijk communicatie nodig tussen de kernen. Een van de manieren om kernen in staat te stellen informatie met elkaar uit te wisselen, is door een gebied van gedeeld geheugen te definiëren. Hierbij is het belangrijk dat er slechts één kern data ’publiceert‘ en de andere kernen de data ’consumeren‘. Zo houden we overzicht over de verschillende informatiestromen.

Evenwichtsoefening

Intussen zien we nieuwe multicore Socs verschijnen waarmee voor elke kern een eigen geheugencomplex beschikbaar is. Dit minimaliseert de interactie tussen de cores en maximaliseert dus het determinisme. Mocht een chipfabrikant in de toekomst een Soc uitbrengen die elke kern en randfunctie een bepaalde bandbreedte verzekert op de interne interconnecties, dan zou de toepassing van multicore in veiligheidskritieke avionica niet alleen eenvoudiger worden maar ook voordeliger. In de RTos-wereld zien we evoluties die het mogelijk kunnen maken om AMP en SMP te mengen op een multicore platform, waardoor we meer prestatiewinst kunnen halen dan met puur AMP.

Multicore doet zijn intrede in veiligheidskritieke avionica, er is geen weg terug. Het blijft echter een evenwichtsoefening tussen de certificatievereisten voor een specifieke toepassing en de mogelijkheden die de technologie biedt. Het succes hangt in grote mate af van de constructieve samenwerking tussen chipfabrikant, avionicafabrikant, RTos-leverancier, systeemintegrator en certificatieautoriteiten.