Intel 8259 - Intel 8259

Detailní záběr na IRQ čip Intel 8259A z PC XT.
Pinout

Intel 8259 je programovatelný řadič přerušení (PIC), určené pro Intel 8085 a Intel 8086 mikroprocesory . Počáteční část byla 8259, novější verze s příponou A byla kompatibilní a použitelná s procesory 8086 nebo 8088 . 8259 kombinuje více vstupních zdrojů přerušení do jediného výstupu přerušení do hostitelského mikroprocesoru, čímž rozšiřuje úrovně přerušení dostupné v systému nad jednu nebo dvě úrovně nalezené na čipu procesoru. 8259A byl řadič přerušení sběrnice ISA v původním počítači IBM PC a IBM PC AT .

Model 8259 byl představen jako součást rodiny Intel MCS 85 v roce 1976. Model 8259A byl zahrnut do původního počítače představeného v roce 1981 a byl udržován PC / XT, když byl představen v roce 1983. Druhý model 8259A byl přidán zavedením PC / AT . Model 8259 koexistuje s architekturou Intel APIC od jeho zavedení v počítačích Symmetric Multi-Processor PC. Moderní počítače začaly postupně rušit 8259A ve prospěch architektury Intel APIC . I když už není samostatný čip, rozhraní 8259A je stále poskytováno Platform Controller Hub nebo Southbridge chipset na moderních základních deskách x86 .

Funkční popis

Hlavní signální piny na 8259 jsou následující: osm linek požadavku na přerušení vstupu s názvem IRQ0 až IRQ7, řádek výstupu požadavku na přerušení s názvem INTR, řádek pro potvrzení přerušení s názvem INTA, D0 až D7 pro komunikaci úrovně přerušení nebo vektorového posunu. Mezi další připojení patří CAS0 až CAS2 pro kaskádování mezi 8259 s.

Až osm podřízených 8259s mohou být kaskádovitě na master 8259 poskytovat až 64 IRQ. 8259 jsou kaskádovitě propojeny linkou INT jedné podřízené 8259 s linkou IRQ jedné hlavní 8259.

Existují tři registry, Interrupt Mask Register (IMR), Interrupt Request Register (IRR) a In-Service Register (ISR). IRR udržuje masku aktuálních přerušení, které čekají na potvrzení, ISR udržuje masku přerušení, které čekají na EOI, a IMR udržuje masku přerušení, kterým by nemělo být zasláno potvrzení.

Operace End Of Interrupt (EOI) podporují specifické EOI, nespecifické EOI a automatické EOI. Konkrétní EOI určuje úroveň IRQ, kterou uznává v ISR. Nespecifická EOI resetuje úroveň IRQ v ISR. Auto-EOI resetuje úroveň IRQ v ISR ihned po potvrzení přerušení.

Režim spouštění hrany a úrovně přerušení podporuje model 8259A. Jsou podporovány režimy s pevnou prioritou a prioritou otáčení.

8259 může být nakonfigurován pro práci s 8080/8085 nebo 8086/8088. Na 8086/8088 poskytne řadič přerušení číslo přerušení na datové sběrnici, když dojde k přerušení. Cyklus přerušení 8080/8085 vydá na datové sběrnici tři bajty (odpovídá instrukci CALL v instrukční sadě 8080/8085).

8259A poskytuje další funkce ve srovnání s 8259 (zejména režim s vyrovnávací pamětí a režim spouštěný na úrovni) a je s ním kompatibilní.

Úvahy o programování

DOS a Windows

NEC D8259AC, který se používá na původní základní desce IBM PC .

Programování 8259 ve spojení s DOS a Microsoft Windows přineslo řadu matoucích problémů kvůli zpětné kompatibilitě, která sahá až k původnímu počítači představenému v roce 1981.

První číslo je víceméně kořenem druhého čísla. Očekává se, že ovladače zařízení DOS pošlou nespecifický EOI na 8259s, když dokončí servis svého zařízení. To zabrání použití kteréhokoli z ostatních režimů EOI 8259 v systému DOS a vylučuje rozlišení mezi přerušeními zařízení přesměrovanými z hlavní 8259 na podřízenou 8259.

Druhé číslo se zabývá využitím IRQ2 a IRQ9 od zavedení slave 8259 v PC / AT. Výstup INT slave 8259 je připojen k IR2 nadřízeného. Linka IRQ2 sběrnice ISA, původně připojená k tomuto IR2, byla přesměrována na IR1 otroka. Stará linka IRQ2 tedy nyní generuje IRQ9 v CPU. Aby byla zajištěna zpětná kompatibilita s ovladači zařízení DOS, které jsou stále nastaveny pro IRQ2, je BIOS pro IRQ9 nainstalován obslužný program, který přesměruje přerušení na původní obslužný program IRQ2.

Na PC BIOS (a tedy i DOS) tradičně mapuje hlavní požadavky na přerušení 8259 (IRQ0-IRQ7) na přerušení vektorového posunu 8 (INT08-INT0F) a podřízený 8259 (v PC / AT a novějších) požadavky na přerušení (IRQ8 -IRQ15) k přerušení vektorového posunu 112 (INT70-INT77). To bylo provedeno navzdory tomu, že prvních 32 (INT00-INT1F) vektorů přerušení bylo rezervováno procesorem pro interní výjimky (toto bylo z nějakého důvodu ignorováno pro design PC). Kvůli vyhrazeným vektorům pro výjimky většina ostatních operačních systémů mapuje (alespoň hlavní) 8259 IRQ (pokud se používají na platformě) na jiný offset základního vektoru přerušení.

