Biztonság-vezérelt automatikus architektúra szintézis Balogh András abalogh@mit.bme.hu Implementáció 2 Célkitűzés Fejlesztőeszköz készítése modell-alapú folyamathoz Meglevő eszközök felhasználásával Fejlesztési kultúra nem veszik el Az egyes eszközök integrációjával Teljes fejlesztési folyamat fedése Nyílt, bővíthető architektúrával Adaptálható, továbbfejleszthető Értékek a felhasználónak Újrafelhasználhatóság Növekvő produktivitás Létező 3 1
Implementáció 4 modellezés - Cél Szoftver architektúra megadása Funkcionális Nem-funkcionális jellemzők Grafikus modellező környezet nem hatékony Domain-specifikus nyelvek 5 Alkalmazásmodellezés készítés Funkcionális Nem-funkcionális megbízhatósági teljesítmény követelmények 6 2
fejlesztési folyamat követelmények Alkalmazás definíció Job definíció Erőforrás Def. Üzenet Def. Változó Def. Kommunikáció Def. Interfész, Port def. Diagnosztika Def. Teljesítmény Def. Megbízhatóság Def. 7 szerkesztése grafikusan Modell elemek, diagrammok Diagramm editor eszköztárral 8 példa 9 3
Implementáció 10 Alkalmazás-modellezés Az egyes szoftver komponensek működését írja le Többféle módszer támogatása Matlab/Simulink SCADE állapottérképek Meglévő forrás/bináris kód beszúrása Egyéb modellező és kódgeneráló eszközök integrálása Modell integráció Modell könyvtárak Marked RationalRose Matlab / ( editor) Simulink Simulink modellek modellek XMI.M -SCADE Simulink-SCADE GW GW SCADE (modellezés) SCADE modell.vsw 11 SCADE modellezés 1 job 1 SCADE csomópont Gateway Interfész adaptáció SCADE Simulink Gateway 12 4
példa SCADE Simulink C/C++ 13 Implementáció 14 Platform architektúra Partíciók Terepbuszok (pl. CAN) Szenzorok/beavatkozók DECOS Hálózat Biztonságkritikus job OS támogató réteg Alap Core operációs Operating rendszer System (COS) (COS) FPGA kártya (Xilinx Virtex4) Végrehajtó környezet EEE támogató réteg: oftl + SIL Partíciónként: - memória védelem (optimalizált hibatűrő réteg + Rendszer interfész réteg) - végrehajtási időszelet időbeli és térbeli elválasztás * Hardver FTL Nem biztonságkritikus job Nem biztonságkritikus job OS támogató réteg OS tám. Kommunikációs Layered TTP - LTTP vezérlő (L-Flexray) Virtuális... átjárók Fizikai HFTL * átjárók...... HW Csomagolás Fault-Tolerance összehasonlítás Layer - HFTL I/O OS tám. Védett osztott memória 15 5
Hardver platform 32 bites mikrokontroller Infineon TriCore CAN, TT-CAN Hardver hibatűrő interfész Kommunikációs szolgáltatások TT kontroller vezérlés Szavazás Kommunikációs vezérlő TTP/C FlexRay 16 Implementáció 17 Hardver modellezés Elemei Csomópontok Processzor típus Memória (kód, adat) Perifériák (szenzor/beavatkozó) Kommunikációs interfészek Hálózatok TT alap hálózat Terepbuszok 18 6
Implementáció 19 Feladat Szoftver komponensek replikálása és elosztása hardver csomópontokon Főbb lépések 1. Replikálás (job példányok) 2. Adattípus-leképzés (pl. sebesség -> valós) 3. Job és üzenet típus megadása (pl. CAN, LIN) 4. Alkalmazásközi kommunikációs struktúra 5. Logikai-fizikai szenzor/beavatkozó leképezés (pl. motorvezérlő - PWM) 6. Job kompatibilitás megadása 7. Automatikus job hardver csomópont allokáció 8. Üzenet és job ütemezés 20 metamodel metamodel Job kód Inform. Hardver-szoftver integráció folyamata Replikálás Allokáció CRD -PSM típus leképzés Job típus def. Üzenet protokol def. Átjáró def. Diagnosztika def. VIATRA (-PSM leképzés) PSM HSM Jelölt Iteratív, interaktív megközelítés A mechanikus lépések automatikusak A döntés a tervező kezében Lehetőség van a modellek kiegészítésére Nem-formális kényszerek is figyelembe vehetőek (pl. fizikai elhelyezkedés, költség, meglevő komponensek újrafelhasználása) Visszajelzés a tervezés minőségéről (pl. költség számítás) Tervezési adatbázis is illeszthető (felhasználható komponensek paramétereinek átvétele) 21 7
metamodel metamodel Job kód Inform. Hardver-szoftver integráció folyamata Replikálás Allokáció CRD -PSM típus leképzés Job típus def. Üzenet protokol def. Átjáró def. Diagnosztika def. VIATRA (-PSM leképzés) PSM Platform modell Job és erőforrás replikáció HSM Jelölt Alkalmazás modellek Job kód információ pontos WCET (mért) memóriaigény Adattípus-leképzés Logikai->platform Job típus leképzés, külső job-ok allokációja Üzenet protokoll definíció Alkalmazások közötti kommunikáció konfigurálása Diagnosztikai alrendszer konfigurálása Job-csomópont allokáció 22 metamodel metamodel Job kód Inform. Folyamatos modell ellenőrzés Minden lépés után ellenőrzés Replikálás Allokáció CRD -PSM típus leképzés Job típus def. Üzenet protokol def. Átjáró def. Diagnosztika def. VIATRA (-PSM leképzés) PSM HSM Jelölt Szintaktikai és szemantikai Funkcionális és nemfunkcionális jellemzőkre Erőforrás-korlátok Időbeliség megbízhatóság Az ellenőrző eszközök kiegészíthetőek Új aspektusok Új ellenőrzések 23 Integráció eredménye 24 8
-PSM szerkesztő 25 Integráció emelt fokon: Automatikus allokáció + ütemezés Szoftver komponensek elhelyezése hardver node-okon Funkcionális és nem-funkcionális kényszerek Ütemezés kommunikáció job Tervezési tér felderítése Optimalizálás Mindezt egy lépésben! 26 Kiterjeszthetőség Nem-funkcionális tulajdonságok és kényszerek Csomópontok száma (költség) Átvitel/teljes rendszer késleltetés (reakcióidő) Kiterjeszthetőség max. CPU idő tartalék (új nagy feladat) egyenletes CPU idő tartalék (új elosztott alkalmazás) Robosztusság adott hibaszám esetén minél kevesebb funkció essen ki Új szempontokkal bővíthető ELLENTMONDÓ SZEMPONTOK A tervező dönt 27 9
Scheduling results Status: running Solutions found : 3 Computation time: 2:21 Solution objectives Throughput node1 node2 node3 robustness network Max free capacity No. of nodes Avg. Node utilization Throughput: 65 (15%) Robustness: 2 (66%) Max. free capacity: 50% Avg. Node utilization: 60% No. Of nodes: 6 (80%) Overall objective value: 121 0ms 50ms 100ms Selected job: ManMovement1 WCET = 10ms Period = 100ms Allocated to: node3 Start time: 20ms End time 30ms Stop solver Clear All Tervezési tér feltérképezése robustness Max free capacity Throughput No. of nodes Avg. Node utilization A tervezési tér képét radar diagramm szemlélteti Határesetek vizsgálata Az optimális megoldás Egy-egy célfüggvény szerint Az egyes tervek megjeleníthetőek Vizuális összehasonlítás lehetősége Tervek értékelése 28 Skálázhatóság A keresési tér levágása Heurisztikus keresés (Shariful, Suri, et al.) Az eredmény, mint kiindulási alap felhasználása Ennél rosszabb megoldásokat nem keresünk Nagy mennyiségű kényszer Segít Erőteljes megoldó motor ILog CPLEX Heurisztikus megoldás 29 Eszköz támogatás Meglevő eszközökkel való integráció GUI (Eclipse) A felhasználó választja ki A felhasználandó kritériumokat (bővíthető) súlyozott A minimumkövetelményeket Meglévő tervek kiértékelésére is használható Akár a keretrendszertől függetlenül is 30 10
Implementáció 31 Implementáció (tanúsított kódgenerálás) Job kód (viselkedés) Burkoló kód (interfész) 32 Implementáció (konfiguráció és kódgenerálás) ütemezés terítés 33 11
Az integrált eszközkészlet 34 35 Összefoglalás Domain-specifikus modellezőeszközök, platform Modell létrehozás, szerkesztés, validálás s folyamat Interaktív, a felhasználó felügyeli Újrafelhasználható, testre szabható Architektúra-optimalizálás Több aspektusú A meglevő tudás/tervek újrafelhasználása A tervezés termelékenysége ÉS minősége javítható 36 12
Szerkesztő DECOS Domain Specifikus szerkesztő Modell elemek listája Projekt modellel Tulajdonságok nézet 37 Alkalmazásfejlesztés A job-ok működésének specifikálása Szintén modell-alapú Matlab/Simulink SCADE állapot-térképek Interfész információ a -ből Marked RationalRose Matlab / ( editor) Simulink Simulink modellek modellek XMI.M -SCADE Simulink-SCADE GW GW SCADE (modellezés) SCADE modell.vsw 38 Bemenő modell Alkalmazás (funkciók) Jobok WCET Periódus Replikáció foka Üzenetek Átviteli idő periódus Platform Rendelkezésre álló csomópontok Hálózat paraméterei Manuális elő-allokáció illetve kompatibilitás megadása 39 13
Platform architektúra 40 Virtuális hálózatok 41 Hardver-szoftver integráció Iteratív, interaktív megközelítés Több lépés A tervező irányítja az integrációt A mechanikus lépések automatikusak Lehetőség van a modellek kiegészítésére Nem-formális kényszerek is figyelembe vehetőek 42 14
Eredmény Szofver-hardver allokációs térkép Ütemezés a kommunikációs hálózathoz (konfigurációs fájl) Ütemezés az egyes node-okhoz (OS konfiguráció) Vizualizálva 43 Kiterjeszthetőség Nem-funkcionális tulajdonságok és kényszerek Hardver költség Robosztusság Ha a redundancia foka n, hány funkció esik ki n hiba esetén? Kiterjeszthetőség Maximum CPU idő tartalék Egyenletes CPU idő tartalék Átvitel A végrehajtási utak mentén számított teljes késleltetés alapján 44 Valós protokollok támogatása A legtöbb protokoll/vezérlő speciális kényszereket ír elő Példa (Flexray): cycletime<=16ms Új változók (konfigurációs paraméterek) jelennek meg A kényszereket újabb MILP egyenlőtlenségekké lehet alakítani Ezeket protokoll specifikus csomagok -ká lehet szervezni Különböző protokollok/verziók támogatása 45 15