Embedded sistemi i RealTime Embedded sistemi ta su
„Embedded sistemi i Real-Time Embedded sistemi“
Šta su Embedded sistemi? Na način gotovo nezamisliv do pre desetak godina, embedded sistemi utiču na ljudski život, rad i zabavu; Pojavljuju se u najraznoraznijim tipovima i oblicima, pri čemu svaki od njih ima svoje jedinstvene i prepoznatljive karakteristike: Većina vozila danas sadrži inteligentne čipove koji izvršavaju svoje zadatke, od trivijalnih do tzv value-added funkcionalnosti Telefonski sistemi se oslanjaju na složen integrisani HW i SW Domaćinstva obiluju inteligentnim uređajima i integrisanim sistemima sadržanih u okviru embedded sistema, koji poboljšavaju svakodneve aktivnosti i kvalitet života
Šta su Embedded sistemi? Svakodnevno ljudi koriste embedded sisteme a da to i ne znaju, i u ovome je zapravo i najveća lepota embedded sistema-uopšte nije potrebno znati detalje da biste mogli uživati u funkcionalnosti koju pružaju Nije retko da se ES definišu kao računarski sistemi bez tastature, displeja i miša. Na osnovu samog izgleda, pravi se razlika i faktorizacija, jer ES ne izgledaju kao obični personalni računari: izgledaju kao pametni telefoni ili tosteri, kao digitalne kamere. . . Ovakve tvrdnje su zapravo varljive i netačne!
Definicija ES Embedded sistem je računarski sistem sa čvrsto uparenom hardverskom i softverskom integracijom, koji je dizajniran da izvršava specifičnu funkciju Reč Embedded reflektuje činjenicu da ovakvi sistemi najčešće čine integralni deo jednog većeg sistema, poznatog kao Embedding sistem Nekoliko embedded sistema može koegzistirati u okviru obuhvatajućeg embedding sistema
Definicija ES Ovakva definicija je dobra, ali je subjektivna U većini slučajeva, ES je zaista “ugrađen” u okviru složenijeg sistema, i čine sisteme u sistemu te ne mogu postojati sami za sebe: Digitalni set-top box (DST) se sastoji od A/V dekodera koji prima multimedijalni stream i proizvodi zvuk i video frejmove kao izlaz Signal primljen sa satelita od strane DST-a sadrži nekoliko kanala, što znači da A/V dekoder redi zajedno sa Transportnim stream dekoderom, koji je takođe ES i ima ulogu da demultipleksira ulazne multimedijalne stream-ove u zasebne kanale od kojih samo jedan selektovan pohranjuje A/V dekoderu na obradu
Definicija ES U nekim slučajevima, ipak, ES može da postoji kao nezavistan (standalone) sistem Mrežni ruter je primer jednog takvog ES. Baziran je na specijalizovanom komunikacionom procesoru, memoriji, nekolicini mrežnih interfejsa (mrežnih portova) i specijalizovanom softveru koji implementira algoritme za rutiranje paketa Kao rezultat, očigledno je da ne postoji prikladna jedinstvena definicija ES. Potrebno je fokusirati se na karakteristike ES, iz jedne od mnogih perspektiva, kako bi se razumelo šta taj ES čini posebnim
Tip procesora Procesori koji se mogu naći u PC računarima su univerzalni procesori opšte namene (General Purpose-GP procesori) Oni su kompleksni u dizajnu jer treba da obezbede brojne performanse i širok spektar funkcionalnosti GP procesori su pogodni za najraznoraznije aplikacije: MMU za zaštitu memorije i korišćenje virtualne memorije u multitasking, GP operativnim sistemima Napredna logika za keširanje u cilju poboljšanja performansi Matematički ko-procesor koji vrši brze floating point operacije Interfejs za raznorazne eksterne periferijske uređaje
Embedded procesor i svest o aplikaciji Kao rezultat svega gore navedenog, GP procesori troše mnogo energije, izuzetno se greju i imaju pozamašne dimenzije. Takodje su veoma skupi za fabrikaciju U ranom periodu, ESi su se uglavnom bazirali na GP procesorima, tek nakon napretka mikroprocesorske tehnologije počinju da se razvijaju embedded procesori Embedded procesori su procesori specijalne namene, dizajnirani za specifičnu klasu aplikacija. Ključna stvar kod njih je “svest o aplikaciji”, tj. ovi procesori moraju znati pravu prirodu aplikacija za koju su namenjeni
Veličina, potrošnja snage i cena kao prioritet? Osnovna klasa Embedded procesora se fokusira na veličini, potrošnji snage i ceni Prihvatljiva je limitirana funkcionalnost: procesor je adekvatan za klasu aplikacija za koju je namenjen, iako je vrlo verovatno da je potpuno neupotrebljiv za mnogobrojne aplikacije osim te Ovo je jedan od razloga zašto mnogi procesori nemaju veliku CPU brzinu.
Veličina, potrošnja snage i cena Procesor koji se koristi kod PDA uređaja nema ko-procesor zadužen za floating-point aritmetiku jer ona ili nije potrebna, ili je softverska emulacija FP aritmetike prihvatljiva. Moguće je korišćenje 16 -bitnog adresnog prostora umesto 32 -bitnog i 200 MHz takt jer je većina aplikacija interaktivna i važno je samo osvežavanje displeja, umesto izvodjenje zahtevnih računarskih operacija Embedded procesori iz ove klase su malih dimenzija, a limitirana funkcionalnost nosi sa sobom znatno smanjenje potrošnje snage i duži život baterije
Performanse Sa druge strane, postoji posebna klasa Embedded procesora koja se fokusira na performanse, pre nego na pomenute (cenu, potrošnju i veličinu) Primer bi bio DSP (Digital Signal Processor) koji se koristi u mobilnim telefonima: Glasovna komunikacija u realnom vremenu podrazumeva digitalnu obradu signala i ne toleriše kašnjenja DSP ima specijalizovanu aritmetičku jedinicu, optimizovan dizajn i memoriju, kao i adresni prostor i magistrale prikladne za multiprocesorsku obradu, sve u cilju izvođenja kompleksnih operaciju ekstremno brzo Kao rezultat DSP radi znatno bolje nego GP procesor koji radi na istoj radnoj frekvenciji sa aspekta digitalne obrade podataka Cena DSP procesora uglavnom održava cene mobilnih telefona visokim
System on a Chip So. C (System on a Chip) procesori su posebno atraktivni za embedded sisteme Sastoje se od CPU jezgra sa ugrađenim periferijskim modulima (npr. Programabilni tajmer opšte namene, programabilan kontroler prekida, DMA kontroler, Ethernet interfejs, . . . ) Ovakve karakteristike So. C omogućavaju implementaciju širokog spektra embedded aplikacija bez potrebe za dodatnim eksternim periferijskim jedinicama, smanjujući cenu i veličinu finalnog proizvoda
ES na osnovu Embedded procesora? Kao zaključak, očigledno je da postoji “siva zona” kada se na osnovu tipa procesora pokušava razlikovati embedded sistem od ne-embedded sistema U slučajevima embedded sistema sa izuzetno visokim performansama, nije jednostavno odabrati između embedded procesora ili univerzalnog procesora opšte namene U slučaju sofisticiranih (high-end) embedded sistema, performanse u predefinisnom kontekstu svakako su značajnije od potrošnje snage ili cene. U takvom slučaju, odabir GP procesora može biti jednako dobar kao i sofisticiranog highend embedded procesora koji bi bio korišćen u istu svrhu
HW/SW ko-dizajn Tipično, hardver i softver za ES se razvijaju u paraleli Interakcija između dva dizajn tima vodi ka tome da se izvuku maksimalne prednosti kako HW, tako i SW: SW komponente mogu da profitiraju od naprednih i specijalizovanih HW modula, dok HW komponente mogu da imaju pojednostavljen dizajn ukoliko određena funkcionalnost može biti ostvarena u SW, čime će se značajno redukovati kompleksnost i cena Vrlo često, mane kako SW, tako i HW bivaju otkrivene u uskoj kolaboraciji prilikom dizajna ova dva bloka HW-SW ko-dizajn predstavlja zapravo fundamentalnu karakteristiku embedded sistema specifične namene (koji često zahteva custom HW i SW)
Programiranje ES se smatra posebnom disciplinom koja zahteva da inženjeri koji se bave razvojem imaju znanje u popriličnom broju oblasti: Low-level HW uređaji Kompajler Tehnike debagovanja Mehanizme Real-Time operativnih sistema Dizajn multi-threaded aplikacija Kao rezultat, ovi zahtevi često mogu da budu poražavajući za programera koji je novi u ovoj oblasti, a sam proces obučavanja može biti dug i stresan
Cross-platform razvoj Ovo je još jedna od karakteristika embedded sistema Softver za ES je razvijen na jednoj platformi, ali se izvršava na drugoj (platforma je kombinacija HW, npr. Tip procesora, operativnog sistema, kao i alata koji se koriste za razvoj softvera) Host sistem je sistem na kome se razvija embedded softver. Target sistem je embedded sistem za koji se vrši razvoj Osnovni alat koji omogućava cross-platform razvoj jeste crosskompajler. To je kompajler koji se izvršava na jednom tipu arhitekture procesora, ali proizvodi objektni kod za drugi tip arhitekture procesora. Razlog za korišćenje cross-kompajlera leži u činjenici da target sistem ne podržava sopstveni kompajler.
Skladištenje softvera i nadgradivost Kod za embedded sistem more biti smešten u memoriju koja neće izgubiti sadržaj nakon nestanka napajanja (non-volatile memory) Poseban problem kod embedded sistema predstavlja proces boot-ovanja i korake koji omogućavaju “raspakivanje” koda iz memorije u kojoj su skladišteni, kako bi se taj kod mogao izvršavati Nadogradnja embedded sistema može podrazumevati kreiranje nove PROM memorije, primenjivanje specijalne opreme i metodologije za reprogramiranje EPROM-a, ili jednostavno reprogramiranje flash memorije, u zavisnosti koja memorija se koristi
Odabir memorije za smeštanje Odabir memorije u koju će biti smešten embedded softver takođe ima uticaj na sveukupnu cenu održavanja Iako su PROM i EPROM memorije jeftine, cena se znatno podiže ukoliko “upgrade” sistema podrazumeva isporuku novih modula (nakon preuzimanja starih i zamene mem. blokova) Sa druge strane, embedded sistem može jednostavnije biti nadograđen bez potrebe za zamenom čipova, dinamički (putem mreže) ako se koriste flash ili EEPROM memorije koje su same po sebi skuplje
Tipovi RAM memorija Random Access Memory (RAM) se često naziva i read/write memorija i zahteva eksterno napajanje kako bi sačuvala sadržaj Termin Random ukazuje na osobinu RAM memorije da se svakoj memorijskoj ćeliji može pristupati direktno RAM je znatno brži od ROM memorija Dva tipa RAM-a su od značaja: Dinamički RAM (DRAM) zahteva periodično osvežavanje sadržaja Statički RAM (SRAM) čuva sadržaj sve dok je napajanje prisutno od strane eksternog izvora napajanja. Znatno je brži od DRAM memorije i ne zahteva osvežavanje
NVRAM memorija Non-Volatile RAM (NVRAM) je specijalan tip SRAM memorije koji dobija napajanje od strane baterije, kako bi mogao da sačuva svoj sadržaj nakon nestanka glavnog napajanja Postoji i varijanta NVRAM memorije koja zapravo kombinuje SRAM sa EEPROM memorijom, tako da je sadržaj SRAM memorije upisan u EEPROM uvek kada nastupi nestanak napajanja, a pročitan iz EEPROM-a nakon dolaska napajanja
Real-Time Embedded Sistem Ovo je specijalna klasa embedded sistema, koja se razlikuje od drugih po zahtevu da manipuliše eksternim događajima u realnom vremenu U najjednostavnijoj formi, real-time sistem može biti definisan kao sistem koji reaguje na eksterne događaje u skladu sa vremenskim ograničenjima Eksterni događaji mogu imati sinhrone i asinhrone karakteristike. Reagovanje na eksterne događaje podrazumeva prepoznavanje kada se događaj desio i izvođenje očekivanog procesiranja kao rezultat događaja, vraćajući rezultat obrade unutar predefinisanog vremenskog ograničenja (ograničenje može biti vreme završetka, ili zajedno vreme početka i završetka)
Real-Time Embedded Sistem Dobar način da se razume odnos između real-time sistema i embedded sistema jeste posmatrajući sliku ispod
Događaji i reakcije Okolina real-time sistema kreira eksterne događaje Ovi događaji se prihvataju od strane jedne ili više komponenti RT sistema Reakcija RT sistema se vraća okruženju kroz jednu ili više komponenti sistema Dekompozicija RT sistema vodi ka generalnoj strukturi realtime sistema prikazanoj na slici na sledećem slajdu: Kontrolišući sistem (Controlling system) Kontrolisani sistem (Controlled system)
Struktura RT sistema
Real-Time sistemi Kontrolišući sistem interaguje sa kontrolisanim sistemom na više načina: Periodična interakcija u kojoj je komunikacija inicirana od strane kontrolišućeg sistema. U ovom slučaju, komunikacija je predvidiva i dešava se u unapred zadatim intervalima i trenucima Aperiodična interakcija tokom koje komunikacija biva inicirana od strane kontrolisanog sistema. U ovom slučaju, komunikacija je nepredvidiva i predodređena slučajnim eksternim događajima iz okruženja kontrolisanog sistema Kombinacija gornja dva Kakva god bila priroda komunikacije među njima, kontrolišući sistem mora da obradi i odgovori kontrolisanom sistemu u garantovanom vremenskom okviru
Primer RT sistema 1 Zamislimo RT odbrambeni sistem (RTOS) kome je uloga da zaštiti brodove od projektila Ideja je da se projektili koji se približavaju unište pre nego što stignu do broda RTOS se sastoji od Radarskog Sistema (RS), Upravljačkog Sistema (US) i Sistema za Kontrolu Oružja (SKO) U ovom slučaju kontrolišući sistem je US, dok su RS i SKO kontrolisani sistemi
Primer RT sistema 1 Radarski Sistem skenira prostor i traži potencijalne mete. Koordinate potencijalne mete se šalju US periodično sa visokom učestanošću nakon što je meta primećena Upravljački Sistem mora najpre da odredi nivo rizika tako što klasifikuje i evaluira sve pridošle rizike kroz informacije dobijene od Radarskog Sistema Za “najveću” pretnju US mora, barem, da izračuna brzinu i projektovanu trajektoriju, kao i da estimira lokaciju udara. Obzirom da putanja projektila u praksi driftuje, Upravljački Sistem uzima u obzir i pravougaonu i površinu oko putanje kretanja projektila
Primer RT sistema 1 US tada aktivira SKO koji je nabliži anticipiranoj lokaciji udara, kako bi on kontinualno ispaljivao municiju u okviru pomerajuće površine sve dok se meta ne uništi U ovakvom RTOS-u, komunikacija između RS i US je aperiodična, jer je pojava potencijalne mete nepredvidiva i može se pojaviti u bilo kom trenutku Komunikacija između US i SKO je, sa druge strane, periodična, jer US pohranjuje koordinate mete ka SKO periodično. Inicijalne koordinate se baziraju na predproračunatoj putanji leta, ali je neophodno ažurirati ove podatke u realnom vremenu u skladu sa promenama lokacije projektila koji se približava brodu
Primer RT sistema 2 Sa druge strane, imamo RT Sistem za Upravljanje Projektilom (SUP) Projektil se kreće ultra-zvučnom brzinom On se kreće 10 m iznad vode, 30 m iznad ravnog tla i 100 m iznad planinskog područja Moderni sistemi za navođenje omogućavaju pogađanje mete na udaljenosti i do 50 km Sve ove karakteristike su omogućene zahvaljujući RT navigirajućem sistemu ugrađenom u nos projektila
Primer RT sistema 2 U uprošćenoj varijanti, SUP se sastoji od: Navigacioni Radar Sistem (NRS), sa mogućnošću praćenja terena ispred i ispod Navigacioni sistem (NS) Sistem za Promenu Pravca (SPP) Navigacioni Sistem sadrži digitalne mape koje pokrivaju putanju leta projektila, koje se osvežavaju na osnovu informacija dobijenih od NRS u realnom vremenu Navigacioni Sistem tada preračunava koordinate putanje kako bi izbegao prepreke na terenu Korektivna podešavanja putanje leta se šalju Sistemu za
Primer RT sistema 2 U ovom primeru, kontrolišući sistem je Navigacioni, dok su kontrolisani sistemi Navigacioni Radarski Sistem za Promenu Pravca Možemo, takođe, zapaziti, kako periodičnu, tako i aperiodičnu komunikaciju u ovom primeru. Komunikacija između NRS i NS je aperiodična, dok je komunikacija između NS i SPP periodična
Primer RT sistema 3 Još jedan primer real-time sistema je DVD plejer Njegova uloga je da dekoduje video i audio stream sa diska simultano Posmatrač može da aktivira OSD (On Screen Display) korisnički meni korišćenjem daljinskog upravljača Kroz OSD korisnik može da menja parametre kao što su format audio izlaza i opcije za jezike DVD plejer je kontrolišući sistem, daljinski upravljač je kontrolisani sistem, koji je u ovom slučaju prepoznat kao senzor koji pohranjuje događaje (pauza, odabir jezika i sl. ) ka DVD plejeru
Karakteristike RT sistema US u okviru RTOS-a iz primera 1 mora da preračuna anticipiranu putanju leta projektila brzo i da šalje instrukcije ka SKO kako bi projektil bio oboren pre nego što stigne do mete Neka je vreme T 1 potrebno da bi projektil stigao do broda, kao funkcija udaljenosti od broda i brzine Neka je T 2 vreme potrebno da US aktivira oružje (u koje je uključeno vreme za prenos koordinata kao i kašnjenje ispaljivanja) T 1 – T 2 je tada maksimalno dozvoljeno vreme koliko izračunavanje sme da traje Projektil će dostići metu ako proračun od strane US traje duže, ili ako je proračun netačan
Karakteristike RT sistema Slično kao u primeru 1, navigacioni sistem NS iz primera 2 mora da reaguje brzo na promene terena kako bi preračunao koordinate i poslao kontrolne signale u skladu sa ispravljenom trajektorijom leta Projektil će udariti u planinu ukoliko se proračun nove putanje ne desi brzo, ili ako proračun bude netačan Kao zaključak, izvlačimo dve esencijalne karakteristike realtime sistema: RT sistemi moraju da rezultuju korektnim rezultatom obrade podataka (ovo se naziva logička ili funkcionalna korektnost) i te rezultate moraju da proizvedu u okviru predefinisanog vremena (vremenska korektnost)
Karakteristike RT sistema Real-time sistemi su, dakle, sistemi u kojem ukupna korektnost sistema zavisi kako od funkcionalne korektnosti, tako i vremenske korektnosti. Vremenska korektnost je neophodna barem koliko i funkcionalna korektnost U nekim slučajevima funkcionalna korektnost žrtvuje nauštrb vremenske korektnosti (biće primer dat kasnije)
Tipovi RT sistema Ranije je rečeno da se obrada podataka mora završiti pre datog krajnjeg roka Drugim rečima, RT sistemi imaju vremenska ograničenja i generalno su određena krajnjim rokom (eng. Deadline-driven) U skladu sa tim, RT sistemi se klasifikuju kao HARD RT sistem ili kao SOFT RT sistem Ono što razlikuje Hard RTS od Soft RTS jeste nivo tolerancije za promašeni krajnji rok, korisnost izračunatih podataka nakon neispunjenog krajnjeg roka i, na kraju, ozbiljnost kazne prouzrokovane ne ispunjavanjem krajnjeg roka
Tipovi RT sistema Za Hard RT sistem: nivo tolerancije promašenog roka je ekstremno mali ili jednak nuli Izračunati podaci nakon što rok nije ispoštovan su gotovo neupotrebljivi Kazna zbog neispunjenog roka je katastrofalna Za Soft RT sistem: Nivo tolerancije promašenog roka svakako nije nula Izračunati Uticaj promašenog roka nije katastrofalan podaci nakon neispoštovanog roka imaju tzv stopu obezvređivanja (korisnost rezultata nije nula neposredno nakon promašaja roka)
Tipovi RT sistema Dakle, Hard RT sistem je RT sistem koji mora ispuniti krajnji rok sa izuzetnom pouzdanošću (gotovo nultim stepenom tolerancije), u suprotnom nastupa katastrofa (vrlo često je cena takve katastrofe vrlo visoka i može rezultovati ljudskim žrtvama). Iskoristljivost rezultata nakon što je rok promašen je ili nula, ili je stopa obezvređivanja rezultata ekstremno visoka sa proticanjem vremena od trenutka promašaja krajnjeg roka Soft RT sistem mora da ispoštuje krajnji rok, ali sa određenim stepenom tolerancije. U ovom slučaju, neispoštovan krajnji rok ne znači i potpuni neuspeh, ali cena promašaja roka može rasti proporcionalno sa kašnjenjem, u zavisnosti od aplikacije
Tipovi RT sistema Vredno zapažanja je činjenica da dužina krajnjeg roka nije ono što odlučuje da li je RT Hard ili Soft, već ozbiljnost zahteva da se taj rok ispoštuje (kroz kaznu koja nastupa u suprotnom) Oba sistema iz primera 1 i 2 su hard RT sistemi, ukoliko govorimo o SUP, ukoliko NS ne može da izračuna nove koordinate kao posledicu planine koja se pojavljuje na horizontu pre krajnjeg roka za to, neće dovoljno vremena biti ostavljeno projektilu da promeni visinu. Ovaj sistem ima nultu toleranciju za promašeni rok. Takođe, nove koordinate izračunate nakon krajnjeg roka su potpuno neupotrebljive jer na ultra-zvučnim brzinama rastojanje je previše malo da bi se moglo odreagovati. Kazna je katastrofalna, čak i u slučaju da projektil udari u planinu
Tipovi RT sistema Slično, RTOS (RT odbramberni sistem) je takođe sistem sa nultom tolerancijom. Neispoštovan rok rezultuje projektilom koji potapa brod, potencijalno sa ljudskim žrtvama Nasuprot ova dva primera, DVD plejer je soft RT sistem. On dekoduje video i audio stream-ove dok reaguje na komande korisnika istovremeno Korisnik može da pošalje seriju komandi veoma brzo, što izaziva da dekoder propusti rok (ili nekoliko rokova) i kao rezultat imaćemo vidljivu distorziju slike ili čujnu distorziju audio signala Nivo tolerancije je visok jer DVD plejer nastavlja sa funkcionisanjem, dekodovani podaci nakon kašnjenja se i dalje mogu iskoristiti
Značaj vremenske korektnosti Za većinu Hard RT sistema, vremenska korektnost je kritična, te se čini sve kako bi se predvidelo da li rok koji je postavljen pred njih može biti probijen Ako govorimo o RTOS-u, kada se anticipira da bi rok mogao biti probijen, US kao odgovor povećava zonu oko projektila i dodatno estimira koordinate, umesto računanja preciznih, nakon čega odmah aktivira SKO kako bi kompenzovao ovu nepreciznost. Kao rezultat, više oružja se aktivira kako bi pokrili veću površinu oko projektila Ovaj primer pokazuje da nekada funkcionalna korektnost može biti žrtvovana nauštrb vremenske korektnosti
Značaj vremenske korektnosti U slučaju Soft RT sistema, nije potrebno predviđati eventualno probijanje roka (tj. rokova), jer ukoliko se nekoliko njih ne ispoštuje, uticaj neće biti katastrofalan Umesto toga, ovi sistemi mogu da počnu sa procesom oporavka (recovery process) nakon što je probijen rok Na primeru DVD plejera, nakon probijanja roka, dekoderi koriste prethodno izračunate podatke i na osnovu njih odlučuju koji video frejmovi (ili audio podaci) moraju biti odbačeni kako bi sistem nastavio sa normalnim radom (re-sinhronizacija)
Početak izvršenja zadatka Do sada smo razmatrali postizanje krajnjeg roka, ali u određenim situacijama, ispunjavanje vremena početka može biti jednako važno Nedostatak resursa za obavljanje nekog posla (npr CPU ili memorija) može sprečiti neki zadatak da počne na vreme i rezultovati na kraju neispoštovanim krajnjim rokom završetka zadatka. Ovaj problem se svodi na problem raspodele resursa i o njemu će biti više reči na narednim predavanjima Algoritmi za raspodelu resursa u real-time sistemu moraju reagovati adekvatno kako bi zadaci pokrenuti kao odgovor na sinhrone, ali i na asinhrone događaje iz okruženja imali dostupne sve potrebne resurse u pravom trenutku
- Slides: 43