logo

Rozdíl mezi ISR ​​a voláním funkce

V tomto článku se dozvíte o rozdílu mezi ISR a volání funkce , ale než začnete diskutovat o rozdílech, musíte stručně vědět o ISR a volání funkce.

databáze vlastností kyselin

Co je ISR?

Rutina služby přerušení (ISR) je softwarová rutina, kterou hardware vyvolává v reakci na přerušení. ISR prozkoumá přerušení, určí, jak s ním zacházet, provede je a vrátí hodnotu logického přerušení. Pokud není vyžadována žádná další manipulace, ISR upozorní jádro návratovou hodnotou. ISR musí fungovat velmi rychle, aby nedošlo ke zpomalení provozu zařízení a provozu všech ISR s nižší prioritou.

Ačkoli ISR ​​může přesouvat data z registru CPU nebo hardwarového portu do vyrovnávací paměti, obecně se spoléhá na vyhrazené vlákno přerušení (nebo úkol), nazývané vlákno služby přerušení (IST), aby provedlo většinu požadovaného zpracování. Pokud je vyžadováno další zpracování, ISR vrátí do jádra hodnotu logického přerušení. Potom mapuje číslo fyzického přerušení na hodnotu logického přerušení.

Mechanismus zpracování přerušení

Níže je uveden mechanismus zpracování přerušení v následujících krocích, například:

  • Přerušení je stav, který způsobí, že CPU pozastaví aktuální program a provede ISR. ISR je speciálně napsaný program pro obsluhu stavu, který způsobil přerušení.
  • Po obsloužení přerušení se CPU vrátí do hlavního programu, přesně v další instrukci, kde skončil.
  • Při přenosu dat řízeném přerušením, kdykoli je I/O zařízení připraveno k přenosu dat, přeruší CPU. V ISR bude přenos dat provádět CPU.
  • Tato metoda je lepší než dotazování, protože CPU nemusí ztrácet čas kontrolou stavu I/O zařízení. Klávesnice je dobrým příkladem I/O přístupu řízeného přerušením.
  • Místo kontroly CPU by klávesnice měla přerušit CPU při stisku klávesy. Nebude tak ztrácet čas opakovaným kontrolováním klávesnice, když uživatel vůbec nepíše.
  • I/O zařízení požaduje přerušení odesláním $overline{INTR}$ signál do CPU.
  • Kdykoli CPU přijme $overline{INTR}$ signál, dokončí provádění aktuální instrukce a poté provede ISR. Když je CPU připraveno, vyšle potvrzovací signál přes ZATÍMCO čára.
  • ISR se provede a CPU se vrátí do hlavního programu.
  • I/O zařízení vypínají $overline{INTR}$ signál po provedení.
Rozdíl mezi ISR ​​a voláním funkce

Například: V níže uvedeném příkladu I/O přenos pomocí I/O řízených přerušením.

  • Pokud I/O zařízení, které chce provést přenos dat s procesorem, musí procesor přerušit.
  • Přerušení je stav, který přiměje procesor provést rutinu služby přerušení.
  • V ISR bude procesor provádět přenos dat s I/O zařízením.

V tomto příkladu přerušte požadavek stisknutím klávesy na klávesnici,

  • Místo toho, aby procesor kontroloval, zda je klávesa stisknuta, klávesnice při stisku klávesy procesor přeruší.
  • V ISR klávesnice, která je součástí softwaru ovladače klávesnice, bude procesor číst data z klávesnice.
Rozdíl mezi ISR ​​a voláním funkce

Výhody ISR

Níže jsou uvedeny následující výhody ISR, jako například:

  • Asynchronní události ISR ​​mohou nastat kdykoli během provádění programu.
  • ISR uloží PC, příznaky a registry do zásobníku, zakáže všechna přerušení a načte adresu ISR.
  • ISR nemůže mít argumenty, které mu lze předat.
  • ISR nemůže vrátit hodnoty.
  • ISR umožňuje přerušení.
  • Obecně platí, že ISR je malý, protože vyžaduje nějaký čas jiného procesu.
  • Některé z ISR mají svůj vlastní stack.

