Maybaygiare.org

Blog Network

Przerwania

mogą być implementowane w sprzęcie jako odrębny komponent z liniami sterującymi lub mogą być zintegrowane z podsystemem pamięci.

jeśli jest zaimplementowany w sprzęcie jako odrębny komponent, Obwód kontrolera przerwań, taki jak programowalny kontroler przerwań (pic) IBM PC, może być podłączony między urządzeniem przerywającym a pinem przerwania procesora, aby multipleksować kilka źródeł przerwań na jedną lub dwie zazwyczaj dostępne linie procesora. Jeśli są implementowane jako część kontrolera pamięci, przerwania są mapowane do przestrzeni adresowej pamięci systemu.

współdzielony IRQsEdit

wiele urządzeń może współdzielić linię przerwań wywołaną krawędzią, jeśli są do tego przeznaczone. Linia przerwań musi mieć rezystor pull-down lub pull-up, aby gdy nie jest aktywnie napędzana, ustawiała się do stanu nieaktywnego, który jest stanem domyślnym. Urządzenia sygnalizują przerwanie przez krótkotrwałe doprowadzenie linii do stanu niezwiązanego z domyślnym, i niech linia unosi się (nie napędza aktywnie), gdy nie sygnalizuje przerwania. Ten typ połączenia jest również określany jako otwarty kolektor. Następnie linia przenosi wszystkie impulsy generowane przez wszystkie urządzenia. (Jest to analogiczne do linki ciągnącej w niektórych autobusach i wózkach, którą każdy pasażer może pociągnąć, aby zasygnalizować kierowcy, że żąda zatrzymania.) Jednak impulsy przerwania z różnych urządzeń mogą się łączyć, jeśli wystąpią blisko w czasie. Aby uniknąć utraty przerwań, procesor musi wyzwalać się na końcowej krawędzi impulsu (np. na krawędzi rosnącej, jeśli linia jest podciągnięta i napędzana nisko). Po wykryciu przerwania procesor musi sprawdzić wszystkie urządzenia pod kątem wymagań serwisowych.

przerwania wyzwalane przez krawędź nie mają problemów z udostępnianiem przerwań wyzwalanych przez poziom. Obsługa urządzenia o niskim priorytecie może zostać dowolnie odroczona, podczas gdy przerwy z urządzeń o wysokim priorytecie są nadal odbierane i serwisowane. Jeśli istnieje urządzenie, którego procesor nie wie, jak obsługiwać, które może wywoływać niepożądane przerwania, nie będzie zakłócać sygnalizacji przerwania innych urządzeń. Jednak łatwo jest przegapić przerwanie wyzwalane przez krawędź – na przykład, gdy przerwania są maskowane przez pewien czas – i jeśli nie ma jakiegoś rodzaju zatrzasku sprzętowego, który rejestruje zdarzenie, nie można go odzyskać. Ten problem spowodował wiele „blokad” we wczesnym sprzęcie komputerowym, ponieważ procesor nie wiedział, że ma coś zrobić. Bardziej nowoczesny sprzęt często ma jeden lub więcej rejestrów stanu przerwań, które blokują żądania przerwań; dobrze napisany kod obsługi przerwań oparty na krawędzi może sprawdzić te rejestry, aby upewnić się, że żadne zdarzenia nie zostaną pominięte.

starsza Magistrala Industry Standard Architecture (Isa) używa przerwań wyzwalanych przez krawędź, bez wymogu, aby urządzenia mogły współdzielić linie IRQ, ale wszystkie główne płyty główne ISA zawierają Rezystory podciągania na swoich liniach IRQ, więc dobrze zachowujące się urządzenia Isa dzielące linie IRQ powinny po prostu działać dobrze. Port równoległy wykorzystuje również przerwania wyzwalane przez krawędź. Wiele starszych urządzeń zakłada, że mają wyłączne użycie linii IRQ, przez co udostępnianie ich jest niebezpieczne elektrycznie.

