Dom > Razstava > Vsebine

Mikrokontroler Prekinitev latence

Mar 08, 2019

V nasprotju s splošnimi računalniki mikrokrmilniki, ki se uporabljajo v vgrajenih sistemih, pogosto poskušajo optimizirati prekinitveno latenco nad prepustnostjo navodil. Težave vključujejo tako zmanjšanje latence kot tudi večjo predvidljivost (za podporo nadzora v realnem času).


Ko elektronska naprava povzroči prekinitev, je treba med preklopom konteksta shraniti vmesne rezultate (registre), preden se lahko izvaja programska oprema, odgovorna za ravnanje s prekinitvijo. Prav tako jih je treba obnoviti po tem, ko je končal vodnik prekinitve. Če obstaja več procesorskih registrov, ta postopek shranjevanja in obnavljanja traja več časa, kar poveča latenco. Načini za zmanjšanje takih zakasnitev konteksta / obnove vključujejo relativno malo registrov v njihovih osrednjih procesnih enotah (nezaželeno, ker bistveno upočasni večino neprekinitvene obdelave) ali pa vsaj, da jih strojna oprema ne shrani vse (to ne uspe, če programska oprema potem potrebuje programsko opremo za kompenzacijo, če preostanek shranite "ročno"). Druga tehnika vključuje porabo silicijevih vrat na "senčnih registrih": en ali več podvojenih registrov, ki jih uporablja samo programska oprema za prekinitev, morda podpira namenski sklad.


Drugi dejavniki, ki vplivajo na prekinitveno zakasnitev, so:


Cikli, potrebni za dokončanje trenutnih dejavnosti CPU. Da bi zmanjšali te stroške, imajo mikrokrmilniki običajno kratke cevovode (pogosto trije ali manj), majhne zapisovalne pufre in zagotovijo, da so daljša navodila trajna ali ponovno zagnana. Načela zasnove RISC zagotavljajo, da večina navodil opravi enako število ciklov, s čimer se izognemo potrebi po večini takšne logike nadaljevanja / ponovnega zagona.

Dolžina vsakega kritičnega odseka, ki ga je treba prekiniti. Vnos v kritični del omejuje dostop do sočasne podatkovne strukture. Ko mora do podatkovne strukture dostopati vodja prekinitve, mora kritični del blokirati to prekinitev. Skladno s tem se prekinitvena zakasnitev poveča, čeprav je prekinitev blokirana. Če obstajajo težke zunanje omejitve za zakasnitve sistema, razvijalci pogosto potrebujejo orodja za merjenje prekinitvenih latenc in sledenje ključnim odsekom, ki povzročajo upočasnitev.

Ena skupna tehnika samo blokira vse prekinitve v času kritičnega dela. To je enostavno izvajati, včasih pa so kritični deli neprijetno dolgi.

Bolj zapletena tehnika samo blokira prekinitve, ki lahko sprožijo dostop do te podatkovne strukture. To pogosto temelji na prekinitvah prednostnih nalog, ki se običajno ne ujemajo z ustreznimi sistemskimi podatkovnimi strukturami. V skladu s tem se ta tehnika uporablja predvsem v zelo omejenih okoljih.

Procesorji lahko podpirajo strojno opremo za nekatere kritične dele. Primeri vključujejo podpiranje atomskega dostopa do bitov ali bajtov v besedi ali drugih atomskih dostopovnih primitivov, kot so izključni dostopni dostopniki LDREX / STREX, uvedeni v arhitekturi ARMv6.

Prekinitev gnezdenja. Nekateri mikrokontrolerji omogočajo prekinitev z višjo prioriteto, da prekinejo nižje prednostne. To omogoča, da programska oprema upravlja latenco tako, da daje časovno kritične prekinitve večjo prednost (in s tem nižjo in bolj predvidljivo latenco) kot manj kritične.

Hitrost sprožilca. Ko pride do prekinitev, se mikrokontrolerji lahko izognejo dodatnemu ciklu shranjevanja / obnavljanja konteksta z obliko optimizacije klica.

Spodnji konec mikrokontrolerjev ponavadi podpira manj prekinitev kontrol latence kot višjih končnih.