Dom > Izložba > Sadržaj

Mikrokontroler Prekid latencije

Mar 08, 2019

Za razliku od računala opće namjene, mikrokontroleri koji se koriste u ugrađenim sustavima često nastoje optimizirati prekid kašnjenja nad protokom instrukcija. Problemi uključuju i smanjivanje kašnjenja, a čine ga i predvidljivijim (za podršku kontrole u stvarnom vremenu).


Kada elektronički uređaj uzrokuje prekid, tijekom prebacivanja konteksta moraju se spremiti među-rezultati (registri) prije pokretanja softvera odgovornog za rukovanje prekidom. Oni se također moraju vratiti nakon završetka prekidača. Ako postoji više registara procesora, taj proces spremanja i obnavljanja zahtijeva više vremena, povećavajući latenciju. Načini smanjenja takvog kašnjenja konteksta / vraćanja uključuju relativno malo registara u njihovim središnjim procesnim jedinicama (nepoželjno jer usporava većinu neprekidne obrade), ili barem ako ih hardver ne sačuva sve (to ne uspije ako softver treba za kompenzaciju spremanjem ostatka "ručno"). Druga tehnika uključuje trošenje silikonskih vrata na "registre sjena": jedan ili više dvostrukih registara koji se koriste samo od strane softvera za prekid, možda podupiru namjenski stog.


Ostali čimbenici koji utječu na kašnjenje prekida uključuju:


Ciklusi potrebni za završavanje trenutnih aktivnosti CPU-a. Kako bi se ti troškovi sveli na najmanju moguću mjeru, mikrokontroleri obično imaju kratke cjevovode (često tri upute ili manje), male međuspremnike za pisanje i osiguravaju da se dulje upute mogu nastaviti ili ponovno pokrenuti. Principi dizajna RISC-a osiguravaju da većina uputa ima isti broj ciklusa, čime se izbjegava potreba za većinom takve logike nastavka / ponovnog pokretanja.

Duljina svakog kritičnog dijela koji treba prekinuti. Unos kritičnog dijela ograničava pristup istodobne podatkovne strukture. Kada strukturi podataka mora pristupiti rukovatelj prekidom, kritični odjeljak mora blokirati taj prekid. Sukladno tome, kašnjenje prekida se povećava koliko god se prekid blokira. Kada postoje teška vanjska ograničenja za kašnjenje sustava, programeri često trebaju alate za mjerenje latencija prekida i pronalaženje kritičnih dijelova koji uzrokuju usporavanje.

Jedna uobičajena tehnika samo blokira sve prekide tijekom trajanja kritične sekcije. To je lako provesti, ali ponekad kritične dionice postaju neugodno dugačke.

Složenija tehnika samo blokira prekide koji mogu pokrenuti pristup toj strukturi podataka. To se često temelji na prioritetima prekida, koji ne odgovaraju dobro relevantnim strukturama podataka sustava. Prema tome, ova se tehnika uglavnom koristi u vrlo ograničenim okruženjima.

Procesori mogu imati hardversku podršku za neke kritične odjeljke. Primjeri uključuju potporu atomskom pristupu bitovima ili bajtovima unutar riječi ili drugim atomskim pristupnim primitivima kao što su primitivni pristupnici ekskluzivnog pristupa LDREX / STREX uvedeni u ARMv6 arhitekturi.

Prekidanje gniježđenja. Neki mikrokontroleri dopuštaju prekide višeg prioriteta kako bi prekinuli one s nižim prioritetom. To omogućuje softveru da upravlja latencijom tako što daje vremenski kritične prekide višeg prioriteta (a time i manje predvidljive latencije) od onih manje kritičnih.

Brzina okidanja. Kada dođe do prekida, mikrokontroleri mogu izbjeći dodatni kontekstni ciklus spremanja / vraćanja pomoću oblika optimizacije poziva.

Donji krajnji mikrokontroleri imaju tendenciju da podržavaju manje kontrole prekida kašnjenja od onih s višim.