www.all2know.com Google WWW All2know sv
  Huvudsida Huvudsida | Om Om 
  Navigation
» Huvudsida
» Artikelkategorier
» Innehålls listor
» Alfabetiskt index
» Slumpmässig sida
» Redigera Extern länk
Ändrad: 2007-10-05
  Länkar hit 
RTOS
Periferienhet (mikroprocessor)
GPIO (mikroprocessor)
Interrupt request
MOS Technology 6507
OSEck
  Andra språk 
fiKeskeytyssignaali
frInterruption (informatique)
Kategori: Datorteknik

Avbrott (mikroprocessor)

Avbrott (engelska interrupt) är en vital del i en mikroprocessors funktionalitet. Avbrott delas upp i två kategorier, dels mjukvaruavbrott vilka används för olika typer av emuleringar, dels hårdvaruavbrott som genereras av datorsystemets periferienheterer. Avbrott är funktionellt besläktade med undantag vilka uppstår när mikroprocessorn detekterar feltillstånd i programvaran eller i hårdvaran.

1 Funktion
2 Mjukvaruavbrott
3 HÃ¥rdvaruavbrott

Funktion

När ett avbrott sker brukar mikroprocessorn byta stack till en speciell avbrottsstack för att undvika att minnet tar slut för det program som just då kör. För att komma ihåg vad den höll på med lagras innehållet i vitala register på avbrottsstacken. De register som sparas undan brukar inkludera statusord, stackpekare och programräknare. Beroende på vilken typ av avbrott det är så körs olika avbrottsrutiner vilka automatiskt slås upp i en avbrottstabeller av mikroprocessorn. Denna avbrottstabell modifieras exempelvis när man installerar drivrutin i sitt operativsystem.

Om mikroprocessorn stödjer flera avbrottsnivåer brukar den modifiera statusordet för att slippa få nya avbrott som är lika viktiga eller oviktigare. På så sätt får den jobba klart med avbrottsrutinen eller tills ett nytt avbrott som är viktigare inträffar.

När avbrottsrutinen är klar avslutar mikroprocessorn det hela med att återställa de på stacken undanlagrade registren. Det är avbrottsrutinens ansvar att lagra undan alla andra register som den använder sig av. När mikroprocessorn återställt alla register så fortsätter programmet som körde att köra som om ingenting har hänt sedan avbrottet inträffade.

Mjukvaruavbrott

genereras av speciella instruktioner som placerats in i programmen. Detta används exempelvis för att emulera att det finns en flyttalprocessor. I princip är detta samma sak som ett feltillstånd eftersom en flyttalsinstruktion kan betraktas som ett fel om det saknas flyttalsdel i mikroprocessorn. Avbrottstabellen pekar då på avbrottsrutiner som utför flyttalsberäkningen och returnerar svaret som om en flyttalsdel fanns tillgänglig. Flyttalsemulering ger portabel programkod mellan datorsystem med och utan flyttalsdelar men har den nackdelen att det tar mycket längre tid för resultatet att beräknas.

En annan användning av mjukvaruavbrott är att sätta brytpunkter vid felsökning av mjukvara. När programmet når brytpunkten avbryts detta och istället väcks en felsökare, även kallad debugger, upp.

HÃ¥rdvaruavbrott

genereras av periferienheterer och beter sig i princip på samma sätt som mjukvaruavbrott. Skillnaden är att nu vill en extern eller intern enhet i datorsystemet att man skall skicka eller ta emot data. Detta måste ske inom en viss tid för att vara optimalt. Om man inte läser ut inkommande data tillräckligt fort riskerar det att skrivas över av ännu nyare data. Om man skickar ut data till en periferienhet är det vanligt att man konfigurerar denna att generera ett avbrott när den har skickat klart så man kan mata in mer data. Utan avbrott måste man kontrollera, eller polla, enheterna med jämna mellanrum vilket brukare anses dåligt eftersom det slösar på prestanda i datorsystemet.

Från Wikipedia, den fria encyklopedin. Extern länk. Denna sida är publicerad under GNU Free Documentation License Extern länk.