Tulevaisuuden autot nojaavat yhä tiukemmin nopeaan datansiirtoon. Tämän dataväylän pitää perustua standardiin. Sellainen on PCIe-väylä, kertoo Microchip.
Artikkelin kirjoittaja Richard Herbert toimii ajoneuvojen verkkotuotteiden markkinointipäällikkönä Microchip Technology -yhtiössä. |
Kuljettajaa avustavien ADAS-perusjärjestelmien (Advanced Driver Assistance System) kehitystyö on nykyään jo arkipäivää. Edelleen paranneltujen, kompleksisuudeltaan vaihtelevien toimintojen mahdollistamiseksi ajoneuvot tulee kuitenkin varustaa suorituskykyisillä SoC-piireillä (System on Chip) ja liittää ne standardoituun datansiirtoväylään, jotta käsiteltävä data voidaan jakaa runsaina erinä ajoneuvon eri toimintoja varten. Osa kehitettävistä uusista ominaisuuksista on jopa sellaisia, joista aiemmin ei ole voitu edes haaveilla.
Kuva1. ADAS-järjestelmien tasot.
Tällainen järjestelmä mahdollistaa yhteistyön auton eri toimintojen kesken. Esimerkiksi kameran ja tutkan keräämät vaarantunnistuksen tiedot voidaan välittää ajovalojen suuntauksen ohjaamiseksi. Näin valot voidaan tarvittaessa kohdistaa tien poikkeaviin ominaisuuksiin, edessä olevan kaarteen jyrkkyyden havaitsemiseen tai ajoneuvon eteen yllättäen ilmestyvään jalankulkijaan.
PCIe-väylä (PCI Express) antaa mahdollisuuden tietojen jakamiseen useiden SoC-järjestelmien kesken kattamaan ajoneuvon lukuisia eri toimintoja. Lisäksi väylän hyödyntämä ohjelmistomalli mahdollistaa kapasiteetin saumattoman laajentamisen PCIe-väylän ja SoC-piirien eri sukupolvien kesken ja viime kädessä myös ajoneuvon alustaratkaisun eri sukupolvien välillä. PCIe-teknologian omaksumisen taustalla on halu saada kaikki nykyiset alustat turvatuiksi tulevaisuutta varten useiksi vuosiksi eteenpäin.
PCIe-väylän historia
PCI-väylän (Peripheral Component Interconnect) historia ulottuu useiden laitesukupolvien taakse. Alun perin se kehitettiin tietokoneisiin rinnakkaismuodossa toimivaksi liitäntäväyläksi, jota on sittemmin käytetty lukuisissa palvelimissa, sulautetuissa järjestelmissä ja myös kotikäyttöön tarkoitetuissa PC-koneissa.
Väylän määritys ja standardointi aloitettiin PCI SIG -ryhmässä (Special Interest Group). Perusratkaisusta edelleen kehitetty PCIe-versio puolestaan sallii useiden eri oheislaitteiden muodostaa yhteyden samaan SoC-järjestelmäpiiriin. Aluksi nämä olivat pääasiassa Intelin tai AMD:n x86-suorittimiin pohjautuvia piirejä, joilla liityttiin verkkoon, nopeaan oheislaitteeseen tai näytönohjaimeen. Alun perin rinnakkaismuodossa toimivaa väylää kehitettiin ensin 32-bittisestä (32 MHz) rakenteesta 64-bittiseksi (64 MHz) ja lopulta siirtotavaksi valittiin sarjamuotoinen datansiirto.
PCIe sallii nopeat datayhteydet differentiaalisten liitäntöjen kautta: yksi lähetystä ja toinen vastaanottoa varten. Näiden muodostamaa paria kutsutaan linjaksi (lane). Linjat voidaan ryhmitellä eri portteihin liitettyjen oheislaitteiden tai SoC-piirien mukaan. Portin leveys voi olla 1 tai 16 tai jopa 32 linjaa porttia kohden.
Kuva 2. PCIe-väyläliitännän suorituskyky eri versioissa.
Ethernet-verkon edut
PC-esimerkissä liitettävyyden hierarkia on yksinkertainen. Siinä on yksittäinen SoC-järjestelmäpiiri, johon on kytketty useita nopeita oheislaitteita. Tämä on samankaltainen rakenne kuin aiemmin palvelimissa, mutta niiden kehittyessä kahden SoC-piirin fyysinen läheisyys ja oheispiirien jakaminen havaittiin eduksi: pääsy tallennustilaan, nopeaan muistiin ja joskus myös dataan.
Tämä on PCIe-kytkimien toiminnan perusta. Ne mahdollistavat itsenäisen, erillisen pääsyn SoC-piirille (Root Complex) useita järjestelmiä sisältävissä kokoonpanoissa yhteiseen oheislaitejoukkoon (Endpoints) liittymiseksi. Kukin SoC-piiri näkee vain sen, että sillä on itsenäinen pääsy näihin oheislaitteisiin. Tämä läpinäkymättömästi toimiva silloitus tunnetaan nimellä NTB (Non-Transparent Bridging). Tämän tyyppisessä järjestelmässä PCIe-kytkintä käyttävä SoC-piiri hyödyntää erittäin nopeaa ja hyvin vähäisen viiveen omaavaa datayhteyttä tyypillisesti lyhyen etäisyyden päästä.
Verrataanpa tätä Ethernet-väylään, joka on rakennettu IEEE:n luoman standardin mukaiseksi. Ethernetillä on täydellinen yhteensopivuus taaksepäin ja se kykenee tavoittamaan runkoverkkoon liitettyjä laitteita, jotka sijaitsevat metrien etäisyydellä toisistaan. Runkoverkon suurin nopeus voi olla tällä hetkellä joko 100 tai 1000 megabittiä sekunnissa ja se nousee tulevaisuudessa tasolle 10 Gb/s. Ethernetiä on kehitetty Open Alliance -yhteisön sisällä myös ajoneuvojen vaatimien erityisten ominaisuuksien lisäämiseksi. Näitä ovat esimerkiksi signaalin laatua mittaavat ilmaisimet ja Wake/Sleep-toimintatilat.
Kerrokseen 2 kuuluvan MAC-lohkon (Media Access Control) ohjaama kytkentä mahdollistaa paketin siirtämisen kytkinlaitteiden mistä tahansa pisteestä – fyysisten liitäntöjen kautta eri Ethernet-nopeuksilla – mihin tahansa muuhun pisteeseen ajoneuvossa. Kaikkialla läsnä olevan Ethernet-väylän homogeenisuus on merkittävä etu ja sitä tuetaan laajasti teollisten käyttäjien keskuudessa.
Ethernetin luontainen kyky toimia suhteellisen suurilla nopeuksilla ja pitkillä etäisyyksillä sekä tukea standardiin tehtäviä parannuksia erottaa sen lyhyemmillä etäisyyksillä ja erittäin suurilla datansiirtonopeuksilla toimivasta PCIe-väylästä, jonka siirtotapa on myös rakenteeltaan suhteellisen yksinkertainen. Ei kuitenkaan tule odottaa, että jompikumpi olisi syrjäyttämässä toista, vaan molemmilla on vankka asema ajoneuvoissa edellä mainituista syistä.
Kuva 3: Vyöhykeverkot mahdollistavat homogeenisen Ethernet-verkon, jonka ytimessä on PCIe-kytketty keskuslaskenta.
PCIe liittää useita laitteita
Edellä on kuvattu kaksi tilannetta, joissa SoC-piirit voivat kommunikoida keskenään, mutta tason 3 ja sitä ylempien ADAS-versioiden saataville tulo on todella se tekijä, joka ajaa toimintoja yhteen. Koska turvakriittiset järjestelmät sisällyttävät usein reaaliaikaista kameradataa päätöksentekoprosesseihinsa, ei ole ainoastaan välttämätöntä saada raakaa pakkaamatonta videodataa, vaan lisäksi on vältettävä ylimääräistä latenssia, jota pakatessa kertyy Ethernet-kehykseen tai mihin tahansa muun tyyppiseen kehykseen.
Useimmissa tapauksissa kameran tallentama data liitetään suoraan SoC-piirin sopiviin videoliitäntöihin. Tähän työkuormaan tai reaaliaikaiseen datankeruuseen sekä videovirtojen yhteiskäsittelyyn voidaan käyttää useampaa kuin yhtä SoC-piiriä. Saatavilla on myös kiihdyttimiä, jotka tukevat tekoälyn (AI) ja koneoppimisen (ML) hyödyntämiä työnkulkuja ja datajoukkoja.
Datansiirron latenssin vähentäminen on ensiarvoisen tärkeää tässä korkeaa suorituskykyä vaativassa laskennassa, sillä sama datajoukko jaetaan moneen kertaan ajoneuvossa, joten tämä sopii hyvin PCIe-väylän toiminta-alueelle. Soveltuva toimilaite, joka mahdollistaa yhteisen datan jakamisen useille SoC-piireille ja SSD-muistien sekä verkkoliitäntäkorttien kaltaisille oheislaitteille, on PCIe-kytkin, joka myös tarjoaa aiemmin kuvatut läpinäkymättömät NTB-ominaisuudet.
Yksinkertaisemmat liitäntävaihtoehdot saattavat olla saatavissa myös säikeiden kautta, mutta PCIe-kytkimen tarjoama ohjelmisto ja kokoonpanon määriteltävyys mahdollistavat järjestelmän resurssien täyden hyödyntämisen. Resurssien jakaminen on järjestelmän keskeinen ominaisuus, jota OEM-valmistajat haluavat aktiivisesti käyttää hyödykseen. PCIe-kytkin tarjoaa myös selkeitä etuja, kun joskus suunnitellaan kustannusten suhteen optimoituja järjestelmiä ja aina, kun suunnitellaan turvakriittisiä järjestelmiä.
PCIe-kytkin antaa mahdollisuuden SoC-piirien liittämiseen modulaarisina, ehkä osin toteutettuna jo piirien tuotantolinjalla ja sen jälkeen jälleenmyyjän päivittämien lisälohkojen avulla. Kaikki ajoneuvot tukevat verkon kautta tapahtuvia päivityksiä ja parannuksia, mutta suuritehoisen HPC-laskennan käyttö avaa myös tulovirtoja OEM-valmistajille saman ajoneuvon myöhemmiltä omistajilta. Uusia tulovirtoja voidaan luoda ensimmäisen tai toisen omistajan jälkeen esimerkiksi tarjoamalla ajoneuvoon merkittäviä suorituskyvyn tai muiden ominaisuuksien parannuksia päivityksinä periaatteella ’Car As A Service’.
Kriittisen tärkeää turvallisuuden elementtiä ei voi jättää huomiotta. PCIe-kytkin mahdollistaa myös useiden samanlaisten toimiyksiköiden sijoittamisen samaan ajoneuvoon siten, että yksi toiminnassa oleva yksikkö alkaa hoitaa vikaantuneen toimiyksikön tehtäviä estääkseen vieläkin vakavamman vian syntymisen.
PCIe tarjoaa skaalautuvan ohjelmistomallin
Kaikissa eri järjestelmissä toimivan PCIe:n luonne on hyvin samankaltainen. Kaikki SoC-piirit käyttävät tavanomaisia siirtotapoja datan siirtämiseksi muistista PCIe-laitteen osoiteavaruuteen jossain kohtaa kytkintä. Tämä toiminta skaalautuu SoC-piirien ja PCIe-väylän eri sukupolvien kesken, ja näin on toimittu alkuperäisen PCI-väylän alkuajoista lähtien.
Tämän lisäksi PCIe-kytkimen konfiguraatio voidaan saada omaksumaan laajin mahdollinen kokoonpano jopa silloin, kun osittainen sovitus on tehty moduulien tai resurssien muodostamalle osajoukolle. Esimerkkinä yhden SoC-piirin sijoittaminen järjestelmään, mutta sallimalla päivitysmahdollisuus kolmeen. Tai että lisätään yksi SSD-muisti, mutta sallitaan toinen myöhemmin. Tai mahdollisuus lisätä jopa vikasietoinen PCIe-kytkin järjestelmään myöhemmin.
PCIe-kytkimen puolelta voidaan näin tarjota mahdollisuus järjestelmän tulevan kehityksen virtaviivaistamiseen. PCIe-tuen SoC-ohjelmisto voi pysyä staattisena, ja OEM-kehittäjien resurssit voivat keskittyä käyttäjien haluamiin ominaisuuksiin, joita tuetaan asennettavissa SoC-moduuleissa. PCIe-kytkin on järjestelmän ainoa elementti, jonka on käsiteltävä suorituskykyä ja järjestelmäpäivityksiä. Se käyttää kytkimen itsensä kautta tuettuja ominaisuuksia, joita SoC-piirien ei tarvitse tukea.
Hyvä esimerkki päivitettävyydestä on virtuaalisen juurikompleksin (Root Complex) sisällyttäminen, jolloin kytkin voi tunnistaa alustaan sen elinkaaren aikana lisätyt SoC-piirit ja antaa mahdollisuuden vaihtoehtoisiin SoC-piireihin siirtymiseen. Mahdollisia ovat jopa parannukset, jotka takaavat turvatun valtuutuksen SoC-piirin pääsylle jaettuihin resursseihin suojatulla tavalla todennuksen jälkeen.
Toinen esimerkki on datakeskuksissa suosittu mekanismi, jonka avulla useat SoC-piirit voivat käyttää SSD-muisteja niin, että kunkin SoCin pääsy tapahtuu itsenäisesti, suojatusti ja SR-IOV-mekanismin (Single Root IO Virtualisation) hallitsemana. Tämä tehdään yleensä monimutkaisella ohjelmistopinolla SoC-piirissä, mutta se voidaan toteuttaa myös kytkimen yhden sisäisen ohjaimen avulla. Tämä on jälleen yksi esimerkki toiminnosta, jossa ohjelmiston monimutkaista kehitystä on helpotettu ja yksinkertaistettu kuitenkin niin, että se on edelleen käytettävissä SoC-piirin standardoidulla PCIe-ohjaimella.
PCIe-kapasiteetin laajennustavat
Kuten aiemmin mainittiin, SoC-piirit voidaan asentaa vaihdettavina yksiköinä PCIe-väylän taustalevyyn. Järjestelmä voi olla joko alun perin täynnä tai laajennettavissa tulevien päivitysten yhteydessä. PCIe-liitettävyyttä voidaan myös laajentaa lisäämällä ylimääräisiä taustalevyjä tai koteloita ja yhdistämällä ne jollakin tavalla. PCIe-kytkettävyys saavutetaan yleensä taustalevyn piirilevyjohtimien ja juotettujen liittimien kautta lähietäisyydelle.
Mutta entä jos toinen laitekotelo on otettava käyttöön? Monissa tapauksissa on helpompaa tehdä tämä lisäys täydelliseksi toiseksi yksiköksi kuin päivityksenä jo asennettuun yksikköön. Toinen laitekotelo saattaa myös mahdollistaa seuraavan sukupolven ominaisuudet - ajatellaan vaikka Level 4 -tasoista päivitystä tehtaan toimittamaan Level 2 -tason ajoneuvoon. Tai sen avulla voidaan parantaa suorituskykyä tekemällä päivitys, joka lisää luotettavuutta (käyttö/valmiustila, vikasietoisuus).
On helpompaa järjestää ajoneuvoon erillinen tila ja sinne vievä johtosarja kuin irrottaa laitteet, jotta päästään käsiksi jo asennettuun yksikköön. Liittimin ja kaapelein toteutettu kytkettävyys on tässä vaatimuksena. Vaikka liitäntä voitaisiin koska tahansa tehdä useiden metrien etäisyydelle Ethernet-verkon alueella, se tehtäisiin aina datansiirron kaistaleveyden kustannuksella. Kytkennän tekeminen PCIe:n erittäin suurella nopeudella lyhyen kaapelin kautta voi olla ratkaisu tähän päivitysunelmaan.
Microchip on kehittänyt referenssikortin nimeltä Automotive PCIe, joka on varustettu standardin mukaisin H-MTD-liittimin ja jossa hyödynnetään datakeskusten käyttämiä johtosarjoja, joita autoteollisuudessa ei yleensä käytetä. Referenssilevy tehtiin, jotta voidaan arvioida valmiiden komponenttien käyttöä, kun halutaan hyödyntää PCIe-väylää entistä laajemmalle yltävänä kaapelien kautta. Samalla haluttiin auttaa asiakkaita ymmärtämään näiden järjestelmien EMC-yhteensopivuudelle asetettuja vaatimuksia. Todellisissa testioloissa on saavutettu useiden metrien kattavuus käyttämällä sekä Gen3- että Gen4-sukupolvien PCIe-linkkejä.
FuSa-suojaus mukaan
Monet autonomisessa ja puoliautonomisessa ajossa hyödynnettävät edistyneet SoC-piirit tukevat korkean tason FuSa-suojausta (Function Safety), esimerkkinä ASIL-D (Automotive Safety Integrity Level). Tasolla D tarvitaan kuitenkin useita ytimiä lockstep-moodissa, mikä on kustannuksiltaan kohtuuton vaatimus monille SoC-piireille, jotka muuten olisivat suorituskyvyltään riittävän edistyneitä tarjoamaan ADAS-toiminnot. Siksi tarvitaan toiminnallinen hajautus ja osiointi, jotta ASIL-tason B komponentein toteutetun järjestelmän luokitus voidaan nostaa tasolle C tai ylemmäs.
PCIe tarjoaa monia suojauksia, jotka mahdollistavat tämän järjestelmäsertifioinnin fyysisen ja virtuaalisen tason linkeissä sekä sisäisten datapolkujen kautta. Tämä luontainen kyky polkujen suojaamiseen, toiminnalliseen hajautukseen, osiointiin ja valmiustilaan tai vikasietoyksiköiden käyttöön järjestelmässä on se, mitä voidaan tarjota nykyaikaisille OEM-valmistajille kriittisellä Level 3 -turvatasolla toimiviin, kuljettajaa avustaviin järjestelmiin. Tämä on jotain, mitä kaikki tämän alan valmistajat haluavat nähdä.
Skaalautuvuus tärkeällä sijalla
Vaikka lopullisena tavoitteena voidaan pitää tason 4 täysin autonomista ajamista, OEM-valmistajat haluavat omaksua alustapohjaisen lähestymistavan, joka mahdollistaa erilaisten ominaisuuksien ja palvelujen lisäämisen jo ADAS-tason 2 tai 3 automalleista alkaen. Tämä kannustaa ajattelemaan skaalausta ja laajentamista ennemmin kuin etukäteen varautumista tulevaisuuden yhä raskaampia työmääriä vaativiin uusiin kehityshankkeisiin.
SoC-skaalautuvuus, ajan myötä laajennettava resurssien jakaminen ja PCIe-kytkimet sisältävä lisäkotelo mahdollistavat yhteisen perusalustan eri automalleille ja niiden hyödyntämille järjestelmäalustoille useiden mallivuosien ajaksi. Kuluttaja voi näin käyttää ”Car As A Service” -palvelua, joka perustuu ohjelmallisesti määriteltävään ajoneuvoon, joka hyödyntää pyörillä kulkevaa datakeskusta. Kaikki tämä on saavutettavissa jo tänään.