Ilmailun turvakriittisissä ohjausjärjestelmissä on aiemmin pitäydytty perinteisiin yhden ytimen prosessoriratkaisuihin. Nyt ilmailualallakin aletaan yleistä kehitystä seuraten siirtyä moniytimisiin suoritinarkkitehtuureihin.
Artikkelin kirjoittaja Paul Parkinson toimii Wind Riverin ilmailu- ja puolustusjärjestelmien johtavana järjestelmäarkkitehtina.
|
Viime vuosikymmenen aikana puolijohdevalmistajat ovat siirtyneet tuotannossa moniytimisiin prosessoreihin, jotta kaupallisten markkinoiden jatkuvasti kasvavat vaatimukset yhä paremmasta suorituskyvystä voitaisiin täyttää. Yhden suoritinytimen tarjoaman suorituskyvyn periaatteellinen yläraja on tullut vastaan eikä kellotaajuuksiakaan ole enää voitu kasvattaa laskentatehon parantamiseksi.
Moniydinprosessorien käyttöönotto on tarjonnut käyttäjille lisää suorituskykyä yritysten yleiskäyttöisissä sovelluksissa, mutta se on tuonut esiin myös joitakin erityisiä haasteita turvakriittisissä kohteissa esimerkiksi ilmailualan järjestelmissä. Tämä johtuu siitä, että avioniikan sovelluksille asetetaan aivan erityisiä vaatimuksia, joihin kuuluvat muun muassa järjestelmien eristäminen ja deterministiset toimintaperiaatteet, eivätkä nämä ole puolijohdevalmistajien ensisijaisia päämääriä moniydinsuorittimien suunnittelussa kaupallisille markkinoille.
Ilmailualan teollisuudella, tiedeyhteisöllä ja sertifiointiviranomaisilla on meneillään useita tutkimushankkeita moniytimisten suoritinarkkitehtuurien hyödyntämisestä avioniikan sovelluksissa. Monet tutkijat ovat havainneet, että moniytimisiin suorittimiin perustuvilla ratkaisuilla on soveltuvuudessa ilmailualan sovelluksiin eroja, jotka johtuvat arkkitehtuurin suunnittelun erityispiirteiden vaikutuksesta järjestelmien eristämiseen ja determinismin periaatteisiin.
Erot liittyvät faktoihin, jotka nousevat esiin laiteresurssien jakamisessa ilmeneviin tekijöihin. Niihin sisältyy muun muassa yhden muistinohjaimen tai jaetun väylän käyttö usean ytimen kesken (mikä voi synnyttää riskejä resurssikilpailun muodossa). Vastaavia tilanteita ilmenee myös sen suhteen, käytetäänkö erillistä vai jaettua tason 2 välimuistia kutakin ydintä varten.
Tämä epävarmuus moniydinsuorittimien valitsemisessa avioniikan kehityshankkeisiin on moninkertaistunut useiden eri tekijöiden vuoksi. Alun perin tähän ei ole liittynyt mitään politiikkaa tai ohjausta, vaikka lentoturvallisuuden sertifiointivirastot EASA ja FAA ovatkin julkaisseet MULCORS-tutkimusraportin ja CAST-32-kannanoton moniydinprosessorien käyttämisestä avioniikassa.
Nyt avioniikan turvakriittisissä sovelluksissa tähän asti käytetyt yksiytimiset prosessorit ovat tulossa piille toteuttamisen äärirajoille tai katoamassa kokonaan tarjonnasta. PowerPC-suorittimien historiallinen dominanssi sulautettujen markkinoilla näyttää hiipuvan ja pitkän aikavälin tulevaisuus näyttää hieman epävarmalta, kun NXP (ent. Freescale) kehittää nykyään myös ARM-pohjaisia suorittimia PowerPC-sirujen ohella. Lisäksi PowerPC QorIQ -suoritinarkkitehtuurin lukuisat variantit tuovat epävarmuutta siitä, saadaanko avioniikan sovelluksiin lainkaan enää de facto -vaihtoehtoa.
Toinen tekijä on ARM-pohjaisten prosessorien kasvava suorituskyky, jonka ansiosta niitä voidaan pitää toimivana vaihtoehtona monissa avioniikan sovelluksissa, joissa PowerPC-suorittimia on käytetty aiemmin. Lisäksi Intelin valmistamia prosessoreita, joita ei ole aiemmin laajasti käytetty ilmailualan sovelluksissa osittain niiden tehonsyöttövaatimusten vuoksi, katsellaan nyt uusin silmin yhtiön uusimpien 14 nanometrin teknologiaan perustuvien niukkatehoisten suoritinsirujen ansiosta.
Tämä markkinadynamiikka on johtanut suorittimien valinnan pirstoutumiseen avioniikan sovelluksissa, minkä tuloksena laajasti käytetyille yksiytimisille PowerPC-suorittimille ei saada yhtä ilmeistä seuraajaa. Tarjolla on nyt laaja valikoima kilpailevia ratkaisuja: moniytiminen ARM-perhe, PowerPCQoriQ -arkkitehtuurin suoritinperhe sekä Intelin Core- ja Atom-arkkitehtuurit.
Kuva 1. Yksiytimiset suoritinarkkitehtuurit, joita käytetään laajasti turvakriittisissä avioniikan sovelluksissa, ovat käymässä vähiin, koska puolijohdevalmistajat siirtyvät moniytimisiin suoritinarkkitehtuureihin.
Haasteita RTOS-turvatodistuksille
Sitoutuminen reaaliaikaisen käyttöjärjestelmän (RTOS) ohjelmistosertifikaatteihin DO-178B ja ED-12B Level A on erittäin kallista. Kustannukset ovat miljoonia euroja ja myös spesifisiä perustaksi valitulle suoritinarkkitehtuurille. Reaaliaikaisten käyttöjärjestelmien toimittajille on kohtuuttoman kallista sitoutua DO-178B- ja ED-12B-turvasertifikaatteihin useille eri suoritinarkkitehtuureille, kun ei ole lainkaan takeita valtavien NRE-kulujen (Non-Recurring Engineering) kattamisesta jatkossa.
Näistä syistä on kehitetty avioniikan DO-178B- ja ED-12B-turvasertifikaateille erityisiä COTS RTOS -sertifiointipaketteja yleisimmin käytetyille yhden ytimen prosessoreille. Wind River on käyttänyt COTS-todistuksiin perustuvaa lähestymistapaa VxWorks RTOS -järjestelmälle. Se mahdollistaa tärkeiden DO-178B- ja ED-12B-sertifikaattien NRE-kustannusten jaksottamisen useille asiakkaille ja ohjelmille, jotka käyttävät samaa suoritinarkkitehtuuria ja vähentävät näin sertifiointikustannuksia kussakin ohjelmassa.
Tämä johtaa myös edulliseen jatkumoon, koska suorittimet voivat tarjota kustannuksiltaan edullisimman vaihtoehdon seuraaville sertifiointiprojekteille - verrattuna siihen, että kehitettäisiin niitä aivan uudelle suoritinarkkitehtuurille yhä kasvavin kustannuksin.
Kuva 2: ARINC 653 -yhteensopiva käyttöjärjestelmäarkkitehtuuri.
Moniydinratkaisun sertifioinnin haasteet
Reitti moniytimisen järjestelmän sertifiointiin tuottaa tällä hetkellä haasteita avioniikan kehitysohjelmille, koska FAA ja EASA eivät ole julkaisseet virallista linjaustaan tai ohjeistustaan asiasta. EASA MULCORS -tutkimusraportti ja FAA CAST-32 -kannanotto pitää kuitenkin ottaa huomioon suunniteltaessa turvakriittisiä ilmailualan hankkeita.
Kehitysohjelmat voivat harkita moniytimisten prosessorien käyttöä seuraavan sukupolven laitealustoihinsa, vaikka nykyiset datankäsittelyvaatimukset eivät ylittäisikään yksiytimisen suorittimen tarjoamaa suorituskapasiteettia. Vastaavasti joissakin ohjelmissa saatetaan harkita myös moniydinratkaisuja, joissa ytimiä on enemmän kuin kaksi.
Esimerkiksi 4- ja 8-ytimiset suoritinpiirit ovat nykyään jo melko yleisiä. CAST-32-kannanotto ei kuitenkaan suosittele yli kaksi ydintä sisältäviä moniydinsuorittimia. Moniytimisten järjestelmien sertifiointi edellyttää vahvaa tutkimus- ja hyväksyntätoiminnan johtamista, jotta MULCORS-raportin ja FAA CAST-32 -kannanoton ohjeistusta voidaan laajentaa.
Kummassakin edellä mainitussa skenaariossa kehitysohjelmien on kyettävä käyttämään tiettyjä suoritinytimiä ja deaktivoimaan käyttämättömät ytimet. CAST-32-kannanoton moniytimisiä ratkaisuja koskevien määrittelyjen ja tavoitteiden saavuttamiseksi ohjelmien on osoitettava, että deaktivoidut ytimet eivät missään tilanteessa voi yllättäen aktivoitua ja alkaa häiritä muiden ytimien toimintaa.
Tässä voitaisiin käyttää lähestymistapaa, jossa luetaan säännöllisesti ne ohjausrekisterit, jotka ovat kriittisiä turvallisen toiminnan kannalta, ja nollataan rekisterien sisältö siinä tapauksessa, että havaitaan tilanmuutoksia. Tai vaihtoehtoisesti ylikirjoitetaan ohjausrekisterit säännöllisesti niin, että voidaan varmistaa halutun tilan säilyminen. Jotkut suorittimet tarjoavat myös suorituskyvyn valvontayksiköitä, joiden ansiosta kunkin ytimen tila voidaan määrittää itsenäisesti.
Ytimien deaktivoinnin ohjelmallinen toteutus on suoritinspesifinen toimi, joka riippuu kyseisen suoritinarkkitehtuurin ytimelle tarjoamista mahdollisuuksista kirjoittaa ohjausrekistereihin sekä deaktivoida muita ytimiä. Esimerkiksi PowerPC QorIQ T2080 -prosessorin tapauksessa yksittäisen ytimen deaktivointi tehdään asettamalla sopiva bittiyhdistelmä ytimenestorekisteriin (Core Disable Register) esikäynnistyksen (Pre-Boot Initialisation) aikana tai silloin, kun ydin on Boot hold off -tilassa. Kun ydin sitten on deaktivoitu, se voidaan aktivoida uudelleen ainoastaan virrankytkennän, täyden nollauksen tai ytimen nollauksen avulla.
Ilmailualan turvakriittisten kehityshankkeiden mahdollisuudet luoda ratkaisuja, joissa yksittäiset suoritinytimet voidaan deaktivoida ja kehittää vankat turvarakenteet prosessin deterministiselle toiminnalle, saattavat riippua siitä yksityiskohtaisesta teknisestä informaatiosta, jonka suorittimia valmistava puolijohdeyritys kykenee tarjoamaan ratkaisun suunnitteluun ja prosessorin toimintaan liittyen.
Jotkut puolijohdevalmistajat saattavat tarjota kaiken tarvittavan tiedon julkisesti saataville, kun taas toiset voivat tarjota tietoa vain tiettyyn tasoon asti julkaisunrajoitussopimuksen pohjalta. Niille kehityshankkeille, jotka sitoutuvat laitteiston DO-254-sertifiointiin, tämä on erittäin tärkeä vaatimus, jonka vuoksi pitää varmistaa, että valittu puolijohdevalmistaja tarjoaa pääsyn tarvittavaan informaation, vaikkei valmistaja sitoutuisikaan virallisesti DO-254-sertifiointiin, kuten esimerkiksi Altera toimii.
Nopeat omaksujat vauhdittavat
Ilmailutekniikassa aletaan parhaillaan siirtyä laajasti yksiytimisistä suoritinratkaisuista moniytimisten prosessorien arkkitehtuureihin. Tätä kehitystä ohjaa alati kasvava kysyntä järjestelmien aiempaa paremmasta toiminnallisuudesta. Lisäksi siihen vaikuttaa puolijohdetuotteiden elinkaarien kehitys, joka on pitkälti kuluttajamarkkinoiden sanelemaa. Puolijohdevalmistajien ottamat edistysaskeleet tarjoavat nykyään paljon aiempaa laajemman valikoiman elinkelpoisia suoritinratkaisuja avioniikan sovelluksiin.
Vaikka nyt näyttää olevan jonkin verran epävarmuutta suorittimen parhaan valintamenettelyn suhteen avioniikan turvakriittisten kehitysohjelmien osalta, on todennäköistä, että moniytimisten järjestelmien nopeiden omaksujien positiiviset kokemukset johtavat jatkuvaan edistymiseen järjestelmien tukemisessa, käyttöönotossa ja menestymisessä. Tämä tulee tapahtumaan samaan tapaan kuin yksiytimisiin suorittimiin perustuvissa kehityshankkeissa aiempina vuosikymmeninä, jolloin syntyi vahva valmistajien ekosysteemi avioniikkaan sertifioiduille COTS-valmistuotteille ja -ratkaisuille.