Przerwanie sprzętu

Przerwanie sprzętowe (angielski żądanie przerwania lub IRQ ) jest przerwanie wywołane przez obwodową wejścia-wyjścia z mikroprocesora lub mikrokontrolera .

Przerwania sprzętowe są używane w komputerze, gdy zachodzi potrzeba reagowania w czasie rzeczywistym na zdarzenie asynchroniczne lub, bardziej ogólnie, w celu zaoszczędzenia czasu wykonania związanego z pętlą konsultacyjną ( pętla odpytywania ). Innym rodzajem przerwania jest przerwanie programowe ( przerwanie programowe lub IRQ w języku angielskim), generalnie wyzwalane przez specjalną instrukcję procesora. Oba rodzaje przerwań wyzwalają przełącznik kontekstu do powiązanej obsługi przerwań.

Spopularyzowany opis

Liczne zestawy wyspecjalizowanych układów elektronicznych umieszczonych w komputerach pełnią bardzo specyficzną funkcję, na przykład zarządzają wyświetlaniem na ekranie lub aktywnością dysku lub interfejsu sieciowego. Mówi się, że są wyspecjalizowani, ponieważ nie są w stanie wykonywać innych funkcji niż te, do których zostały zaprojektowane, podczas gdy główny procesor (CPU) pozostaje ich przewodnikiem i skrzyżowaniem dróg komunikacji. Komponenty w każdym zespole zwykle znajdują się razem na karcie rozszerzeń lub w obszarze płyty głównej.

Większość z tych wyspecjalizowanych jednostek nie może samodzielnie wykonywać wszystkich funkcji niezbędnych do ich misji. Dlatego czasami zwracają się o pomoc do głównego procesora, choćby w celu dostarczenia lub uzyskania informacji z innych części maszyny. W tym celu procesor może w regularnych odstępach czasu przesłuchiwać każdego z nich w celu ustalenia, czy potrzebuje pomocy, na przykład w celu dostarczenia lub uzyskania informacji.

Te powtarzające się i często niepotrzebne pytania odwracają jego uwagę od wykonywania programów użytkownika. Ponadto ułamek zasobów głównego procesora stale mobilizowanego przez te przesłuchania rośnie wraz z liczbą i siłą wyspecjalizowanych zgromadzeń.

Różne środki techniczne oszczędzają procesorowi tych okresowych zapytań, zapewniając wyspecjalizowanym jednostkom środki przyciągania jego uwagi w dowolnym momencie, tak aby mógł im pomóc, a zatem jedynie odciągając go od wykonywania programów użytkownika. ”W razie potrzeby.

W tym celu niektóre nogi (fizyczne styki) procesora są połączone z torami elektrycznymi łączącymi go z wyspecjalizowanymi zespołami. Każdy z nich może się tam zamanifestować, modyfikując poziom logiczny linii, aby wymagać pomocy, a tym samym zachęcić przetwórcę do podjęcia niezbędnych działań.

Aby odpowiedzieć na żądanie, podmiot przetwarzający musi:

Uwagi:

Tory elektryczne dostarczające te informacje do procesora nazywane są przerwania linii lub linii IRQ . W odległej przeszłości każdy z nich był w pewnym momencie powiązany z jednym wyspecjalizowanym zestawem, ale sztuczki pozwalają teraz kilku zestawom używać procesora przez tę samą linię IRQ, nawet jednocześnie.

Akronim IRQ oznacza zarówno samą koncepcję przerywania wykonywania na żądanie strony trzeciej, jak i jedno z tych żądań.

IRQ na architekturach kompatybilnych z PC

Mikrokomputery kompatybilne z IBM PC wykorzystują mikroprocesor zgodny z Intel 8088 , który ma tablicę 256 programowalnych przerwań. Spośród nich 16 jest bezpośrednio wyzwalanych przez zewnętrzne zdarzenia We / Wy. Są to nazywane IRQ n , n w zakresie od 0 do 15. Pozostałe przerwania to przerwania programowe.

