1 UVOD Vgrajeni sistemi so elektronski sistemi, ki so vgrajeni v neko napravo in izvajajo funkcije nadzora, krmilje- nja in obdelave podatkov. Sodobni vgrajeni sistemi so heterogene naprave, sestavljene iz več procesnih enot povezanih s komunikacijskimi vodili. Tipičen vgrajeni sistem opravlja večje število nalog, ki so razdeljene na opravila. Določena opravila se izvajajo na namenski strojni opremi (npr. vmesnik za komunikacijo po nekem protokolu), večina pa se izvaja v obliki programa na mikroprocesorjih [1]. Operacijski sistem omogoča, da se na mikroprocesorju v nekem času razvrsti večje število opravil, tako da je s stališča sistema videti, kot da se vsa Prejet 19. oktober, 2011 Odobren 7. november, 2011 opravila izvajajo hkrati. Načrtovanje sodobnih vgrajenih sistemov je zaradi naraščanja kompleksnosti vse večji izziv. Zahteve po čim višji stopnji kakovosti, nizki ceni in čim hitrejši dosto- pnosti na trgu narekujejo uporabo sodobnih pristopov pri načrtovanju vgrajenih sistemov. Potrebujemo orodja, ki omogočajo zgodnje ovrednotenje sistema in posledično učinkovitejše vodenje pri načrtovalskih odločitvah. Pri načrtovanju vgrajenih sistemov je pomembno, da vna- prej ocenimo, kako se bodo opravila izvajala in kakšna bo izkoriščenost komponent strojne opreme [2]. Poleg tega pa imajo vgrajeni sistemi pogosto zelo natančno opredeljene časovne odzive, ki igrajo ključno vlogo pri načrtovalskih odločitvah. Na primer regulacijski sis- tem ima že v postopku načrtovanja določene periode vzorčenja in krmiljenja, pri katerih vsako odstopanje pomeni slabše regulacijske zmogljivosti. Sodobni postopki načrtovanja na ravni sistemov (angl. System Level Design - SLD) [3], [4] uporabljajo modeliranje kot enega osnovnih konceptov. Postopek načrtovanja se začne z izdelavo abstraktnih modelov [5] brez podrobnosti, vezanih na implementacijo. Ab- strakten model ovrednotimo glede na zahteve iz specifi- kacije. Če zahtevam iz specifikacije ne ustreza, model spreminjamo v postopku raziskovanja načrtovalskega prostora [6]. Ko so zahteve izpolnjene, model dopolnimo z novimi podrobnostmi in ga ponovno vrednotimo. To dopolnjevanje izvajamo, dokler v modelu ni dovolj in- formacij za implementacijo celotnega sistema. V prispevku bomo predstavili orodje za modeliranje in ovrednotenje vgrajenih sistemov na zelo visoki ravni 166 PERKO, NAHTIGAL, TROST abstrakcije. Definirali bomo osnovne elemente modela vgrajenega sistema, predstavili potek načrtovanja in re- zultate ovrednotenja. Na primeru bomo pokazali, da se rezultati kljub zelo abstraktnemu modelu dobro ujemajo z meritvami na realnem sistemu. 2 ABSTRAKTEN MODEL VGRAJENEGA SISTEMA Metodologija modeliranja na abstraktni ravni omogoča sočasno načrtovanje in ovrednotenje strojne in program- ske opreme [7]. Metodologija temelji na razširjeni upo- rabi abstrakcije, ki določa minimalen nabor podatkov, s katerimi je mogoče modelirati in ovrednotiti vgrajeni reaktivni sistem s porazdeljeno obdelavo podatkov. Pri reaktivnih sistemih je eden glavnih kriterijev čas izva- janja opravil, ki je odvisen od hitrosti in zasedenosti izvršilnih enot (npr. procesorjev) in komunikacijskih zakasnitev. Načrtovanje reaktivnih sistemov začnemo na podlagi analize specifikacij z nekaj znanimi algoritmi, ki jih bo treba implementirati v strojni in programski opremi vgrajenega sistema. Algoritmi so sicer lahko že im- plementirani v nekem programskem jeziku, vendar je takšna implementacija samo ena od mogočih in zato ne nujno najboljša za začetne načrtovalske odločitve. Model sistema razdelimo po znanem konceptu grafa Y [8] na opis funkcionalnosti (algoritmov)in arhitekture (strojne opreme) ter določimo medsebojno dodelitev. Funkcionalnost določa naloge sistema in je opisana s pomočjo mreže abstraktnih opravil, povezane na podlagi medsebojnih podatkovnih odvisnosti. Abstraktni model opravila je opisan z zaporedjem visokonivojskih operacij za izvedbo izbranega algoritma in zahtev za prenos določene količine podatkov. Abstraktni model arhitek- ture je sestavljen iz množice izvršilnih in komunika- cijskih enot. Izvršilne enote ponujajo storitve (izvedbo operacij, prenos podatkov), za katere je znana ocena časa, ki ga potrebujejo, da se izvedejo. Komunikacijske enote so namenjene modeliranju dostopnosti komuni- kacijskih kanalov (vodil). Več izvršilnih enot si lahko deli posamezno komunikacijsko enoto, vendar lahko istočasno do nje dostopa samo ena, preostale pa medtem čakajo. V abstraktnem opisu funkcionalnosti se nahajajo zah- tevki za posamezne storitve, ki bodo omogočile iz- vedbo zahtevane funkcionalnosti. Za izvajanje teh zah- tevkov je odgovorna tista izvršilna enota, kateri je v postopku dodelitve dodeljeno posamezno opravilo. Do- deljena izvršilna enota med simulacijo izvaja zahtevke skladno s svojo razpoložljivostjo in dostopnostjo z njo povezanih komunikacijskih enot. Model izvršilnih enot omogoča posameznim opravi- lom ekskluzivni dostop, ki je model namenskih strojnih enot, ali pa prek razvrščevalnika, ki modelira delovanje operacijskega sistema na procesorju. Opravila so lahko v različnih stanjih: • Wait - čaka na prožilni dogodek ali na komunika- cijsko enoto, • Ready - opravilo čaka na seznamu za izvajanje, • Run - opravilo se trenutno izvaja. Razvrščevalnik s seznama čakajočih opravil izbere tisto, ki naj se glede na svoje atribute izvaja, in se ga v seznamu označi kot trenutno izvajajoče se opravilo. Takrat začne opravilo posredovati svoje zahtevke za storitve. Ko se njegovo izvajanje konča, se s seznama briše. Model razvrščevalnika pozna tipične razvrščevalne algoritme, ki jih zasledimo v vgrajenih sistemih [9]: FCFS (angl. First-come first-served), RM (angl. Rate Monotonic), DM (angl. Deadline Monotonic) in EDF (angl. Earliest Deadline First). Poleg tega je mogoče izbrati prekinjanje izvajanja opravil, ki imajo nižjo pri- oriteto kot tista ki so na čakalnem seznamu. 3 ORODJE ZA MODELIRANJE SISTEMOV - ASYMOD ovrednotenje modela Orodje ASyMod interpretacija grafičnega modela prevajanje modela (ANSI C++) modeliranje sistema v grafičnem okolju knjižnica arhitekturnih okvirjev knjižnica funkcionalnih okvirjev knjižnica za podporo analizi knjižnice SystemC interpreter „graf-2-tekst“ izvršitev simulacije končen model specifikacija vgrajenega sistema (začetna skica) model zadovoljiv? NE DA knjižnica komponent (baza) ANSI C++ prevajalnik ra z is k o v a n je n a č rt o v a ls k e g a p ro s to ra Slika 1: Potek modeliranja vgrajenih sistemov v orodju ASyMod Razvili smo orodje za izdelavo in ovrednotenje ab- straktnih modelov vgrajenih sistemov, ki smo ga poi- menovali ASyMod (Abstract System-level Modelling). Orodje je sestavljeno iz grafičnega modelirnega okolja s podpornimi knjižnicami in prevajalnikom ter skriptami za ovrednotenje modelov. Slika 1 prikazuje gradnike orodja ASyMod in potek načrtovanja vgrajenih sistemov. Načrtovalec ima na vo- ljo bazo vnaprej pripravljenih komponent v grafičnem ORODJE ZA OVREDNOTENJE VGRAJENIH SISTEMOV NA PODLAGI ABSTRAKTNEGA MODELIRANJA SISTEMA 167 Slika 2: Ovrednotenje modela vgrajenega sistema v orodju ASyMod: a) grafično modelirno okolje, b) simulacija časovnega poteka opravil, c) tabelarični izpis izkoriščenosti enot in d) grafikoni stanj opravil vmesniku. Grafični modelirni vmesnik smo naredili v prosto dostopnem modelirnem okolju GME (Generic Modeling Environment) [10]. Okolje GME smo za naš namen prilagodili z določitvijo metamodela, ki vsebuje vse sintaktične, semantične in predstavitvene informa- cije. Grafično modeliranje poteka v treh pogledih (angl. aspect): arhitekturnem, funkcionalnem in dodelitvenem. V arhitekturnem in funkcionalnem se definirajo arhitek- turni in funkcionalni elementi modela. Posamezni ele- menti se lahko pridobijo iz obstoječe knjižnice kompo- nent, oz. se izdelajo na novo in nato shranijo v knjižnico za poznejšo ponovno uporabo. Elementi morajo biti zgrajeni tako, da ustrezajo podpornim knjižnicam. Tu uporaba grafičnega okolja razbremeni uporabnika, saj ga usmerja pri izdelavi posameznega elementa, s sprotnim preverjanjem pravil pa onemogoča izdelavo neustreznih elementov. V dodelitvenem pogledu se nato izvede do- delitev arhitekturnih k funkcionalnim elementom. Po končanem koraku grafičnega modeliranja sistema sledi interpretacija grafičnega modela. Razvili smo pre- vajalnik, ki iz grafičnega modela zgradi opis v jeziku za načrtovanje na ravni sistemov SystemC. Rezultat inter- pretacije je datoteka z abstraktnim opisom vgrajenega sistema in simulacijskimi nastavitvami (npr: časovni korak, trajanje simulacije itd.) V naslednjem koraku sledi prevajanje jezikovnega opisa s prevajalnikom ANSI C++ v izvršljivo datoteko. Ko izvršimo datoteko, dobimo rezultate simulacije ab- straktnega sistema v obliki časovnih potekov opravil in poročila o izkoriščenosti arhitekturnih sredstev in grafikona, kot prikazuje slika 2. Ovrednotenje modela vgrajenega sistema naredimo s statistično obdelavo simulacijskih rezultatov. V tabe- laričnem izpisu so za vsako opravilo podatki o deležu časa izvajanja, čakanja na izvajanje, čakanja na podatke in časovnem deležu, ko je bilo prekinjeno. Za analizo reaktivnih sistemov so pomembne tudi časovne variacije periodičnih opravil, ki jih razberemo iz histogramov, kot bo prikazano na primeru. Načrtovanje vgrajenih sistemov je iterativni posto- pek. Če prvotni model ni zadovoljiv, ga popravimo in ponovno ovrednotimo. Ta postopek raziskovanja načrtovalskega prostora ponavljamo, dokler ne pridemo do zadovoljivega modela. 4 PRIMER MODELIRANJA VGRAJENEGA SISTEMA Uporabo orodja ASyMod bomo predstavili na abstrak- tnem modelu sistema za vodenje hitrosti vrtenja eno- smernega motorja. Osnovna naloga sistema je periodično izvajanje diskretnega regulacijskega algoritma, ki ga lahko razdelimo na tri podatkovno odvisna opravila: branje senzorja (Get), izračun odziva (PI) in nastavlja- nje aktuatorja (Set), kot prikazuje slika 3. Na splošno 168 PERKO, NAHTIGAL, TROST izvaja vgrajeni sistem še druge funkcionalnosti, ki smo jih modelirali kot dve novi periodični opravili: T2 in T3. Dodatni opravili sta podatkovno neodvisni od regulacijskega, vendar delita z njim skupno izvršilno in komunikacijsko enoto, zato pričakujemo da bosta vplivali na delovanje sistema. Ker imamo poleg zaporednih podatkovno odvisnih opravil še dve neodvisni, ki delita skupno izvršilno enoto, uporabimo operacijski sistem z razvrščevalnikom. Razvrščevalniku smo dodelili tri opravila: Op1, Op2 in Op3, ki so obkrožena na sliki 3. Izbrali smo razvrščevalni algoritem RM v prekinjevalnem načinu. Slika 3: Funkcionalni pogled na model v orodju ASyMod Arhitekturni del vsebuje izvršilno enoto Exec_ARM7 in komunikacijski enoti Mem in Comm. Prvi dve enoti sta procesorska enota in pripadajoči pomnilnik. Enota Comm pa pomeni zaporedno komunikacijsko vodilo med vgrajenim sistemom in motorjem s senzorjem vtljajev. Na sliki 4 je prikazan dodelitveni pogled modela v orodju ASyMod. Slika 4: Dodelitveni pogled na model v orodju ASyMod Slika 5 prikazuje visokonivojsko kodo, ki opisuje opravila Get in PI in izsek kode iz knjižnice izvršilne enote ARM7. Opis opravila Get vsebuje zahtevek za prenos dveh bajtov iz komunikacijske enote Comm. Za izdelavo modela potrebujemo oceno časa za prenos določene količine podatkov po vodilu in časa za izračun // Abstrakten opis opravil v ASyModu void Get::MainThread() { m_pExecUnit->GetData(this, 2, &Comm, -1); } void PI::MainThread() { m_pExecUnit->Calc(this, 563); } // Storitve iz knjižnice ARM7 void Exec_ARM7::Calc(int n) { for (int i=0; i<563; i++) { Wait(this, sc_time(64, SC_NS)); } } Slika 5: Visokonivojski model v jeziku SystemC določenega algoritma. Čase določimo z nizkonivojsko simulacijo ali eksperimentalno izmerimo in jih mode- liramo v obliki storitev v knjižnici določene izvršilne enote. Za procesor ARM7 smo ocenili čas izvajanja regulacijskega algoritma na 36 µs, kar pomeni 563 strojnih inštrukcij. Ker se lahko opravilo PI kadarkoli prekine, je njegov model opisan z zanko, ki se ponovi 563-krat in vsakokrat čaka 64 ns, kolikor je povprečen čas izvajanja inštrukcij. 5 REZULTATI Iz časovnih potekov izvajanja opravil lahko razberemo nekaj karakterističnih časov pri vsakokratnem izvajanju opravila. Na sliki 6 so za k-to zaporedno izvajanje opravila označeni naslednji štirje časi: 1) trig2startk: je čas, ki je pretekel od takrat, ko je prišel zahtevek za izvedbo opravila, pa do takrat, ko se je opravilo začelo izvajati, 2) start2endk: je čas, ki je pretekel od začetka pa do konca izvajanja; v ta čas se štejejo tudi vse prekinitve izvajanja, 3) trig2endk: je pretečeni čas, od zahtevka za iz- vedbo pa do konca izvajanja opravila, 4) Tk: je čas med posameznima začetkoma izvajanja opravila. Skozi celoten časovni potek za posamezno opravilo lahko te čase zberemo skupaj, jih statistično obdelamo in prikažemo na histogramu. Na sliki 7 so normalizirani histogrami, ki prikazujejo porazdelitev dveh karakterističnih časov opravila Op1. Populacija vzorcev v histogramih znaša 313 meritev, razdeljeni pa so v 22 stolpcev. Porazdelitve v vseh histogramih so diskretne. Opravilo Op1 ima med vsemi opravili določeno najnižjo prioriteto. Zakasnitev izvaja- nja opravila trig2start je najbolj porazdeljena. Verje- tnost, da se bodo opravila lahko takoj začela izvajati ORODJE ZA OVREDNOTENJE VGRAJENIH SISTEMOV NA PODLAGI ABSTRAKTNEGA MODELIRANJA SISTEMA 169 Slika 6: Karakteristični časi pri posameznem izvrševanju opravila. komaj presega vrednost p1 = 0, 2, zato je precej velika verjetnost, da bo opravilo moralo počakati, da se konča eno ali celo obe opravili, ki imata višjo prioriteto. Slika 7: Histogrami karakterističnih časov opravila Op1 Karakteristične čase izvajanja opravil smo tudi izme- rili na implementiranem sistemu. V programsko opremo smo dodali testno kodo, ki ob začetku izvajanja opravila postavi izhodni priključek mikrokrmilnika na logično 1, ob koncu izvajanja pa na 0. Meritve smo opravili s pomočjo digitalnega osciloskopa Lecroy WaveRunner in referenčnega signalnega generatorja. Funkcije digital- nega osciloskopa omogočajo kontinuirano shranjevanje rezultatov posameznih meritev in prikaz vseh shranjenih rezultatov v obliki histograma, kot prikazuje slika 8. Izmerjena širina impulza OSCstart2endk je enaka karakterističnemu času start2end. OSCTk je izmer- jeni čas med dvema pozitivnima frontama signala na izhodnem prilkjučku in je enak periodi opravila T . Za meritve karakterističnih časov trig2start in trig2end smo potrebovali še referenčni signalni generator. Temu smo nastavili, da je generiral signal z enako periodo Slika 8: Meritve karakterističnih časov opravil z osciloskopom. kot opravilo, ki smo ga opazovali. Prva fronta signala je osciloskopu prožila vzorčenje signala na priključku mikrokrmilnika. Meritve časa OSCtrig2startk med proženjem in prvo fronto impulza na izhodnem pri- ključku so v korelaciji s časom trig2start. Enako so meritve časa OSCtrig2endk med proženjem in zadnjo fronto impulza pa v korelaciji s časom trig2end. Pomanjkljivost meritev OSCtrig2start in OSCtrig2end je v tem, da je med signalom referenčnega generatorja in taktom notranjega časovnika, ki proži izvajanje opravila neki fazni zamik. Izmerjena časa sta od dejanskih časov trig2start in trig2end povečana ravno za velikost tega zamika. Zamik lahko pred začetkom meritev ročno zmanjšamo tako, da za nekaj časa nekoliko spremenimo periodo referenčnega signalnega generatorja, vendar pa ga tako ne moremo sistematično odpraviti. Ker imajo vsi izmerjeni časi enako napako, velja, da nenatančnost zaradi zamika ne vpliva na obliko histograma (višino stlpcev in njihovo medsebojno razdaljo), ampak samo na horizontalni premik vseh stolpcev. Čas, ki ga pomeni vsak stolpec histograma, je podaljšan za čas zamika. Na sliki 9 sta prikazana histograma časov OSCtrig2end in OSCtrig2start. Hitra vizualna primerjava oblike teh dveh histogramov nam pove, da sta zelo podobna histogramom simulacij iz ASyModa (slika 7). Histograme smo kvantitativno primerjali z metodo preseka normiranih histogramov. Uporabljena mera za podobnost dveh normaliziranih histogramov, pri čemer imata oba B stolpcev, je definirana kot seštevek presekov istoležnih stolpcev. Mera SIM je podana z enačbo (1). SIM = B∑ i=1 min(pi, pRi) . (1) 170 PERKO, NAHTIGAL, TROST Slika 9: Histograma meritev OSCtrig2start in OSCtrig2end za opravilo OP1 Rezultat mere se giblje 0 ≤ SIM ≤ 1, pri čemer velja, da bolj ko sta si histograma podobna, bliže je rezultat vrednosti 1. Primerjava histogramov trig2end za opravilo OP1 da rezultat SIM = 0.97, trig2start pa rezultat SIM = 0.99. 6 SKLEP Z razvojem orodja ASyMod za modeliranje vgrajenih sistemov na sistemski ravni smo postavili dobra iz- hodišča za nadaljnje raziskovalno delo na tem področju. Orodje je osnova za modeliranje sistemov na zelo vi- sokem ravni abstrakcije. Možnosti za nadaljnje delo vidimo v več smereh. Trenutno je ASyMod primeren za modeliranje siste- mov, pri katerih je čas izvajanja funkcionalnih opra- vil neodvisen od vhodnih podatkov. Smiselno bi bilo razširiti možnosti modeliranja tako, da bi se upoštevala tudi ta odvisnost. Obenem bi bilo smiselno vključiti še opazovanje časa, ki je posledica preklopa konteksta (angl. context switch) pri izvajanju opravil. Naslednja možnost za razširitev se kaže pri konceptu komunikacijskih enot. Trenutno so te enote modelirane s konceptom mutexa – enote so ali pa niso zasedene, trajanje dostopa pa je modelirano znotraj opisa funkci- onalnosti. Obstaja pa še drug pogled na komunikacijske kanale. Različni kanali imajo različno prepustnost. Če želi funkcionalnost samo prenesti neko sporočilo, naj od komunikacijske enote zahteva storitev za ta prenos. Samo od zmogljivosti komunikacijske enote naj bo odvi- sno, koliko časa bo potrebovala za prenos tega sporočila. Tako bi bolje razmejili funkcionalne zahteve sistema od zmožnosti, ki jih ponujajo arhitekturni elementi.