Żądanie przerwania (architektura PC)

W komputerze żądanie przerwania (lub IRQ ) jest sygnałem sprzętowym wysyłanym do procesora, który tymczasowo zatrzymuje uruchomiony program i pozwala na uruchomienie specjalnego programu, programu obsługi przerwań . Przerwania sprzętowe są używane do obsługi zdarzeń, takich jak odbieranie danych z modemu lub karty sieciowej , naciśnięcia klawiszy lub ruchy myszy.

Linie przerwań są często identyfikowane przez indeks w formacie IRQ , po którym następuje liczba. Na przykład w rodzinie programowalnych kontrolerów przerwań (PIC) Intel 8259 istnieje osiem wejść przerwań, powszechnie określanych jako IRQ0 do IRQ7 . W systemach komputerowych opartych na architekturze x86 , w których używane są dwa takie układy PIC , połączony zestaw linii jest określany jako IRQ0 do IRQ15 . Technicznie linie te noszą nazwę IR0 przez IR7 i linie na magistrali ISA , do których były historycznie przyłączone, noszą nazwy od IRQ0 do IRQ15 (chociaż historycznie wraz ze wzrostem liczby urządzeń sprzętowych całkowita możliwa liczba przerwań została zwiększona za pomocą żądań kaskadowych, wykonując jedno z Numery IRQ są kaskadowane do innego zestawu lub zestawów ponumerowanych IRQ, obsługiwanych przez jeden lub więcej kolejnych kontrolerów).

Nowsze systemy x86 zawierają zaawansowany programowalny kontroler przerwań (APIC), który jest zgodny z architekturą Intel APIC. Te APIC obsługują interfejs programowania do 255 fizycznych sprzętowych linii IRQ na APIC, przy czym typowy system implementuje obsługę tylko około 24 łącznych linii sprzętowych.

We wczesnych latach komputerów osobistych zarządzanie przerwaniami IRQ często budziło obawy użytkowników. Wraz z wprowadzeniem plug and play zostało to złagodzone dzięki automatycznej konfiguracji.

Przegląd

Podczas pracy ze sprzętem komputera osobistego, instalowania i usuwania urządzeń system opiera się na żądaniach przerwań. Istnieją ustawienia domyślne, które są konfigurowane w systemie BIOS i rozpoznawane przez system operacyjny. Te ustawienia domyślne mogą być zmieniane przez zaawansowanych użytkowników. Nowoczesna plug and play nie tylko zmniejszyła potrzebę dbania o te ustawienia, ale także praktycznie wyeliminowała ręczną konfigurację.

przerwań x86

Wczesne komputery PC z procesorami Intel 8086/8088 miały tylko jeden PIC i dlatego były ograniczone do ośmiu przerwań. Zostało to rozszerzone do dwóch PIC wraz z wprowadzeniem komputerów PC opartych na 286.

Zazwyczaj w systemach korzystających z Intel 8259 PIC używanych jest 16 przerwań IRQ. IRQ od 0 do 7 są zarządzane przez jeden Intel 8259 PIC, a IRQ od 8 do 15 przez drugi Intel 8259 PIC. Pierwszy PIC, master, jest jedynym, który bezpośrednio sygnalizuje CPU. Drugi PIC, slave, zamiast tego wysyła sygnał do mastera na swojej linii IRQ 2, a master przekazuje sygnał do CPU. Dlatego dla sprzętu dostępnych jest tylko 15 linii żądań przerwania.

W interfejsie APIC z systemami IOAPIC dostępne są zwykle 24 przerwania IRQ, a dodatkowe 8 IRQ jest używanych do kierowania przerwań PCI, co pozwala uniknąć konfliktu między dynamicznie konfigurowanymi przerwaniami PCI a statycznie konfigurowanymi przerwaniami ISA. We wczesnych systemach APIC z tylko 16 przerwaniami IRQ lub tylko z kontrolerami przerwań Intel 8259 linie przerwań PCI były kierowane do 16 przerwań IRQ za pomocą PIR (routingu przerwań PCI) zintegrowanego z BIOS-em. W APIC z systemami MSI zazwyczaj dostępnych jest 224 przerwań.

