IO-APIC

IO-APIC a rövidítés az I / O vezérlővel , amely egy programozható megszakítás vezérlő.

Ez egy Intel architektúra kezelni megszakítások a többprocesszoros számítógépek .

Az Intel 82093AA chip valósítja meg, és minden Intel SMP kártyán megtalálható .

Ez az IRQ problémák megoldásának számos kísérlete . Nem szabad összetéveszteni az ACPI-vel ( Advanced Configuration and Power Interface ).

A rendszerszintű nézetben az APIC két részből áll. Az egyikük a processzorban van, és a neve "Local APIC", míg a másik az I / O rendszer része, az "IOAPIC" névvel. Ezeket egy dedikált APIC busz köti össze. A Local APIC kezeli az összes helyi megszakítást a helyi processzor számára. Ezenkívül képes az APIC buszon processzorok közötti megszakításokat elfogadni és generálni. Az IOAPIC egység tartalmaz egy átirányítási táblázatot. Buszon keresztül irányítja a megszakításokat az egyik helyi APIC-ből a másikba. Az APIC mechanizmus lehetővé teszi a megszakítások kezelését többprocesszoros környezetben, míg a régi PIC mechanizmus nem.

Ez a rendszer meghibásodásának oka lehet, mivel egyes operációs rendszerek egyes verziói nem kezelik megfelelően. Ha igen, az IO-APIC letiltása megoldhatja a problémát. Mert Linux , meg kell próbálni a „noapic” kernel paraméter; a FreeBSD esetében a "hint.apic.0.disabled" kernel környezeti változó

Linux alatt az IO-APIC-vel kapcsolatos problémák az egyik oka a hibaüzeneteknek a "hamis 8259A megszakítás: IRQ7" kapcsán. Az is lehetséges, hogy az IO-APIC lassúságot okoz a különböző adathordozók (például merevlemez-meghajtó USB-kulccsal) közötti másoláskor, vagy problémákat okoz a hálózati interfészekkel a via-rhine illesztőprogram alapján , ami átviteli időtúllépést okoz. Az egyprocesszoros magok APIC engedélyezésével különféle megszakításokat okozhatnak.

A megvalósítás részletei

Minden processzor tartalmaz egy helyi APIC-t, és több I / O APIC lehet elosztva a rendszer többi részében (például a chipsetben vagy a PCI-PCIe hidakban). Az ezeket a különböző APIC-eket összekötő busz "logikus" busz, abban az értelemben, hogy nem "új dedikált vezetékek" (a PCI esetében mindig létezik a klasszikus megszakító vezeték, a PCIe esetében pedig a megszakítások üzenetként utazhatnak, MSI).

Minden I / O APIC (amelynek 24 bemenete van) a BIOS-hoz hozzárendelhet egy "bázist", amely meghatározza, hogy mely megszakítási számokat generálja: így egy I / O APIC, amelynek 0 alapja van, 0+ megszakítást generál. 0–0 + 23 = 23, míg egy I / O APIC, amelynek alapja 24, a megszakításokat 24 + 0 = 24–24 + 23 = 47, stb. Generálja ...

Ha a rendszer jól megtervezett (ami nem feltétlenül minden alaplap esetében van így), akkor minden eszközhöz egyedi megszakítási szám rendelhető, amelyet nem kell megosztania más eszközökkel.

Habár a modern operációs rendszerek (Windows XP vagy Linux) képesek kezelni a megszakítások megosztását, ez a mechanizmus érdekes a valós idejű rendszerek kialakítása szempontjából, ahol el akarják kerülni a perifériák felesleges kihallgatását, hogy megtudják, vajon éppen ő hozta létre a megszakítást : ha a megszakításokat nem osztják meg, amikor megkapunk egy adott megszakítási számot, azonnal tudjuk, melyik eszköz jelezte ezt a megszakítást, ami csökkenti a késést és növeli a kezelés determinizmusát.

Külső linkek