istnieją 3 sposoby na podniesienie wielu urządzeń „dzielących tę samą linię”. Pierwszy jest przez wyłączne przewodzenie (przełączanie) lub wyłączne połączenie (do pinów). Następnie autobusem (wszystkie podłączone do tej samej linii nasłuchowej): karty na magistrali muszą wiedzieć, kiedy mają rozmawiać, a nie rozmawiać (tj. magistrali ISA). Rozmowa może być wywołana na dwa sposoby: przez zatrzask akumulacyjny lub przez bramki logiczne. Bramki logiczne oczekują ciągłego przepływu danych, który jest monitorowany pod kątem kluczowych sygnałów. Akumulatory uruchamiają się tylko wtedy, gdy zdalna strona podniesie bramę poza próg, dzięki czemu nie jest wymagana żadna negocjowana prędkość. Każdy z nich ma swoje zalety prędkości w stosunku do odległości. WYZWALACZ, ogólnie rzecz biorąc, jest to metoda, w której wykrywa się wzbudzenie: krawędź rosnąca, krawędź opadająca, próg (oscyloskop może wyzwalać szeroką gamę kształtów i warunków).

wyzwalanie przerwań programowych musi być wbudowane w oprogramowanie (zarówno w systemie operacyjnym, jak i w aplikacji). Aplikacja ” C ” ma tabelę wyzwalania (tabelę funkcji) w nagłówku, którą zarówno aplikacja, jak i system operacyjny znają i używają odpowiednio, co nie jest związane ze sprzętem. Nie należy jednak mylić tego z przerwaniami sprzętowymi, które sygnalizują procesor (procesor uruchamia oprogramowanie z tabeli funkcji, podobnie jak przerwania programowe).

trudności ze współdzieleniem linii przerwańedytuj

wiele urządzeń współdzielących linię przerwań (dowolnego stylu wyzwalania) wszystkie działają jako fałszywe źródła przerwań względem siebie. Przy wielu urządzeniach na jednej linii obciążenie pracą w przerwach serwisowych rośnie proporcjonalnie do kwadratu liczby urządzeń. Dlatego preferowane jest równomierne rozłożenie urządzeń na dostępne linie przerwań. Niedobór linii przerwań jest problemem w starszych systemach, gdzie linie przerwań są odrębnymi przewodnikami fizycznymi. Przerwania sygnalizowane Komunikatem, gdzie linia przerwań jest wirtualna, są preferowane w nowych architekturach systemowych (takich jak PCI Express) i w znacznym stopniu łagodzą ten problem.

niektóre urządzenia z źle zaprojektowanym interfejsem programistycznym nie zapewniają możliwości określenia, czy zażądały usługi. Mogą zablokować lub w inny sposób źle się zachowywać, jeśli są serwisowane, gdy tego nie chcą. Takie urządzenia nie mogą tolerować fałszywych przerwań, a więc nie mogą również tolerować współdzielenia linii przerwań. Karty ISA, ze względu na często tani design i konstrukcję, są znane z tego problemu. Takie urządzenia stają się coraz rzadsze, ponieważ logika sprzętowa staje się tańsza, a nowe architektury systemowe wymagają współdzielenia przerwań.

HybridEdit

niektóre systemy wykorzystują hybrydę sygnalizacji wyzwalanej poziomowo i wyzwalanej krawędziowo. Sprzęt nie tylko szuka krawędzi, ale także sprawdza, czy sygnał przerwania pozostaje aktywny przez pewien okres czasu.

powszechnym zastosowaniem przerwania hybrydowego jest wejście NMI (non-maskable interrupt). Ponieważ NMIs zazwyczaj sygnalizują poważne – a nawet katastrofalne-zdarzenia systemowe, dobra implementacja tego sygnału stara się zapewnić, że przerwanie jest prawidłowe, sprawdzając, czy pozostaje aktywne przez pewien czas. To dwuetapowe podejście pomaga wyeliminować fałszywe przerwania wpływające na system.

Message-signaledEdit

