přerušení mohou být implementována v hardwaru jako samostatná součást s řídicími linkami nebo mohou být integrována do paměťového subsystému.
Pokud je implementován v hardwaru, jako výraznou komponentu, řadič přerušení obvodu, jako jsou IBM PC Programovatelný Řadič Přerušení (PIC) může být připojen mezi přerušení zařízení a procesor je přerušení pin multiplex několik zdrojů přerušení na jeden nebo dva CPU linky jsou obvykle k dispozici. Pokud je implementován jako součást paměťového řadiče, přerušení jsou mapována do adresního prostoru paměti systému.
Shared IRQsEdit
více zařízení může sdílet přerušovací linku spuštěnou na okraji, pokud jsou navržena. Přerušovací vedení musí mít pull-down nebo pull-up odpor, takže když není aktivně poháněn, usadí se do neaktivního stavu, což je jeho výchozí stav. Zařízení signalizují přerušení krátkým řízením linky do výchozího stavu a nechávají linku plavat (aktivně ji nejezdí), když signalizuje přerušení. Tento typ připojení se také označuje jako otevřený kolektor. Linka pak nese všechny impulsy generované všemi zařízeními. (To je analogické s tažným kabelem na některých autobusech a trolejích, které může každý cestující vytáhnout, aby signalizoval řidiči, že žádají o zastavení.) Přerušovací pulzy z různých zařízení se však mohou sloučit, pokud se vyskytnou blízko v čase. Aby nedocházelo ke ztrátě přerušení, musí se CPU spustit na zadní hraně pulsu (např. stoupající hrana, pokud je linka vytažena nahoru a poháněna nízko). Po zjištění přerušení musí CPU zkontrolovat požadavky na servis všech zařízení.
Edge-triggered interrupts netrpí problémy, které mají level-triggered přerušení se sdílením. Služba Zařízení s nízkou prioritou může být libovolně odložena, zatímco přerušení ze zařízení s vysokou prioritou jsou nadále přijímána a servisována. Pokud existuje zařízení, které CPU neví, jak obsluhovat, což může vyvolat falešná přerušení, nebude to rušit signalizaci přerušení jiných zařízení. Nicméně, to je snadné pro hranou spouštěné přerušit chybět – například, když jsou přerušení maskována za období – a pokud tam je nějaký druh hardware západky, která zaznamenává události, že je nemožné obnovit. Tento problém způsobil mnoho „uzamčení“ v časném hardwaru počítače, protože procesor nevěděl, že se očekává, že něco udělá. Více moderní hardware často má jednu nebo více přerušení stav registrů, které západky přerušení žádosti; dobře napsané edge-driven obsluha přerušení kódu můžete zkontrolovat tyto registry, aby zajistily žádné události jsou minul.
starší Industry Standard Architecture (ISA) autobus používá edge-vyvolalo přerušení, aniž by nařizovala, že zařízení bude moci sdílet IRQ linek, ale všechny tradiční ISA, základní desky obsahují pull-up rezistory na jejich IRQ linek, takže dobře vychovaný ISA zařízení, sdílení IRQ linky by měly fungovat v pořádku. Paralelní port také používá přerušení spouštěná hranou. Mnoho starších zařízení předpokládá, že mají exkluzivní použití IRQ linek, takže je elektricky nebezpečné je sdílet.
existují 3 způsoby, jak lze zvýšit více zařízení „sdílení stejného řádku“. První je výhradním vedením (spínáním) nebo exkluzivním připojením (k pinům). Další je autobusem (všechny připojené na stejnou linku): karty na sběrnici musí vědět, kdy mají mluvit a nemluvit (tj. sběrnice ISA). Mluvení lze spustit dvěma způsoby: akumulační západkou nebo logickými branami. Logické brány očekávají nepřetržitý tok dat, který je monitorován pro klíčové signály. Akumulátory se spouštějí pouze tehdy, když vzdálená strana vzrušuje bránu za prahem, takže není nutná žádná sjednaná rychlost. Každý z nich má své výhody rychlosti versus vzdálenosti. Spoušť je obecně metoda, při které je detekována excitace: stoupající hrana, klesající hrana, práh (osciloskop může vyvolat širokou škálu tvarů a podmínek).
spouštění pro přerušení softwaru musí být zabudováno do softwaru (jak v OS, tak v aplikaci). Aplikace “ C “ má v záhlaví spouštěcí tabulku (tabulku funkcí), o které aplikace i operační systém vědí a vhodně ji používají, která nesouvisí s hardwarem. Nezaměňujte to však s hardwarovými přerušeními, která signalizují CPU (CPU nařídí software z tabulky funkcí, podobně jako softwarové přerušení).
Potíže se sdílením přerušení linesEdit
Více zařízení, sdílení přerušení linky (žádné spouštění styl) vše působí jako rušivé zdroje přerušení s ohledem na každého jiný. U mnoha zařízení na jedné lince roste pracovní zátěž při přerušení servisu úměrně čtverci počtu zařízení. Proto je výhodné rozložit zařízení rovnoměrně napříč dostupnými přerušovacími linkami. Nedostatek přerušení linky je problém ve starší systém vzorů, kde přerušení linky jsou odlišné fyzické vodiče. Message-signaled přeruší, kde přerušení linky je virtuální, jsou oblíbené v nové systémové architektury (jako je PCI Express) a zmírnit tento problém do značné míry.
Některá zařízení se špatně navrženým programovacím rozhraním neposkytují žádný způsob, jak určit, zda požadovali službu. Mohou se zamknout nebo jinak chovat, pokud jsou obsluhovány, když to nechtějí. Taková zařízení nemohou tolerovat rušivá přerušení, a proto také nemohou tolerovat sdílení přerušovací linky. ISA karty, kvůli často levnému designu a konstrukci, jsou pro tento problém notoricky známé. Taková zařízení se stávají mnohem vzácnějšími, protože hardwarová logika je levnější a nové systémové architektury vyžadují sdílení přerušení.
HybridEdit
některé systémy používají hybrid signalizace spouštěné úrovní a hranou. Hardware nejen hledá hranu, ale také ověřuje, že signál přerušení zůstává aktivní po určitou dobu.
běžně se používá hybridní přerušení pro vstup NMI (non-maskable interrupt). Protože NMI obecně signalizují hlavní – nebo dokonce katastrofické-události systému, dobrá implementace tohoto signálu se snaží zajistit, aby přerušení bylo platné ověřením, že zůstává aktivní po určitou dobu. Tento 2-krokový přístup pomáhá eliminovat falešná přerušení ovlivňující systém.
Zpráva-signaledEdit
message-signaled přerušit nepoužívá fyzické přerušení linky. Místo toho zařízení signalizuje svůj požadavek na službu zasláním krátké zprávy přes nějaké komunikační médium, obvykle počítačovou sběrnici. Zpráva může být typu vyhrazeného pro přerušení, nebo může být nějakého již existujícího typu, například zápisu do paměti.
Message-signalizuje přerušení se chovají velmi podobně jako okraj-vyvolalo přerušení, v přerušení je momentální signál, spíše než kontinuální stavu. Software pro zpracování přerušení zachází s těmito dvěma v podstatě stejným způsobem. Typicky, více pending message-signaled přeruší se stejná zpráva (stejné virtuální přerušení linky), se mohou sloučit, stejně jako úzce rozložené hranou spouštěné přerušení mohou sloučit.
vektory přerušení signalizované zprávou mohou být sdíleny v rozsahu, v jakém lze sdílet základní komunikační médium. Nevyžaduje se žádné další úsilí.
protože identita přerušení je indikována vzorem datových bitů, které nevyžadují samostatný fyzický vodič, lze efektivně zpracovat mnoho odlišnějších přerušení. To snižuje potřebu sdílení. Přerušení zprávy mohou být také předány přes sériovou sběrnici, nevyžaduje žádné další linky.
PCI Express, sériová počítačová sběrnice, používá výlučně přerušení signalizovaná zprávou.
DoorbellEdit
push tlačítko analogie aplikovat na počítačové systémy, termín zvonek nebo zvonek přerušení je často používán k popisu mechanismu, kterým softwarový systém může signalizovat, nebo oznámit počítač hardwarové zařízení, které tam je nějaká práce je třeba udělat. Softwarový systém obvykle umístí data do některých známých a vzájemně dohodnutých paměťových míst a“ zazvoní na zvonek “ zapsáním na jiné paměťové místo. Toto odlišné umístění paměti se často nazývá oblast zvonku a v této oblasti může být dokonce více zvonků sloužících různým účelům. Je to tento akt zápisu do oblasti paměti zvonku, který „zazvoní na zvonek“ a upozorní hardwarové zařízení, že data jsou připravena a čekají. Hardwarové zařízení by nyní vědělo, že data jsou platná a lze s nimi jednat. To by obvykle zapisovat data na pevný disk, nebo je poslat po síti, nebo šifrování, atd.
termín přerušení zvonku je obvykle nesprávné pojmenování. To je podobné přerušení, protože to způsobí, že některé práce, které zařízení; nicméně, zvonek regionu je někdy implementováno jako dotázaných regionu, někdy zvonek regionu, píše prostřednictvím fyzické zařízení registruje, a někdy zvonek regionu je napojená přímo na fyzické zařízení registrů. Při zápisu nebo přímo do registrů fyzických zařízení to může způsobit skutečné přerušení na centrální procesorové jednotce (CPU) zařízení, pokud ji má.
přerušení zvonku lze porovnat s přerušeními Signalizovanými zprávami, protože mají určité podobnosti.
Multiprocessor IPIEdit
In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).