Najłatwiejszym sposobem przeglądania tych informacji w systemie Windows jest użycie Menedżera urządzeń lub Informacji o systemie (msinfo32.exe). W systemie Linux odwzorowania IRQ można przeglądać, wykonując polecenie cat /proc/interrupts lub używając narzędzia procinfo .

Mistrz PIC

  • IRQ 0 – zegar systemowy (nie można go zmienić)
  • IRQ 1 – klawiatura na porcie PS/2 (nie można zmienić)
  • IRQ 2 – kaskadowe sygnały z IRQ 8–15 (wszystkie urządzenia skonfigurowane do używania IRQ 2 będą faktycznie używać IRQ 9)
  • IRQ 3 – kontroler portu szeregowego dla portu szeregowego 2 (współdzielony z portem szeregowym 4, jeśli jest obecny)
  • IRQ 4 – kontroler portu szeregowego dla portu szeregowego 1 (współdzielony z portem szeregowym 3, jeśli jest obecny)
  • IRQ 5 – port równoległy 3 lub karta dźwiękowa
  • IRQ 6 – kontroler dyskietek
  • IRQ 7 – port równoległy 1 (współdzielony z portem równoległym 2, jeśli jest obecny). Jest używany do drukarek lub dowolnego portu równoległego, jeśli nie ma drukarki. Może być również potencjalnie współdzielony z dodatkową kartą dźwiękową przy starannym zarządzaniu portem.

Niewolnik PIC

Konflikty

komputerach osobistych kompatybilnych z IBM konflikt przerwań IRQ był kiedyś powszechnym błędem sprzętowym, otrzymywanym, gdy dwa urządzenia próbowały użyć tego samego żądania przerwania (lub IRQ) do zasygnalizowania przerwania programowalnemu kontrolerowi przerwań (PIC). PIC oczekuje przerwań tylko od jednego urządzenia na linię, więc więcej niż jedno urządzenie wysyłające sygnały IRQ wzdłuż tej samej linii generalnie spowoduje konflikt IRQ, który może zawiesić komputer .

Na przykład, jeśli karta rozszerzeń modemu zostanie dodana do systemu i przypisana do IRQ4, tradycyjnie przypisanego do portu szeregowego 1, prawdopodobnie spowoduje to konflikt IRQ. Początkowo IRQ 7 był powszechnym wyborem dla kart dźwiękowych , ale później zastosowano IRQ 5, gdy stwierdzono, że IRQ 7 zakłóca port drukarki (LPT1). Porty szeregowe są często wyłączane, aby zwolnić linię IRQ dla innego urządzenia. IRQ 2/9 to tradycyjna linia przerwań dla portu MIDI MPU-401, ale jest to w konflikcie z ACPI przerwanie kontroli systemu (SCI jest podłączone na stałe do IRQ9 na chipsetach Intela); oznacza to, że karty ISA MPU-401 z przewodowym przerwaniem IRQ 2/9 oraz sterowniki urządzeń MPU-401 z zakodowanym na stałe przerwaniem IRQ 2/9 nie mogą być używane w trybie sterowanym przerwaniami w systemie z włączonym ACPI.

W pewnych warunkach dwa urządzenia ISA mogą dzielić to samo przerwanie IRQ, o ile nie były używane jednocześnie. Aby rozwiązać ten problem, późniejsza ISA PnP i PCI umożliwia współdzielenie IRQ. PCI Express nie ma fizycznych linii przerwań i używa przerwań sygnalizowanych komunikatami (MSI) do systemów operacyjnych, jeśli są dostępne.

Zobacz też

Dalsza lektura

Linki zewnętrzne