Jammu
Kansainvälinen sadonkorjaaja
No muisteleppa tarkemmin, 25 vuotta sitten oltiin vuosituhannen vaihteessa ja mikro-ohjaimet oli kyllä tuolta osin jo aika kehittyneitä ja kellotaajuuttakin mainittua enemmän. Saatat muistella 80-90-lukua? Tosin silloin ohjelmamuisti ollut erillisellä ROM tai EPROM-piirillä jne Flashin myötä ohjelmamuisti siirtyi mikro-ohjaimeen sisälle.Täytyy muistaa, että n. 25 vuotta sitten kun noita koodasin, mikro-ohjain oli 8 bittinen ja kellotaajuus n. 5MHz. PWM-signaali tehtiin, koska silloin DA-muunninpiirit oli kallita ja tuon voi toteuttaa PWM-signaalilla, konkalla ja vastuksella halvalla. Ongelmaksi tulee kondensaattori, jos haluaa välttää ongelmallisen elkon käytön, pitää nostaa kellotaajuutta, joka silloin söi liikaa prosessorikaistaa (oliko itsesään jo n. 20%). Tuo ei vielä ole ongelma, mutta kun samalla ajastinkeskytyksellä joudutaan tekemään muutakin (koska oli vain pari ajastinta), ja kaikki syö tarpeettomasti prosessorikaistaa, koska ne eivät olisi vaatinut tuota vastetta. Tuon voi kyllä kiertää näppärällä koodilla, mutta siitä seuraa pari muuta ikävää sivuseurausta.
Nykyään noissa on ajastimia monta, kellot liikkuu gigoissa ja melkein aina käytössä sisäisia muuntimia ja ulkoiset maksaa 5€, joten tilanne erilainen.
Tuo, että onko järkevää tehdä linuxilla reaaliaikajuttuja, on ylipäätään mielenkiintoinen kysymys. Noissa VLSI Solutionsin SOC:eissa on tällä hetkellä käytössä "perinteinen" ratkaisu, jossa reaaliaikakriittisiä hommia tekee toinen käyttöjärjestelmä. Nuo SOC:it muuttavat tilannetta, 5€ mikopiirissä voi pyöriä "tarpeettoman" raskas ja monimutkainen linuxkernelin, jos sen käyttö olisi yksinkertaista. Jos keskeytysrutiini voidaan hoitaa esim. 20us:ssa, sillä tekee jo vaikka ja mitä.
Tuo on tätä päivää, että "naurettavan halvassa" korttitietokoneen "naurettavan ylitehokkaassa" järjestelmäpiirissä kannattaa pyörittää "naurettavan monimutkaista" käyttöjärjestelmää jonkin pikkujutun takia on usein järkevää, kun samalla tulee "naurettavan käteväksi" järjestää koko kötöstys verkkoon, siirtää dataa ja olla etäyhteyksissä salatun yhteyden kautta, voi käyttää korkean tason ohjelmoitnikieltä jne eli sovelluksen laatiminen nopeaa ja helppoa.
Niin ja tuossa erillisen reaaliaikakriittisen suorittamisen suhteen on aikalailla samansuuntainen ratkaisu jos puhubn erillispiiristä ja toisaaltta järjestelmäpiirissä erillinen reaaliaikakäyttis - joskin erillinen piiri on kalliimpi ratkaisu ja toisaalta pitää olla nopea väylä välissä.