Jiné operační systémy

Protože většina ostatních operačních systémů umožňuje změny v očekávání ovladačů zařízení, lze použít dalších 8259 provozních režimů, například Auto-EOI. To je zvláště důležité pro moderní hardware x86, ve kterém může při komunikaci s 8259s strávit značné množství času zpožděním I / O adresního prostoru. To také umožňuje řadu dalších optimalizací v synchronizaci, jako jsou kritické sekce, v systému x86 s více procesory s 8259s.

Režimy spouštěné hranou a úrovní

Protože sběrnice ISA nepodporuje přerušení spouštěná na úrovni, režim spouštěný na úrovni nemusí být použit pro přerušení připojená k zařízením ISA. To znamená, že na PC / XT, PC / AT a kompatibilních systémech musí být 8259 naprogramován pro režim spouštěný hranou . V systémech MCA používají zařízení přerušení spouštěná na úrovni a řadič přerušení je pevně zapojen, aby vždy pracoval v režimu spouštěném na úrovni. Na novějších systémech EISA, PCI a novějších ovládají registry na úrovni / úrovni (ELCR) režim na linku IRQ, čímž je režim 8259 pro takové systémy s ISA sběrnicemi irelevantní. ELCR je naprogramován BIOSem při spuštění systému pro správnou funkci.

ELCR jsou umístěny 0x4d0 a 0x4d1 v x86 I / O adresním prostoru. Jsou široké 8 bitů, přičemž každý bit odpovídá IRQ z 8259. Když je bit nastaven, IRQ je v režimu spouštěném na úrovni; jinak je IRQ v režimu spouštěném hranou.

Falešné přerušení

8259 generuje rušivé přerušení v reakci na řadu podmínek.

První je linka IRQ, která je zrušena před potvrzením. K tomu může dojít kvůli šumu na linkách IRQ. V režimu spouštěném hranou musí šum udržovat linku v nízkém stavu po dobu 100 ns. Když se hluk zmenší, pull-up rezistor vrátí linku IRQ na vysokou, čímž generuje falešné přerušení. V režimu spouštěném úrovní může šum způsobit vysokou úroveň signálu na INTR lince systému. Pokud systém pošle požadavek na potvrzení, 8259 nemá co vyřešit, a proto pošle IRQ7 jako odpověď. Tento první případ vygeneruje falešné IRQ7.

Podobný případ může nastat, když není správně synchronizováno odhalení 8259 a zrušení deklarace vstupu IRQ. V mnoha systémech je vstup IRQ deaktivován zápisem I / O a procesor nečeká, dokud zápis nedosáhne I / O zařízení. Pokud procesor pokračuje a odmaskuje IRQ 8259 před zrušením vstupu IRQ, 8259 znovu potvrdí INTR. V době, kdy procesor rozpozná tento INTR a vydá potvrzení ke čtení IRQ z 8259, může být IRQ vstup zrušen a 8259 vrátí falešný IRQ7.

Druhým je IRQ2 hlavní 8259, která je aktivní na vysoké úrovni, když jsou podřízené linky IRQ 8259 neaktivní na sestupné hraně potvrzení přerušení. Tento druhý případ vygeneruje falešné IRQ15, ale je vzácný.

PC / XT a PC / AT

Systém PC / XT ISA měl jeden řadič 8259, zatímco systémy PC / AT a novější měly dva řadiče 8259, hlavní a podřízený. IRQ0 až IRQ7 jsou přerušovací linky hlavní 8259, zatímco IRQ8 až IRQ15 jsou přerušovací linky podřízené 8259. Štítky na čepech na 8259 jsou IR0 až IR7. IRQ0 až IRQ15 jsou názvy linek sběrnice ISA, ke kterým jsou připojeny 8259.

Varianty

Modelové číslo Technologie Teplotní rozsah Datum vydání Cena (USD)
ID8259 -40 ° C až + 85 ° C Březen / duben 1979 23,15 $
M8259 Válečný Březen / duben 1979 95,00 $
82C59A CMOS Červenec / srpen 1984

Viz také

Reference

  1. ^ http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf
  2. ^ Intel Corporation, „8086 Available for industrial environment“, Intel Preview Special Issue: 16-Bit Solutions, květen / červen 1980, strana 29
  3. ^ Intel Corporation, „Součást mikropočítače: Nová průmyslová řada produktů odpovídá poptávce po vysoce spolehlivých součástkách pro práci v průmyslových aplikacích.“, Intel Preview, březen / duben 1979, str. 11
  4. ^ Intel Corporation, „Military Products: Intel marches on!“, Intel Preview, březen / duben 1979, str. 19
  5. ^ Intel Corporation, „NewsBit: Intel Licences Oki on CMOS verze několika produktů“, Solutions, červenec / srpen 1984, strana 1.
  • Gilluwe, Frank van. PC bez dokladů . AW Developers Press, 1997. ISBN  0-201-47950-8
  • McGivern, Joseph. Přerušení řízený design PC systému . Annabooks, 1998. ISBN  0-929392-50-7
  • IBM Personal System / 2 Hardware Interface Technical Reference - Architectures . IBM, 1990. Publikace IBM 84F8933

externí odkazy