Główny artykuł: przerwania sygnalizowane Komunikatem

przerwanie sygnalizowane Komunikatem nie używa fizycznej linii przerwania. Zamiast tego, urządzenie sygnalizuje swoje żądanie usługi, wysyłając krótką wiadomość za pośrednictwem jakiegoś medium komunikacyjnego, zazwyczaj magistrali komputerowej. Wiadomość może być typu zarezerwowanego dla przerwań lub może być typu wcześniej istniejącego, takiego jak zapis pamięci.

przerwania sygnalizowane Komunikatem zachowują się bardzo podobnie do przerwań wyzwalanych przez krawędź, ponieważ przerwanie jest sygnałem chwilowym, a nie ciągłym. Oprogramowanie do obsługi przerwań traktuje je w podobny sposób. Zazwyczaj wiele oczekujących przerwań sygnalizowanych wiadomościami z tą samą wiadomością (tą samą linią przerwań wirtualnych) może się łączyć, tak samo jak przerwania wywołane krawędzią mogą się łączyć.

wektory przerwań sygnalizowane Komunikatem mogą być współdzielone w takim stopniu, w jakim może być współdzielony podstawowy nośnik komunikacyjny. Nie jest wymagany żaden dodatkowy wysiłek.

ponieważ tożsamość przerwania jest wskazywana przez wzorzec bitów danych, nie wymagający oddzielnego przewodnika fizycznego, wiele bardziej odrębnych przerwań może być efektywnie obsługiwane. Zmniejsza to potrzebę dzielenia się. Komunikaty przerwań mogą być również przekazywane przez magistralę szeregową, nie wymagając żadnych dodatkowych linii.

PCI Express, szeregowa magistrala komputerowa, używa wyłącznie przerwań sygnalizowanych Komunikatem.

DoorbellEdit

ten dział nie podaje żadnych źródeł. Pomóż ulepszyć tę sekcję, dodając cytaty do wiarygodnych źródeł. Niezaspokojony materiał może zostać zakwestionowany i usunięty. (Grudzień 2020) (dowiedz się, jak i kiedy usunąć ten Komunikat szablonu)

w analogii przyciskowej stosowanej do systemów komputerowych, termin dzwonek do drzwi lub przerwanie dzwonka jest często używany do opisania mechanizmu, w którym system oprogramowania może sygnalizować lub powiadamiać urządzenie sprzętowe komputera, że istnieje pewna praca do wykonania. Zazwyczaj system oprogramowania umieszcza dane w dobrze znanych i wzajemnie uzgodnionych lokalizacjach pamięci i” dzwoni do drzwi”, pisząc do innej lokalizacji pamięci. Ta inna lokalizacja pamięci jest często nazywana regionem dzwonka do drzwi, a w tym regionie może być nawet wiele dzwonków do drzwi służących różnym celom. To właśnie ten akt zapisu do regionu dzwonka pamięci „dzwoni Dzwonek” i powiadamia urządzenie sprzętowe, że dane są gotowe i czekają. Urządzenie sprzętowe będzie teraz wiedziało, że dane są poprawne i można na nich działać. Zwykle zapisuje dane na dysku twardym, wysyła je przez sieć, szyfruje itp.

termin „przerywanie dzwonka” jest zwykle mylny. Jest to podobne do przerwania, ponieważ powoduje pewne prace do wykonania przez urządzenie; jednak region dzwonka jest czasami implementowany jako obszar ankietowany, czasami region dzwonka zapisuje się do fizycznych rejestrów urządzeń, a czasami region dzwonka jest podłączony bezpośrednio do fizycznych rejestrów urządzeń. Podczas zapisu lub bezpośrednio do rejestrów fizycznych urządzeń może to spowodować rzeczywiste przerwanie w centralnej jednostce procesora (CPU) urządzenia, jeśli takie posiada.

przerwania dzwonka można porównać do przerwań sygnalizowanych Komunikatem, ponieważ mają pewne podobieństwa.

Multiprocessor IPIEdit

In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.