14. Luento: Kohti hajautettuja sulautettuja järjestelmiä Arto Salminen arto.salminen@tut.fi
Agenda Johdanto Hajautettujen järjestelmien väyliä CAN LON Pienen laitteen sisäinen hajautus OpenCL Network on Terminal Architecture (NoTA) Yhteenveto
Johdanto Perinteisessä sulautetussa toteutuksessa dynaamisuus minimoitu Jokaisesta laitteesta oma väylä keskuskoneelle, jotta väylä ei aiheuta dynaamisuutta Viime aikoina yhä useammin 1 väylä, johon lisälaitteet liittyvät (halvempi ja joustavampi ratkaisu) Ongelmia Laadunvarmistus (kilpailutilanteet väylällä, ajoitukset, skedulointi) Näkyvät usein käyttäjälle Dynaaminen skedulointi Ensin paikallisesti, jos ei voida tehdä niin sitten vasta muut suorittimet Periaatteessa myös kuorman jako (vaatii reaaliaikakäyttöjärjestelmän, ja silläkin tulokset huonoja)
Perinteinen järjestelmä Sensoreita Ohjain Aktuaattoreita Reaaliaikaisuuden hallinta suoraviivaista Jokaisella solmulla oma yhteys ohjaimeen S C A S A S A
Väyläohjattu järjestelmä Solmut liitetty väylälle Kaapelointi edullisempaa Aktuaattoreiden ja sensoreiden lisääminen ja poistaminen helpompaa C SUC S A S A A S
Hajautettu järjestelmä Järjestelmän kasvaessa päädytään toiminnallisuuden hajauttamiseen Solmu Solmu Solmu SUC S A S A A S A A S
Etuja Laskeminen tapahtuu lähellä datan lähdettä ja toiminnan kohdetta Älykkäät sensorit / toimilaitteet Vikasietoisuus Viat voidaan eristää Modulaarisuus Järjestelmä voidaan rakentaa erillisissä osissa Skaalautuvuus Uuden toiminnallisuuden lisääminen helpompaa Ylläpidettävyys Järjestelmän osat voi helpohkosti vaihtaa ja päivittää
Määritelmiä Multiple computers interconnected by a network that share some common state and cooperate to achieve some common goal. -- S. Mullender Distributed Systems, 1993. A system is distributed if the message transmission delay is not negligible compared to the time between events in a single process. Leslie Lamport A distributed system is the one that prevents you from working because of the failure of a machine that you had never heard of. Leslie Lamport
Väylästä tulee järjestelmän selkäranka Kommunikaatiosta seuraa viiveitä Ajoitusten toteuttaminen haastavaa Järjestelmän tilan hallinta vaikeutuu Kommunikointi epäluotettavaa Väylän hajoaminen = järjestelmän hajoaminen Virheet voivat heijastua muille solmuille
Väylä Verkon topologioita Yleinen Monia protokollavaihtoehtoja Väylän katkeaminen aiheuttaa sen jakautumisen osiin Tähti Vikojen isolointi mahdollista Väylän fyysinen katkeaminen vaikuttaa vain yhteen solmuun Enemmän johdotusta Riippuvainen keskittimen toiminnasta Rengas Yhdistelmät myös mahdollisia
Lisää topologioita
Kohinan hallitseminen - Kaksi johdinta, joilla invertoidut tilat, antaa paremmat mahdollisuudet selvitä häiriöisessä ympäristössä - Galvaaninen isolointi - Optinen - Magneettinen (muuntaja) - Enkoodaus - Return-to-zero (RZ) - Non-return-to-zero (NRZ) - Manchester encoding
Protokollan vaikutus väylän suorituskykyyn Viesteissä otsikkokentät ja virheentarkistelu Enkoodaus Törmäykset, tokenit, pollaus
Viestien rakenne Synkronointi Viestin alussa Otsikko Prioriteetti, viestin reititys Data Virheenkorjaus Tarkistussumma Loppubitit
Viestien priorisoinnista Paikallinen priorisointi Mikä solmun viesteistä lähetetään ensin? Globaali priorisointi Mikä solmu saa väylän hallintaansa ensin? Round-robin Solmun prioriteetti Viestin prioriteetti Latenssin vähentäminen korkeaprioriteettisten solmujen kohdalla vs. reiluuden varmistaminen ja nälkiintymisen estäminen matalaprioriteettisten solmujen kohdalla
Joitakin väyliä CAN (Controller Area Network) Käyttökohteina hankalat paikat, laajasti käytössä esim. autoteollisuudessa Reaaliaikaominaisuuksia LON Ei reaaliaikaominaisuuksia Ei ronkeli siirtotien suhteen, esim. 230V jakeluverkko ok
CAN: Motivaatio
CAN: Motivaatio
CAN: Motivaatio
CAN Alun perin autojen johdotuksen vähentämiseksi suunniteltu väylä Fyysisesti differentiaalinen kaksijohtoinen väylä (suojattu kierretty pari) Tulee toimia vaikka jompikumpi johdoista poikki tai oikosulussa Ei kovin nopea, mutta suuriprioriteettiset viestit voivat ohittaa muut <40m -> 1000kbit/s <500m -> 125kbit/s <1000m -> 50kbit/s
CAN-väylän toimintaidea Ei osoitteita; kaikki asemat ottavat vastaan viestit ja päättävät pitääkö ne käsitellä Joka viestityypillä oma tunniste (osa sisältöä) Reaaliominaisuudet toteutettu viestien prioriteettien avulla Prioriteettien asettaminen eri viestityypeille keskeinen suunnitteluongelma Uudet viestit johtavat uudelleensuunnitteluun Monitorointi helppoa; laitetaan mukaan vain uusi asema kuuntelemaan
Fyysinen toteutus Suojattu kierretty pari Differentiaalinen väylä Jännitteellinen tila (1) dominoiva, korkeaimpedanssinen tila passiivinen Päätevastukset
CAN-väylän nopeus pituuden funktiona
CAN-väylän toiminta Solmu 1 Solmu 2 Solmu 3 Käsittelee Alustaa Hyväksyy Lähettää Hylkää Vastaanottaa Vastaanottaa
Data CAN viestit Solmu lähettää dataa Base (A-formaatti) Extended (B-formaatti) Remote Solmu pyytää dataa -> RTR-bitti dominoiva Error Solmu havaitsee virheellisen toiminnan väylällä Error passive / error active Overload Solmu pyytää toista solmua odottamaan ennen uuden data viestin lähetystä
CAN-viestiformaatti Synkronointi Otsikko Sovelluskohtainen (11 / 29 bittiä) Sisäänrakennettu prioriteettitieto Usein lähde, kohde ja viestin ID Data Sovelluskohtainen data 0-8 bittiä, MSB ensin Virheenjäljitys 15 bittinen tarkistussumma Kuittaus Viestin kuittaus (dominoiva bitti, jos viesti otettiin vastaan) Loppubitit 7 passiivista bittiä (ei bit stuffing muutosta)
CAN-väylän versiot 11-bittinen tunniste 18-bittinen tunniste
CAN-tunnisteen bitit SOF Start of Frame (1 dominoiva bitti) Tunnistekenttä sovelluskohtainen RTR remote transmission SRR dummy bitti, jotta lyhyemmillä viesteillä varmasti suurempi prioriteetti kuin pitkillä Kontrollibitit DLC data length code (datakentän pituus) kaksi bittiä varalle
Viestien priorisointi Se asema, jolla on pienin tunniste, pääsee väylälle Solmu luopuu lähettämisestä kun se havaitsee dominoivan tilan (0) väylällä kun se itse lähettää passiivista tilaa (1) Recessive / Dominant state
Priorisoinnin toteuttaminen Väylän tila on passiivinen (recessive) jos solmu ei vedä sitä alas (dominant) Väylä differentiaalinen -> miten toinen johdin käyttäytyy?
CAN-väyläohjain Väyläohjain toimii kuten muutkin oheislaitteet kontrollerin ja väylän välillä Yksinkertaisimmillaan kaikki viestit käsitellään lopulta kontrollerilla Väyläohjain voi myös suodattaa ja järjestää viestejä kontrollerin puolesta
Väyläohjain AT91SAM7Xkontrollerilla
CAN-viestien suodattaminen Viestien suodattaminen ja lajittelu tapahtuu väyläohjaimen mask-rekisterien avulla Hyväksytyt viestit luetaan väyläohjaimen lähetys- ja vastaanottopuskureista ( postilaatikoista ) Vastaanottava postilaatikko voidaan konfiguroida ylikirjoittamaan vanhat viestit kun uusia saapuu
Non-return to Zero (NRZ) enkoodaus
Bit stuffing Bittikuviot joissa väylän tila ei vaihdu aiheuttavat ongelmia NRZ-enkoodatulla väylällä Vastaanottaja ei pysty synkronoimaan lähettäjän kanssa jos reunoja ei ole -> Lisätään väliin täytettä, jotta saadaan reunoja aikaiseksi Stuff bits Esimerkiksi viiden identtisen bitin jälkeen lisätään yksi tilavaihdoksen aiheuttava bitti
Virheidenjäljityksestä NRZ enkoodattujen viestien virheitä voi olla vaikea havaita Tarkistussumma voi auttaa Bit stuffing säännön rikkomisen voi havaita -> 6 identtistä bittiä -> virhe
Virheidenjäljityksestä Bit stuffing yhdessä kahden virheen kanssa tuottaa mielenkiintoisen tuloksen
CAN synkronointi Lähettäjän ja vastaanottajan on tahdistettava toimintansa Viestin alussa olevien synkronointibittien avulla tehdään kova synkronointi Viestin sisältämien bittien avulla voidaan tehdä uudelleensynkronointi Uudelleensynkronoinnissa linjan tilan tulkitsemiskohtaa siirretään suhteessa havaittuun reunaan
Uudelleensynkronointi
Protokollapino CAN määrittelee vain alimmat kerrokset Aplikaatiokerrokselle saatavilla erilaisia ratkaisuja DeviceNet CANOpen
Etuja CAN vahvuudet / heikkoudet Kun verkon kuormitus matala -> viestien läpimenoaika pysyy lyhyenä Paikallinen ja globaali priorisointi on mahdollista Tunnistekenttä on osa sisältöä -> overhead ei ole kovin suuri Optimoitu suurelle määrälle erityyppisiä viestejä Haittoja Perustuu dominoiviin ja passiivisiin tiloihin -> galvaaninen erotus muuntajan avulla ei onnistu Väylän pituus on rajoitettu Solmu voi nälkiintyä ja väylän voi kaapata
LON-väylästä 1 valmistaja (Echelon), silti laajalti käytetty Fyysistä tasoa tai verkon topologiaa ei kiinnitetty; kierretty pari, sähköverkko tai kuituverkko ovat kaikki käyttökelpoisia Asemilla kolmitasoinen hierarkkinen osoite Viestien lähetys koneille, ryhmälle tai domainille; Osoitteistossa 2^48 domainia, domainissa 127 ryhmää, ryhmässä 255 solmua Alkuperäinen käyttökohde rakennusautomaatio; nykyisin käytössä myös esim. ohjaus- ja säätöjärjestelmissä Toteutus perustuu Neuron-siruun ja in/outtyyppisiin globaaleihin muuttujiin, joiden arvoa päivitetään liityntäelektroniikalla tai ohjelmistolla
LON-verkko ja -solmu
Pienen laitteen sisäinen hajautus Yksittäisen tietokoneyksikön sisäinen hajautus Multi/manycore Näyttöohjaimen laskentakapasiteetin hyödyntäminen Erityiskäyttöön tarkoitetut laskentayksiköt; esim. DSP:t
OpenCL Open Compute Language Tapa hyödyntää näytönohjaimen laskentakapasiteettia Ominaispiirteet: C99-perustainen; host + laskentakernelit Alustarajapinta: HAL + laitteiden etsintä, valinta ja alustus + työjonot Ajoajan API: laskentakerneleiden suoritus + resurssien hallinta (skedulointi, laskenta, muisti)
Toiminta Kernel-laskentojen määrittely (osa ohjelmaa, tai valmiiksi käännetty) OpenCL-kontekstin luonti Laskentalaitteen etsintä ja valinta Komentojonojen muodostus suoritusta ja muistiviittauksia varten OpenCL-muistiolioiden varaus tiedonsiirtoa varten Tarvittaessa käännös ja laskentakernelien muodostus Argumenttien ja laskennan alustus Laskennan käynnistys Tulosten keruu
OpenCL ja OpenGL
Network on Terminal Architecture (NoTA) Sulautettujen järjestelmien arkkitehtuuri, jossa laitteen sisäinen hajautus Lisälaitteiden modulaarinen koostaminen Perusperiaatteet Löyhä kytkentä järjestelmätasolla Palveluperustaisuus Väyläperustaisuus Viesti- ja datapohjainen kommunikaatio Heterogeeniset toteutukset mahdollisia
NoTA-arkkitehtuuri
Järjestelmätason arkkitehtuuri -> Looginen arkkitehtuuri
NoTA laitteessa
Yhteenveto Hajautettu skedulointi luo omat haasteensa laadunvarmistukselle Erilaiset väylät voivat yksinkertaistaa järjestelmän rakentamista, mutta ne voivat myös vaatia uudenlaisten suunnitteluongelmien ratkaisua Laitteen sisäisen kapasiteetin hyödyntäminen