Co je volání funkce?

Volání funkce se také nazývá volání podprogramu. Podprogram je sada instrukcí, které program potřebuje opakovaně. Je součástí většího programu, který je zodpovědný za provedení konkrétního úkolu. Větší program může vykonávat velké pracovní zatížení a podprogram může vykonávat pouze jednoduchý úkol, který je také nezávislý na zbývajícím programovém kódování.

Funkce je kódována tak, že ji lze volat vícekrát a z různých míst (i z jiných funkcí). Když je volána funkce, procesor může přejít na místo, kde se nachází kód funkce, a provést instrukce funkce jednu po druhé. Po dokončení funkcí se procesor vrátí přesně tam, kde skončil a bude pokračovat v provádění počínaje další instrukci.

Funkce jsou skvělým nástrojem pro opětovné použití kódu. Mnoho moderních programovacích jazyků podporuje funkce. Soubor funkcí se nazývá a knihovna . Knihovny se často používají jako prostředky pro sdílení a obchodování softwaru. V některých případech může být celý program sekvencí podprogramů.

V případě procesoru 8086 je podprogram vyvolán a VOLÁNÍ instrukce a řízení se vrací a ŽE JO návod. Zmenšuje velikost programu.

Rozdíl mezi ISR ​​a voláním funkce

Funkce musí být explicitně volána a je součástí stejného kontextu a podprocesu provádění jako její volající. Hardwarový ISR ​​není explicitně volán, ale spíše vyvolán nějakou externí událostí. Kontext aktuálního vlákna je automaticky zachován při volání přerušení před přepnutím kontextu na ISR.

příklady mooreova stroje

Na oplátku dojde ke zpětnému přepnutí kontextu, který obnoví stav procesoru před přerušením, takže provádění pokračuje od bodu přerušení. Níže jsou uvedeny některé další rozdíly mezi ISR ​​a voláním funkce.

ISR Volání funkce
Přerušení je obvykle iniciováno interním nebo externím signálovým mikroprocesorem spíše než prováděním instrukcí. ISR se provede po uložení aktuálního stavu programu do zásobníku.
ISR provádí různé úkoly v závislosti na přerušeném zařízení nebo instrukcích napsaných programátorem.
Volání funkce je vyvoláno provedením instrukcí, které provedou konkrétní úkoly a sníží velikost programu.
Hardware určuje adresu ISR.
Adresa ISR je zapsána uvnitř tabulky vektorů přerušení a adresa ISR pro každé přerušení je pevná.
Adresa podprogramu je zapsána uvnitř instrukce, která je zapsána uvnitř hlavního programového kódu.
ISR se používá pro všechny obecné úkoly. Volání funkcí se provádí pro úlohy specifické pro program.
Když dojde k přerušení během provádění aktuálního programu, procesor po provedení aktuální instrukce provede ISR. Po provedení ISR musí procesor pokračovat v programu přesně jako před přerušením.
K tomu se ukládá obsah PC, registry µP a některé stavové podmínky. Soubor všech stavových bitových podmínek v mikroprocesoru se nazývá PSW (program status word).
  • Během cyklu přerušení je obsah PC a PSW vytlačen do zásobníku. Adresa větve pro konkrétní přerušení je pak předána PC a do stavového registru je načten nový PSW.
  • Poslední instrukce v ISR je návrat z přerušené instrukce. Když je tato instrukce vykonána, starý PSW a návratová adresa jsou vytaženy ze zásobníku.
Zde je na zásobníku uloženo pouze PC pro získání adresy další instrukce v hlavním programu.
Podprogram musí mít přístup k datům z volajícího podprogramu a vracet výsledky do tohoto podprogramu. Proto se provádí parametry podprogramu a propojení dat.
To lze provést prostřednictvím
  • Registr AC lze použít pro jeden vstupní parametr a jeden výstupní parametr. V počítačích s více procesorovými registry lze tímto způsobem předat více parametrů.
  • Dalším způsobem, jak předat data podprogramu, je paměť.