Urządzenia peryferyjne (klawiatura, mysz, drukarka) muszą być w stanie działać w tym samym czasie, ale mikroprocesor jest w stanie wykonać tylko jedno przerwanie w danym czasie. Zadaniem przerwania kontrolera lub kontrolera przerwań jest więc serializować przerwania połączeń do mikroprocesora. Ponieważ niektóre urządzenia są bardziej krytyczne niż inne, na serializację wywołań przerwania wpływa numer IRQ, który nadaje priorytet. Zatem IRQ n ma pierwszeństwo przed IRQ n + 1 .

W przypadku pierwszego PC- kompatybilnych mikrokomputerów , że układy scalone 8259A i 8259B zarządzać te żądania.

IRQ i historyczna magistrala ISA

Każde przerwanie jest powiązane z urządzeniem peryferyjnym ustalonym w projekcie architektury, przy czym cztery z nich pozostają dostępne dla dodatkowych urządzeń peryferyjnych. Skonfigurowanie urządzenia peryferyjnego (na przykład karty rozszerzeń), które nie zostało uwzględnione na tym schemacie, wymaga dwóch kroków: skonfigurowania sprzętu (często poprzez umieszczenie zworek na karcie), w celu wskazania, której linii użyć, oraz skonfigurowania oprogramowania, aby wskazywało która linia jest używana przez kartę. Niezgodność między konfiguracją oprogramowania i sprzętu lub konflikt sprzętowy między dwoma urządzeniami skonfigurowanymi do korzystania z tej samej linii jest często przyczyną nieprawidłowego działania.

IRQ na wczesnych komputerach IBM PC / XT zostały zdefiniowane w następujący sposób (w malejącej kolejności według priorytetów):

Zauważ, że porty COM1 i COM3, a także porty COM2 i COM4 używają tych samych przerwań. Wydaje się to nielogiczne. W rzeczywistości możliwe jest użycie portu COM1 i portu COM3 (to samo dla COM2 i COM4) pod warunkiem, że nie są one jednocześnie aktywne.

Podczas przełączania z PC / XT na PC / AT , drugi kontroler przerwań został dodany w kaskadzie pierwszego. W związku z tym przerwania IRQ na pierwszych komputerach IBM PC / AT zostały zdefiniowane w następujący sposób (priorytet 0 jest najwyższy):

IRQ 9, 10, 11 nie są używane w ISA i są dostępne dla dodatkowych urządzeń peryferyjnych (np. Dla urządzeń peryferyjnych PCI ).

Magistrala IRQ i ISA Plug'n'Play

Specyfikacja ISA Plug and Play , współpraca między firmami Intel i Microsoft , ma na celu zautomatyzowanie przypisywania przerwań IRQ do urządzeń korzystających z magistrali ISA.

IRQ i magistrala PCI

PCI używa własnego systemu IRQ. Istnieją cztery poziomy przerwań, które mogą być współdzielone jednocześnie: INTA # (standardowy i wspólny dla wszystkich urządzeń PCI) oraz INTB # / INTC # / INTD # (dla wielofunkcyjnych urządzeń PCI wymagających wielu przerwań).

Poza magistralą PCI, przerwania PCI są konwertowane na klasyczne przerwania ISA (bez możliwości współdzielenia), na przykład na przerwania 9/10/11. Aby uniknąć konfliktów IRQ podczas tej konwersji (wspólne PCI IRQ na niepodlegające współużytkowaniu IRQ ISA), po pojawieniu się PCI: IRQ Steering została zaprojektowana dodatkowa funkcja . Zatem przerwanie ISA może być w razie potrzeby używane dla kilku urządzeń PCI (poprzez tablicę pośrednich).

APIC

Aby wyjść poza pierwsze 16 przerw IRQ, wirtualne przerwania IRQ (używane tylko z magistralą PCI i jej następcami ) są dodawane za pomocą APIC ( Advanced Programmable Interrupt Controller ). W tym kontekście Windows XP może zarządzać 26 przerwaniami IRQ, podczas gdy Windows Vista i Windows 7 zarządzają 256.

Uwagi i odniesienia

  1. Mueller, Scott , Burr-Campillo, Emmanuelle, i Alpha rozwoju , PC Architects, konserwacji i modernizacji , Pearson Education Francji, cop. 2009, 1223  s. ( ISBN  978-2-7440-4087-0 i 2744040878 , OCLC  868155822 , czytaj online )