DE69223303T2 - Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen - Google Patents

Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen

Info

Publication number
DE69223303T2
DE69223303T2 DE69223303T DE69223303T DE69223303T2 DE 69223303 T2 DE69223303 T2 DE 69223303T2 DE 69223303 T DE69223303 T DE 69223303T DE 69223303 T DE69223303 T DE 69223303T DE 69223303 T2 DE69223303 T2 DE 69223303T2
Authority
DE
Germany
Prior art keywords
interrupt
processor
signals
priority
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69223303T
Other languages
English (en)
Other versions
DE69223303D1 (de
Inventor
Charles E Narad
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69223303D1 publication Critical patent/DE69223303D1/de
Application granted granted Critical
Publication of DE69223303T2 publication Critical patent/DE69223303T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung steht in Beziehung zu den folgenden parallel anhängigen Anmeldungen: EP-A 0 535 820 mit dem Titel "Verfahren und Vorrichtung für ein Register für Einzelbitzugriff zum Setzen und Löschen einzelner Bits gemeinsam genutzter Register ohne gegenseitige Software-Venegelung"; EP-A-0 534 662 mit dem Titel "Bus-zu-Bus-Schnittstelle zum Verhindern von Dateninkohärenz in einem Multiprozessor-Computersystem"; EP-A 0 535 822 mit dem Titel "Verfahren und Vorrichtung zum Sperren der Zuteilungsentscheidung auf einem entfernten Bus"; und EP-A 0 537 889 mit dem Titel "Eine Bus-Zuteilungsarchitektur mit Blockierungs- Detektion und -Maskierung".
  • HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung:
  • Die vorliegende Erfindung bezieht sich auf Multiprozessor-Computerarchitekturen. Insbesondere bezieht sich die vorliegende Erfindung auf eine Multiprozessor-Architektur zum dynamischen Lenken von ungerichteten Systen-Interrupts zu einem bestimmten Prozessor.
  • 2. Technischer Hintergrund:
  • Bei den meisten Computersystemen ist es wünschenswert und notwendig, daß der Prozessor auf Geräte-Signale und -Bedingungen antworten kann, die während des Betriebs des Computersystems auftreten. Solche Signale und Bedingungen können sich als Ergebnis von erwarteten Signaleingaben von einer Vielzahl von internen und externen Einrichtungen ergeben, oder sie ergeben sich aus einem unerwarteten Ereignis oder einem unerwarteten Auftreten einer Bedingung. Tritt ein Ereignis oder eine Bedingung auf, die Auswirkungen auf den Betrieb des Computersystems hat, gibt die Quelle dieses Ereignisses ein Interrupt an den Prozessor aus, womit gefordert wird, daß das Ereignis oder die Bedingung bestätigt und bearbeitet werden. Da eine Anzahl von Geräten mit dem Prozessor zusammenarbeiten können, bedarf es eines Prioritäts- Zuweisungsschemas, um es dem Prozessor zu ermöglichen, auf das entsprechende Interrupt in der richtigen Reihenfolge zu antworten.
  • Es gibt viele Verfahren und Architekturen zum Leiten von Interrupts in Einzelprozessor-Computersystemen. In einem Einzelprozessor-Computersystem werden alle Interrupts notwendigerweise von dem einzelnen Prozessor behandelt, wobei die einzige Einschränkung in der Reihenfolge besteht, in der die Interrupts bearbeitet werden. Meistens wird Interrupts eine Priorität zugewiesen, und die Interrupts werden entweder in aufsteigender oder absteigender Reihenfolge bearbeitet. In komplexeren Multiprozessor-Computersystemen kann die Behandlung von Interrupts mit Begriffen wie symmetrische und asymmetrische Interrupt-Behandlungs-Konvention umschrieben werden. In einem asymmetrischen Multiprozessor-Computersystem werden alle Interrupts zentralisiert und zu einem bestimmten Prozessor geleitet, der zum Behandeln der Interruptbearbeitungsanforderungen ausgewählt wurde. Bei symmetrischen Multiprozessor-Systemen können Interrupts hingegen zu irgendeinem Prozessor geleitet werden, was von den Bedürfnissen des Computersystems und den aktuell von Prozessoren in der Multiprozessor-Architektur ausgeführten Aufgaben abhängt.
  • Interrupts können eine von drei Formen annehmen. Es gibt gerichtete Interrupts, die von dem anfordernden Gerät zu einem bestimmten Prozessor gesendet werden. Gerichtete Interrupts können entweder "hard", wobei die Interrupts von bestimmten, ein Hardware-Signal erzeugenden Geräten ausgegeben werden, oder "soft" sein, wobei das Interrupt unter Software-Steuerung von einem bestimmten Prozessor erzeugt und zu einem anderen Prozessor geleitet wird. Da das anfordernde Gerät einen Prozessor spezifiziert hat, der die Interrupt- Anforderung behandeln soll, bedarf es keiner Entscheidung darüber, wohin in das Interrupt zu leiten ist.
  • Eine zweite Art von Interrupts ist der Rundsende-Interrupt, das, wenn es sich ereignet, Konsequenzen für jedes innerhalb des Computersystems arbeitende Gerät hat. Da Rundsende-Interrupts potentiell jedes Gerät innerhalb des Computersystems beeinflussen, werden Rundsende-Interrupts zu jedem Gerät innerhalb des Computers gesendet und von jedem empfangen. Ein Beispiel, bei dem ein Rundsende-Interrupt benötigt wird, ist ein Hardware-Ausfall, wie ein Ausfall der Spannungsversorgung, bei dem es wünschenswert ist, alle Geräte im Computersystem davor zu warnen, daß vorübergehend eine Spannungsausfall-Bedingung auftreten wird. Da sowohl bei gerichteten als auch bei Rundsende-Interrupts nicht ein bestimmter Prozessor zum Behandeln des Interrupts bestimmt werden muß, gibt es zahlreiche Architekturen, die gerichtete oder Rundsende-Interrupts einem oder allen der zahlreichen in einem Multiprozessor-Computersystem arbeitenden Prozessoren zuweisen.
  • Die dritte Art von Interrupts, das ungerichtete Interrupt, ist das bei Multiprozessor-Computersystemen am häufigsten anzutreffende Interrupt. Ungerichtete Interrupts können von irgendeinem einer großen Anzahl von Geräten des Computersystems empfangen werden, einschließlich Plattensteuereinrichtungen, Band-Steuereinrichtungen, seriellen und parallelen I/O-Ports, und jeder anderen Einrichtung, die gleichermaßen von irgendeinem Prozessor innerhalb des Computersystems benutzt werden kann. Bekannte Multiprozessor-Architekturen weisen häufig einen bestimmten Prozessor zu, um alle von Systemkomponenten und -peripherieeinrichtungen ausgegebenen ungerichteten Interrupts zu behandeln. Ein Nachteil des Widmens eines einzelnen Prozessors ausschließlich der Behandlung von ungerichteten Interrupt-Behandlungsanforderungen besteht darin, daß ein solcher Prozessor nicht für allgemeine Verarbeitungsaufgaben zur Verfügung steht. Insbesondere zu Zeiten geringer oder minimaler Kommunikation zwischen den Geräten, aber intensiver numerischer Berechnungen, könnte ein ausschließlicher Interrupt-Behandlungsprozessor nicht an den numerischen Berechnungen teilnehmen und könnte daher die Gesamtleistung des Computersystems nicht verbessern. Alternativ können bekannte Interrupt-Behandlungsroutinen für Multiprozessor-Architekturen ungerichtete Interrupt-Behandlungsanforderungen dem ersten verfügbaren Prozessor aufzwingen, ohne Rücksicht darauf, welche Aufgabe der Prozessor ausführt, oder welche Interrupts am schnellsten ausgeführt werden können.
  • Wie weiter unter erörtert wird, schafft die vorliegende Erfindung ein Verfahren und eine Vorrichtung zum dynamischen Zuweisen von ungerichteten Interrupt-Behandlungsanforderungen zu irgendeinem von mehreren Prozessoren in der Multiprozessor-Architektur durch Implementieren eines Interrupt- Ziel-Registers, das die Interrupt-Behandlungsanforderungen zu einem bestimmten Prozessor zuweist. Darüber hinaus erlaubt die vorliegende Erfindung eine Durchsicht aller anhängigen ungerichteten Interrupts vor dem Zuweisen an einen bestimmten Prozessor. Es ist daher möglich, ungerichtete Interrupt-Behandlungsanforderungen einem Prozessor zuzuweisen, der gleichzeitig ein Interrupt von ähnlicher Priorität behandelt. Ein flexibles und dynamisches Zuweisen von ungerichteten Interrupt-Behandlungs anforderungen zu Prozessoren führt zu einen effektiveren Interrupt-Behandlungsmechanismus, wodurch die Gesamtleistung des Systems verbessert wird.
  • Verschiedene Beispiele von bekannten Anordnungen, die sich mit der Behandlung und Verteilung von Interrupts in einer Multiprozessor-Umgebung beschäftigen, können in den folgenden Dokumenten gefunden werden. Zunächst bezieht sich das US-Patent mit der Nummer US-A-4,644,465 auf eine separate Interrupt-Steuerschaltung für jeden Prozessor, wobei jede Schaltung Interrupt-Maskier-Latches umfaßt, die vom zugehörigen Prozessor voreingestellt werden können und anzeigen, ob eine Interrupt-Verarbeitung von ihrem zugehörigen Prozessor durchgeführt werden kann. Es wird jedoch kein Register offenbart, das den Identifizierungscode für einen Zielprozessor enthält, der dazu bestimmt ist, ein Interrupt zu behandeln. Weiterhin wählt eine solche Interrupt-Steuerung einen Prozessor, ohne irgendeine Antwort von den einzelnen Prozessoren zu erhalten.
  • Weiterhin wird im IBM Technical Disclosure Bulletin, Vol 27, Nr. 4 B, September 1994, Seiten 2356-2359, ein Interrupt-Verteilungsverfahren bei einem Multiprozessor-System gelehrt, bei dem ein Prozessor auf der Basis eines zyklischen Schemas zum Handhaben eines Interrupts ausgewählt wird (Seite 2357, zweiter vollständiger Absatz). Ein Verzeichnis listet die Verfügbarkeit jeden Prozessors auf (Seite 2358). Es wird jedoch kein Zielprozessor-Identifikationsregister gelehrt.
  • In Software and Microsystems, Vol 1, Nr. 6, Oktober 1982, Seiten 153-159 wird ein vollständig zentralisiertes und modulares Interrupt-Verteilungssystem gelehrt (im Gegensatz zu einem zentralisierten Nabe- und Speiche-Modell) mit einem globalen Interruptvektor-Bus, mit dem Interrupt-Annehmer- (d.h. Prozessoren) und Interrupt-Quell-Einheiten verbunden sind (Fig. 6). Das Fehlen einer zentralen Interrupt Steuerungs-Einheit erleichtert einen modularen Aufbau.
  • Weiterhin lehrt das US-Patent Nr. US-A-4,271,468 die Behandlung von Interrupt-Anforderungen, die in einem gemeinsam von mehreren Prozessoren genutzten Hauptspeicher gespeichert sind. Bitpositionen eines Registers für anhängige Interrupts in einer Interrupt-Steuereinheit werden an jeden Prozessor gesandt. Ein Zielprozessor wird sodann basierend auf den von den Prozessoren erhaltenen Annahmesignalen ausgewählt. Ein prozessor-programmierbares Ziel-Identifikations-Register wird jedoch nicht gelehrt.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Die Erfindung wird in den Ansprüchen 1 und 17 angegeben. Spezielle Ausführungsbeispiele der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Es werden Verfahren und Vorrichtungen zum dynamischen Lenken von ungerichteten Interrupt-Behandlungsanforderungen innerhalb eines Multiprozessor-Computersystems offenbart. Der Steuermechanismus für die Interrupt-Lenkung umfaßt ein Interrupt-Ziel-Register, das einen Code speichert, der einen bestimmten Interrupt-Ziel-Prozessor im System identifiziert. Das Betriebssystem des Computers kann bestimmen, daß ein bestimmter Prozessor Ziel des aktuellen Interrupts ist, indem die entsprechende Prozessor-Nummer in ein Interrupt-Ziel-Register geschrieben wird. Alternativ dazu kann ein anderer Prozessor die Kontrolle über anhängige Interrupts geltend machen, indem er seinen eigenen Identifikationscode in das Interrupt-Ziel-Register schreibt. Ein Register für ein anhängiges System-Interrupt erlaubt es jedem Prozessor festzustellen, ob irgendeine Interrupt-Quelle eine Behandlung angefordert hat. Jeder Interrupt-Behandlungsanforderung wird eine Interrupt-Priorität zugewiesen, die festlegt, wann bezogen auf andere für diesen bestimmten Prozessor anhängige Interrupts der bestimmte Prozessor dieses Interrupt behandeln wird. Ein Interrupt-Maskier-Register erlaubt es dem Zielprozessor des aktuellen Interrupts, entweder eine Interrupt-Anforderung zu behandeln, wenn sie auftritt, oder die Interrupt-Anforderung zu maskieren und damit die Behandlung der Interrupt-Anforderung bis zu einem späteren Zeitpunkt zu verzögern. Ein Prozessor-Interrupt-Register für jeden Prozessor erlaubt es jedem Prozessor, alle für diesen Prozessor anhängigen Hard- und Soft-Interrupts zu überprüfen. Geeignete Bits im Prozessor-Interrupt-Register zeigen für jeden Prozessor an, ob Soft- oder Hard-Interrupts auf irgendeinem Prioritätsniveau für diesen bestimmten Prozessor anhängig sind. In Abhängigkeit von den Bit-Werten im Interrupt-Ziel- Register und im Interrupt-Maskier-Register wird jede Interrupt-Anforderung von einem der Prozessoren im Computersystem behandelt. Die dynamische Zuweisung von ungerichteten Interrupts erlaubt es dem Betriebssystem, durch Zuweisen des besten Interrupt-Behandlungs-Algorithmus zur bestmöglichen Zeit die Leistung des Computersystems zu optimieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben, Eigenschaften und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung deutlich, in der:
  • Fig. 1 die Arten von mit der vorliegenden Erfindung kompatiblen Interrupts illustriert.
  • Fig. 1a eine allgemeine Blockdarstellung der Module zur Behandlung ungerichteter Interrupts ist, die die Erfindung zur Lenkung von ungerichteten Interrupts umfaßt.
  • Fig. 2 eine schematische Darstellung der Interrupt-Lenkungs-Architektur ist.
  • Fig. 3a die Bitzuweisung der Register des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung während einer Nur-Lese-Operation illustriert.
  • Fig. 3b die Bitzuweisung der Register des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung während einer Schreibe-Zum-Löschen-Operation darstellt.
  • Fig. 3c die Bitzuweisung der Register des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung während einer Schreibe-Zum-Setzen-Operation darstellt.
  • Fig. 4 eine schematische Darstellung des erfindungsgemäßen Interrupt-Ziel-Registers ist.
  • Fig. 5 eine schematische Darstellung des Interrupt- Ziel-Maskier-Registers des bevorzugten Ausführungsbeispiels der Erfindung ist.
  • Fig. 6 eine schematische Darstellung des Registers für ein anhängiges System-Interrupt des bevorzugten Ausführungsbeispiels der Erfindung ist.
  • Fig. 7 eine Legende ist, die die in Fig. 5 gezeigte Bit-Zuweisung für das Interrupt-Ziel-Maskier-Register und das in Fig. 6 gezeigte Register für anhängige System-Interrupts beschreibt.
  • Fig. 8 eine Legende ist, die die Prioritätszuweisung für Soft- und Hard-Interrupt-Quellen des bevorzugten Ausführungsbeispiels der vorliegenden beschreibt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden Verfahren und Vorrichtungen zum dynamischen Lenken von ungerichteten Interrupts zu einem bestimmten Prozessor in einem Multiprozessor-Computersystem offenbart. In der folgenden Beschreibung werden zum Zwecke der Erläuterung spezielle Anzahlen, Materialien und Konfigurationen genannt, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Es ist dem Fachmann jedoch klar, daß die Erfindung auch ohne diese speziellen Details ausgeführt werden kann. An anderen Stellen werden wohlbekannte Systeme in schematischer oder in Blockdiagrammform gezeigt, um das Verständnis der vorliegenden Erfindung nicht unnötig zu erschweren.
  • In der gesamten folgenden Beschreibung wird der Begriff "Register" dazu verwendet, eine Computer-Hardware-Schaltung zu beschreiben, die dazu verwendet wird, digitale Daten zu speichern. Register kommen üblicherweise in Computersystemen vor und können in der Größe von dem Speichern eines einzelnen Datenbits bis zum Speichern von mehreren Bytes oder sogar von mehreren Wörtern von digitalen Daten variieren. Die in der vorliegenden Erfindung beschriebenen Register sollen gemäß wohlbekannten Designprinzipien mit jedem Computer- Hardware-Design und Betriebssystem arbeiten. Die erfindungsgemäße Lenkung von ungerichteten Interrupts, die Gegenstand der vorliegenden Anmeldung ist, ist besonders dafür geeignet, mit Multiprozessor-Computersystemen zu arbeiten, die von Sun Microsystems, Inc., Mountain View, Kalifornien, hergestellt werden. Beispiele von Maschinen, bei denen die vorliegende Erfindung arbeiten soll, sind solche Maschinen, die in Übereinstimmung mit der Sun Microsystems Sun-4M-Architektur konstruiert wurden.
  • Darüber hinaus schließt die vorliegende Erfindung Aspekte der ebenfalls anhängigen Anmeldung mit dem Titel "Verfahren und Vorrichtungen für ein Register, das einen Einzelbit-Zugriff zum Ersetzen und Löschen individueller Bits von gemeinsam genutzten Registern ohne eine gegenseitige Software-Verriegelung gewährleistet", EP-A-0 535 820 ein. Die Anwendung der Funktion des Einzelbit-Zugriffsregisters wird dort beschrieben, wo es angebracht ist.
  • Im folgenden wird auf Fig. 1 Bezug genommen, in der die Interrupt-Behandlungs-Funktion gemäß der vorliegenden Erfindung gezeigt ist. Gemäß Fig. 1 kann das Interrupt-Lenkungsmodul Interrupts von irgendwelchen oder allen Interrupt- Quellen innerhalb descomputersystems empfangen, einschließlich:
  • - zeitlich abgestimmten oder CLOCK-Interrupts
  • - prozessor-initiierten Interrupts oder Soft-Interrupts,
  • - Interrupts, die von Intervall-Einrichtungen initiiert werden, oder SYSTEM-Interrupts,
  • - Interrupts von Geräten, die über einen Erweiterungsbus kommunizieren, oder BUS-A- und BUS-B-Interrupts.
  • Das Interrupt-Lenkungsmodul sendet anschließend Interrupts einer spezifizierten Priorität an einen von mehreren Mastern zur Behandlung.
  • Im folgenden wird auf Fig. 1A Bezug genommen, in der eine Übersicht in Blockdarstellung der Interrupt-Lenkungsarchitektur gezeigt ist, die Gegenstand der vorliegenden Erfindung ist. In Fig. 1A erkennt man, daß Interrupt-Quellen vom gerichteten, vom Rundsende- und vom ungerichteten Typ sind. Gemäß Fig. 1A werden Rundsende-Interrupts 1 und gerichtete Interrupts 2 direkt zum Prozessor-Interrupt-Steuerblock geleitet. Ungerichtete Interrupts 3 mit variabler Priorität, die von internen oder externen Geräten gesendet wurden, werden zu einem Prozessor-Ziel-und-Lenkungsmodul 6 geleitet. Das Prozessor-Ziel-und-Lenkungsmodul 6 empfängt alle ungerichteten Interrupts und legt fest, an welchen Prozessor ein bestimmtes Interrupt geleitet wird. Das Prozessor-Ziel-und-Lenkungsmodul 6 sendet Ausgabesignale an das Prozessor-Interrupt-Steuermodul 5, wobei die Ausgabesignale anzeigen, welcher Prozessor das Interrupt empfangen soll. Das Prozessor-Interrupt-Steuermodul 5 ist mit allen Prozessoren im Computersystem verbunden. Gegenwärtig wird bevorzugt, das Prozessor-Interrupt-Steuermodul 5 mit vier Prozessoren zu verbinden, den Prozessoren A, B, C und D. Der Prozessor-Interrupt-Steuerblock 5 enthält auch eine Prozessor- Codier-Logik, so daß das Interrupt-Niveau des anhängigen Interrupts mit der höchsten Priorität für jeden korrekten Prozessor richtig an den Prozessor geleitet wird, und daß das Interrupt mit der höchsten Priorität einschließlich der nicht gerichteten Interrupts richtig an den vom Prozessor- Ziel-und-Steuerblock 6 ausgewählten Prozessor geleitet werden kann.
  • Eine detailliertere Darstellung der vorliegenden Erfindung ist am deutlichsten in Fig. 2 gezeigt. Gemäß Fig. 2 werden ungerichtete Interrupts 3, die von irgendeinem Gerät empfangen wurden, von einem Register 13 für ein anhängiges System-Interrupt angezeigt. Das Register 13 für ein anhängiges System-Interrupt kann irgendeine geeignete Größe zum Unterstützen des Betriebs eines bestimmten Computersystems haben. Im bevorzugten Ausführungsbeispiel ist das Register 13 für ein anhängiges System-Interrupt ein 32-Bit-Register, dessen Bitzuordnung genauer in den Fig. 6 und 7 weiter unten gezeigt ist. Das Register 13 für ein anhängiges System-Interrupt erlaubt einer sich anschließenden Interrupt-Schaltung, alle Hard-Interrupts zu überprüfen, die für alle Prozessoren innerhalb des Computersystems anhängig sind, und ein bestimmtes Interrupt zu einem von mehreren Prozessoren 50 zu leiten, der für den Betrieb des Computersystems am günstigsten ist. Wichtig ist, daß die Bits im Register 13 für ein anhängiges System-Interrupt nie "gesetzt" oder "gelöscht" werden. Sie zeigen vielmehr nur den gegenwärtigen Zustand der Interrupt-Quellen an. Anhängige, ungerichtete Interrupts 3, wie sie vom Register 13 für ein anhängiges System-Interrupt angezeigt werden&sub1; können anschließend maskiert oder von einem Interrupt-Ziel-Maskier-Register 15 blockiert werden. Im bevorzugten Ausführungsbeispiel ist das Interrupt-Ziel-Maskier-Register 15 ein 32-Bit-Einzelbitzugriffsregister von demjenigen Typ, der in der obengenannten ebenfalls anhängigen Anmeldung EP-A-0 535 820 genauer beschrieben ist und eine in den Fig. 5 und 7 gezeigte Bit-Zuweisung aufweist. Das Setzen von Bits im Interrupt-Ziel-Maskier-Register 15 gestattet, die Behandlung von ausgewählten Interrupts durch die Prozessoren 50 zu verzögern oder ganz und gar aufzugeben. Im Interrupt-Ziel-Maskier-Register 15 werden Bits in Übereinstimmung mit der Struktur des Einzelbitzugriffsregisters gesetzt, die in der oben erwähnten ebenfalls anhängigen Anmeldung EP-A-0 535 820 offenbart ist.
  • Obwohl bestimmte Interrupt-Quellen bestimmten Bit-Orten im Register 13 für ein anhängiges System-Interrupt zugeord net sind, wie es in Fig. 6 gezeigt ist, dürfte es dem Leser klar sein, daß jede beliebige Interrupt-Quelle jedem beliebigen Bit oder einer Kombination von Bits im Register 13 für ein anhängiges System-Interrupt zugeordnet werden könnte, ohne Rücksicht auf die spezielle 32-Bit-Zuordnung, die in Fig. 6 gezeigt ist. Im folgenden wird wieder auf Fig. 2 Be zug genommen. Das Interrupt-Ziel-Maskier-Register 15 ist ebenfalls ein 32-Bit-Register, hat jedoch in Übereinstimmung mit der Einzelbitzugriffskonstruktion sowohl Lese- als auch Schreibfähigkeiten, wobei drei Adressen auf das Interrupt- Ziel-Maskier-Register 15 weisen. Eine Adresse ist für das Lesen zugewiesen, und jeweils eine Adresse ist zum Setzen und Löschen von individuellen Bits innerhalb des Registers zugewiesen. Ungerichtete Interrupts 3, die von einem eine Behandlung anfordernden Gerät ausgegeben wurden und vom Register 13 für ein anhängiges System-Interrupt angezeigt werden, haben keinen Einfluß auf den als Zielgerät für die Interrupt-Behandlung vorgesehenen Prozessor, wenn das entsprechende Bit im Interrupt-Ziel-Maskier-Register 15 gesetzt ist.
  • Ungerichtete Interrupts 3, die vom Register 13 für ein anhängiges System-Interrupt empfangen wurden und vom Interrupt-Ziel-Maskier-Register 15 nicht maskiert oder blockiert werden, werden anschließend an eine Interrupt-Lenkungslogikeinheit 20 weitergegeben. Einzelne Bits im Register 13 für ein anhängiges System-Interrupt zeigen der Interrupt-Lenkungslogikeinheit 20 an, ob irgendwelche von einer der zugeordneten Interrupt-Quellen ausgegebene Interrupt-Anforderungen vorliegen.
  • Ein Interrupt-Ziel-Register 17 speichert einen binären Prozessor-Identifizierungscode, der anzeigt, welcher der Prozessoren 50 dafür vorgesehen ist, als aktueller Interrupt-Ziel-Prozessor CIT (current interrupt target)-Prozessor) die Interrupt-Anforderung zu behandeln. Fig. 4 zeigt die gegenwärtig bevorzugte Bit-Zuordnung für das Interrupt- Ziel-Register 17, wobei ein 2-Bit-Code denjenigen der vier Prozessoren identifiziert, der der CIT-Prozessor sein soll. Das Interrupt-Ziel-Maskier-Register 15 und das Interrupt- Ziel-Register 17 wirken zusammen, um die Zuweisung von ungerichteten Interrupts zu unterschiedlichen Prozessoren zu unterstützen. Wie weiter unten genauer beschrieben wird, kann der CIT-Prozessor, wenn er eine Interrupt-Anforderung erhält, die Quelle der Interrupt-Anforderung durch Untersuchen des Registers 13 für ein anhängiges System-Interrupt bestimmen. Unternimmt der CIT-Prozessor weiter nichts, so erhält er Interrupt-Behandlungsanforderungen, die von der Interrupt-Lenkungslogikeinheit 20 zu ihm geleitet wurden. Werden andererseits die Bits 0 oder 1 des Interrupt-Ziel-Registers 17 geändert, so wird der entsprechende Prozessor, dem der jetzt im Register 17 erscheinende 2-Bit-Prozessor-Identifizierungscode zugeördnet ist, der neu zugeordnete CIT-Prozessor sein und die Interrupt-Anforderung behandeln. Falls der CIT-Prozessor die Bearbeitung des anhängigen Interrupts an einen anderen Prozessor weiterleiten möchte, kann der CIT- Prozessor das einzelne Maskierbit in dem Interrupt-Ziel-Register 15 setzen, das der Interrupt-Quelle entspricht, die die Behandlung verlangt, und kann danach ein gerichtetes Interrupt an den gewünschten Prozessor senden. Die Maskierfunktion, die durch die Einzelbit-Schreibe-zum-Setzen-Operation für das Interrupt-Ziel-Maskier-Register 15 implementiert ist, erlaubt es dem ausgewählten CIT-Prozessor, die Programmausführung fortzusetzen, ohne eine Interrupt-Behandlungsanforderung von der bestimmten maskierten Interrupt- Quelle zu erhalten. Hat der ausgewählte Interrupt-Behandlungs-Prozessor die Behandlung des Interrupts abgeschlossen, löscht er das Maskier-Bit, das vorher im Interrupt-Ziel-Maskier-Register 15 gesetzt wurde, so daß anschließend Interrupts von der jeweiligen Interrupt-Quelle wieder zum CIT- Prozessor geleitet werden.
  • Basierend auf der Eingabe vom Interrupt-Ziel-Maskier-Register 15 und vom Interrupt-Ziel-Register 17 wird die Interrupt-Lenkungslogikeinheit 20 anschließend das ungerichtete Interrupt entlang getrennter Ausgabeleitungen zu einem von mehreren Prozessor-Interrupt-Registern 32 leiten. Für jeden Prozessor des Multiprozessor-Computersystems gibt es ein Register 32 für ein anhängiges Prozessor-Interrupt. Wie in Fig. 2 gezeigt, gibt es im gegenwärtig bevorzugten Computersystem mit vier Prozessoren vier Register 32 für ein anhängiges Prozessor-Interrupt, von denen jedes zu einem der vier Prozessoren 50 gehört. Die Rundsende-Hard-Interrupt-Quellen 1 mit der höchsten Priorität werden ebenfalls zu den Prozessor-Interrupt-Registern 32 geleitet. Wie im Falle des Registers 15 sind die Prozessor-Interrupt-Register 32 32-Bit-Register mit Einzelbit-Lese- und Schreibfähigkeit. In Übereinstimmung mit dem oben beschriebenen setz- und löschbaren Einzelbit-Zugriffsregister, das detaillierter in der ebenfalls anhängigen Patentanmeldung mit der Seriennummer 767,122 beschrieben ist, werden jedem physischen Register mehrere Adressen zugeordnet. Im bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden jedem zu einem Prozessor gehörigen Prozessor-Interrupt-Register 32 drei verschiedene Adressen zugeordnet, die zu drei verschiedenen Funktionen auf dem Register führen. Eine Adresse führt eine Nur-Lese-Funktion aus, eine andere Adresse eine Schreibezum-Löschen-Funktion und die dritte zugewiesene Adresse ist eine Schreibe-zum-Setzen-Funktion.
  • In den Fig. 3a-c wird die Bit-Zuordnung für die Prozessor-Interrupt-Register gezeigt. Wie in Fig. 3a gezeigt, zei gen die Bit-Orte 1-15 der Prozessor-Interrupt-Register 32 während eines Nur-Lese-Zugriffs dem bestimmten, zugehörigen Prozessor das Prioritätsniveau anhängiger gerichteter Hard- Interrupts an, das von 1 bis 15 reicht. Wie weiterhin in Fig. 3a gezeigt ist, zeigen die Bits 17-31 der Prozessor-In terrupt-Register 32 dem speziellen Prozessor an, welches von Niveaus von Soft-Interrupts für diesen Prozessor anhängig ist. Wird von einem bestimmten, entsprechenden Prozessor aus gelesen, so werden alle für diesen Prozessor anhängigen Hard- und Soft-Interrupts angezeigt.
  • Wie weiterhin in Fig. 3c für eine Einzelbit-Schreibezum-Setzen-Funktion gezeigt ist, können ein oder mehrere Bits 17-31 in den entsprechenden Registern 32 für ein Prozessor-Interrupt auflogisch 1 gesetzt werden, indem ein Einzelbit in die Register 32 für ein Prozessor-Interrupt mit Hilfe der SETZEN-Adresse geschrieben wird. Das Setzen irgendeines der Bits 17-31 des in Fig. 3c gezeigten Registers auf logisch 1 führt zu einem Senden eines gerichteten Interrupts mit dem angegebenen Niveau an den zugehörigen Prozessor. Wird beispielsweise das Bit 31 des Prozessor-Interrupt- Registers 32a, das dem Prozessor 50a zugeordnet ist, gesetzt, so wird ein gerichtetes Interrupt auf dem Niveau 15 an den Prozessor 50a gesendet. Wie in Fig. 3b gezeigt, kann in ähnlicher Weise eine Schreibe-zum-Löschen-Funktion dadurch implementiert werden, daß ein bestimmtes Bit auflogisch 1 gesetzt wird und in die Prozessor-Interrupt-Register 32 über die CLEAR (Löschen)-Adresse geschrieben wird. Das Schreiben in die Prozessor-Interrupt-Register 32 durch die CLEAR-Adresse bewirkt ein Löschen des zugehörigen Bits für das Soft-Interrupt-Niveau, wodurch dieses Interrupt für den zugehörigen Prozessor 50 bestätigt wird. Der Setzen-und-Löschen-Einzelbit-Zugriffsmechanismus erlaubt somit einen Einzelbit-Zugriff auf die Prozessor-Interrupt-Register 32 in einer einzigen Operation, wodurch die Notwendigkeit für Verriegelung zum gegenseitigen Ausschließen im Zusammenhang mit solchen Zugriffen eliminiert ist. Die Geschwindigkeit und Einfachheit des Computersystems wird dadurch erhöht.
  • Man sollte beachten, daß die Hard-Interrupt-Bits 1-13 der Prozessor-Interrupt-Register 32 nur dann aktiv sind, wenn der zugehörige Prozessor im Interrupt-Ziel-Register 17 als aktuelles Interrupt-Ziel, oder CIT, angegeben ist. Anderenfalls werden die Interrupt-Bits 1-13 als logisch 0 gelesen. Wichtig ist, daß die Hard-Interrupt-Bits 1-13 nie "gesetzt" werden; vielmehr spiegeln sie den Status der Interrupts auf dem entsprechenden Interrupt-Prioritätsniveau wieder, falls der bestimmte Prozessor in die Lage versetzt wurde, die Interrupts über das Interrupt-Ziel-Register 17 zu "empfangen". Im folgenden wird auf die in Fig. 2 gezeigten gerichteten Soft- und zeitlich festgelegten Interrupts 2 eingegangen. Im gegenwärtig bevorzugten Ausführungsbeispiel können gerichtete Interrupts mit zeitlich festgelegten oder zähler-getriebenen Ereignissen durch das Hard-Bit 14 des Registers 32 für ein Prozessor-Interrupt der Fig. 2 implementiert werden. Auf Zeiten oder Zählen beruhende Interrupts finden typischerweise Anwendung beim Implementieren von Zeitscheiben auf einem Computersystem oder zum Zweck des Erstellens einer Leistungsanalyse für Computerprogramme. Beim bevorzugten Ausführungsbeispiel wird ersteres als ungerichtetes Interrupt implementiert, während letzteres als gerichtetes Interrupt implementiert wird. In ähnlicher Weise wird das Hard-Bit 15 des Prozessor-Interrupt-Registers 32 dazu verwendet, Rundsende-System-Interrupts anzuzeigen.
  • Wie bereits besprochen, leitet das Interrupt-Ziel-Register 17 alle ungerichteten Hard-Interrupts an den CIT, der durch den im Interrupt-Ziel-Register 17 enthaltenen 2-Bit- Code angezeigt ist. Zusätzlich können zwei Soft-Interrupts durch einen der übrigen Prozessoren zu einem ausgewählten Ziel-Prozessor geleitet werden, indem ein geeignetes Bit der Soft-Interrupt-Bits 17-31 der Prozessor-Interrupt-Register 32 gesetzt wird, das dem einen bestimmten Prozessor der Prozessoren 50 entspricht, der das Soft-Interrupt behandeln soll. In beiden Fällen werden Interrupt-Signale durch einen Codierer 33 entweder zum CIT-Prozessor oder zu dem für das Soft-Interrupt ausgewählten Ziel-Prozessor geleitet. Wie gegenwärtig bevorzugt wird, codiert der Codierer 33 die anhängigen Interrupt-Signale für jeden der vier Prozessoren 50, die von den Registern 32 für ein anhängiges Prozessor-Interrupt empfangen werden, in einen 4-Bit-Code für jeden Prozessor, wodurch insgesamt 15 Prioritätsniveaus ausgedrückt werden können. Im folgenden wird kurz auf Fig. 8 Bezug genommen. Mit besonderem Bezug auf die SPARC-Systeme des bevorzugten Ausführungsbeispiels wird dem Interrupt-Prioritätsniveau 15 die höchste Priorität zugewiesen, wohingegen das Interrupt-Niveau 0 anzeigt, daß keine Interrupts anhängig sind. Im folgenden wird wieder auf Fig. 2 Bezug genommen. Interrupt-Signale, die zu einem bestimmten Prozessor gesendet werden, werden vom Codierer 33 an jeden der Prozessoren 50 ausgegeben. Der Codierer 33 bietet eine private, einzelne 4-Bit-Interrupt-Anforderungsleitung ("IRL", interrupt request line) für jeden der Prozessoren 50. Die IRL erlaubt es jedem Prozessor, das ihm zugewiesene anhängige Interrupt mit der höchsten Priorität zu empfangen. Der CIT-Prozessor, wie er vom Interrupt-Ziel-Register 17 zugeordnet ist, beeinflußt nur die Lenkung von ungerichteten Interrupts; jeder Prozessor kann einzelne Soft-Interrupts, gerichtete Zeitgeber-Interrupts oder Rundsende-Interrupts haben, die zu irgendeiner Zeit anhängig sind.
  • Nachdem die einzelnen Komponenten der Lenkungsarchitektur für ungerichtete Interrupts beschrieben wurden, wird jetzt der Betrieb des Systems beschrieben. Der Betrieb der Interrupt-Lenkungsarchitektur umfaßt alle drei Arten von Interrupts, die in Multiprozessor-Systemen auftreten. Bei der vorliegenden Erfindung werden gerichtete Interrupts stets an denselben Zielprozessor 50 zum Behandeln der Interrupt-Anforderung gesendet. Gerichtete Interrupts können von speziellen Geräten herrühren, von Fehlerbedingungen oder von Soft-Interrupts, die von irgendeinem der Prozessoren 50 gesendet wurden. Soft-Interrupts werden mittels Software von irgendeinem der Prozessoren 50 zu irgendeinem der verbleibenden Prozessoren 50 auf verschiedenen Interrupt-Prioritätsniveaus gesendet, wie es in Fig. 8 gezeigt ist. Gerichtete Interrupts werden für die Behandlung zu einem bestimmten der Prozessoren 50 gesendet. Die gerichteten Interrupts können vorzugsweise aufgenommen werden, oder wo Systemdesignbeschränkungen es verlangen, daß aus Gründen der Geschwindigkeit oder aus anderen Gründen ein bestimmter Prozessor die Interrupt-Anforderung behandelt.
  • Ungerichtete Interrupts können von einer System-Einrichtung herrühren, wobei die Interrupt-Lenkungslogikeinheit 20 das Interrupt zur Behandlung der Anforderung in bekannter Weise zum CIT-Prozessor leitet. Die Behandlung von ungerichteten Interrupts wird somit zwischen allen Prozessoren 50 innerhalb des Computersystems, das die vorliegende Erfindung einsetzt, verteilt. Wichtig bei der vorliegenden Erfindung ist, daß zum Unterstützen von flexibleren Zuweisungsalgorithmen für die Interrupt-Behandlung der CIT programmierbar ist, d.h. jeder der Prozessoren 50 im System kann zum Empfangen von allen ungerichteten Interrupts ausgewählt werden. Rundsende-Interrupts werden zu allen Prozessoren 50 im Computersystem gesendet, einschließlich des Prozessors, der das Senden ausgelöst hat, falls das Rundsende-Interrupt von einem Prozessor initiiert wurde. Rundsende-Interrupts können auch von Hardware ausgegeben werden, z.B. von einer Systemfehler-Detektionsschaltung. Ein Rundsende-Interrupt kann auf irgendeinem Interrupt-Prioritätsniveau ausgegeben werden. Falls von einem Prozessor ausgegeben, können Rundsende-Interrupts mit Hilfe einer Reihe von Soft-Interrupts implementiert werden, wobei ein Soft-Interrupt an jeden Prozessor in System ausgegeben wird. Die Betriebswirkung eines Rundsende Interrupts besteht darin, für alle Prozessoren mittels des Soft-Interrupt-Bits des Interrupt-Registers 32 oder über das Hard-Bit 15 des Prozessor-Interrupt-Registers 32 das gleiche Interrupt-Prioritätsniveau einzustellen.
  • Obwohl ein beliebiges Verteilungsschema für die Interrupts vom Systemdesigner gewählt werden kann, ist im bevorzugten Ausführungsbeispiel der vorliegenden Erfindung das folgende Verteilungsschema implementiert, wie es in Fig. 2 gezeigt ist. Jeder der vier Prozessoren 50a, 50b, 50c und 50d erhält gerichtete Interrupts zum Ausführen von Software, die mit Hilfe des Soft-Interrupt-Niveaus 14 implementiert sind, der Interrupt-Priorität des hochaufgelösten Zeitgebers. Außerdem hat jeder der vier Prozessoren 50a, 50b, 50c und 50d eine Einrichtung zum Empfangen von gerichteten Hard- und Soft-Interrupts auf irgendeinem Prioritätsniveau, die mittels der Prozessor-Interrupt-Register 32a, 32b, 32c bzw. 32d angelegt wurden. Alle ungerichteten System-Interrupts werden zu einem der Prozessoren 50 gesendet, der vom Interrupt-Ziel-Register 17 als das aktuelle Interrupt-Ziel, oder CIT, angezeigt ist. Der CIT kann das Interrupt selbst behandeln, oder der CIT kann anschließend das ungerichtete Interrupt über den Mechanismus der gerichteten Interrupts und der Kommunikation über einen gemeinsam genutzten Speicher zum Behandeln durch irgendeinen der verbleibenden Prozessoren 50 versenden. Alle Hard-Interrupts auf dem Niveau 15 werden an alle Prozessoren 50 rundgesendet, und das Anlegen irgendeiner Niveau-15-Quelle setzt das Niveau-15-Bit in jedem der Prozessor-Interrupt-Register 32. Alle Prozessoren 50 können das Anlegen des Niveau-15-Interrupts durch Schreiben-zum-Löschen des Niveau-15-Hard-Interrupt-Bits in den zugehörigen Registern 32 für ein anhängiges Prozessor-Interrupt bestätigen.
  • Für das nächste Betriebsbeispiel sei angenommen, daß der Prozessor 50a derjenige Prozessor ist, der als CIT zugewiesen wurde. Ein binärer 2-Bit-Prozessor-Identifizierungscode, der den Prozessor 50a als den CIT identifiziert, wird im Interrupt-Ziel-Register 17 gespeichert. Solange das Interrupt- Ziel-Register 17 den auf den Prozessor 50a verweisenden Binärcode speichert, werden alle ungerichteten Interrupts, die vom Interrupt-Steuermechanismus empfangen werden, zum Prozessor 50a geleitet. Obgleich ein aktuelles Interrupt-Ziel vom Interrupt-Ziel-Register 17 identifiziert wird, werden Interrupts, die von der Interrupt-Quelle 1 für Hard-Interrupts von höchster Priorität empfangen werden, d.h. Rundsende-Interrupts, an alle Prozessoren 50 im Computersystem verteilt. D.h., Interrupts, die aufgrund eines Schreibfeh lers, eines Speicherfehlers oder eines anderen Systemfehlers ausgegeben wurden, werden gleichmäßig an die Prozessoren 50a, 50b, 50c und 50d verteilt. Das Auftreten eines Rundsende-Interrupts wird registriert, wenn eine logische 1 am Bit-Ort 15 aller Prozessor-Interrupt-Register 32 auftritt. Der Prozessor 50a erkennt, daß ein Rundsende-Interrupt ausgegeben wurde&sub1; wenn das Bit-15 des Prozessor-Interrupt-Registers 32a für den Prozessor 50a logisch 1 ist. Auf ähnliche Weise erkennen die Prozessoren 50b, 50c und 50d, daß ein Rundsende-Interrupt ausgegeben wurde, wenn die Bits-15 der Prozessor-Interrupt-Register 32b, 32c bzw. 32d logisch 1 gesetzt sind. Es sei daran erinnert, daß der Prozessor 50a das aktuelle Interrupt-Ziel ist. Unter diesen Umständen steht ein Mechanismus zur Verfügung, durch den die Nicht-CIT-Prozessoren 50b, 50c und 50d das Auftreten des Interrupts bestätigen können, ohne daß diese Prozessoren das Interrupt tatsächlich behandeln müssen. Die Bestätigung geschieht durch Einzelbit-Schreibe-zum-Löschen des Bits-15 des jeweiligen Prozessor-Interrupt-Registers 32b, 32c und 32d mittels des oben beschriebenen Einzelbit-Zugriffsmechanismus. Kurz gesagt, wird das Löschen oder Rücksetzen des einzelnen Bit- 15 durch einen Prozessor erreicht, der nicht das aktuelle Interrupt-Ziel ist, indem er auf die Schreibe-zum-Löschen- Adresse schreibt, die auf das zu diesem Prozessor gehörige Prozessor-Interrupt-Register zeigt. Der Schreibe-zum-Löschen-Befehl wird von Daten begleitet, deren binärer Äquivalenzwert eine logische 1 an derjenigen Position der binären Daten hat, die dem Hard-Interrupt-Bit-15 entspricht. Im aktuellen Beispiel können die Prozessoren 50b, 50c und 50d, da der Prozessor 50a als aktuelles Interrupt-Ziel zugewiesen ist, alle das Rundsende-Interrupt auf dem Niveau 15 bestätigen, daß sie über ihre jeweiligen Register 32 für ein anhängiges Prozessor-Interrupt empfangen haben. Im Falle des Prozessors 50b würde daher der Schreibe-zum-Löschen-Einzelbit- Befehl, den der Prozessor 50b beim Empfangen eines Rundsende-Interrupts auf dem Niveau 15 ausführen würde, für den Fall, daß die Schreibe-zum-Löschen-Adresse, die dem Register 32b für ein Prozessor-Interrupt zugewiesen wurde, beispielsweise ADDR4 ist, sein: WRT ADDR4 8000H. Ein Ausführen des Schreibe-zum-Löschen-Einzelbitbefehls mit hexadezimalen Zahlen, die äquivalent zu einer logischen 1 am Bit-15-Ort sind, bewirkt, daß das zugehörige Niveau-15-Bit im Prozessor-Interrupt-Register 32b gelöscht wird, wodurch das Rundsende-Interrupt bestätigt wird. Ähnliche Funktionen sind für alle Prozessoren 50 und alle Prozessor-Interrupt-Register 32 im Computersystem implementiert.
  • Im folgenden wird weiterhin auf Fig. 2 Bezug genommen. Soft-Interrupts 2 können zu jedem der Prozessoren 50 geleitet werden von jedem Prozessor aus, der ein Einzelbit schreibt, um das Registerbit im Soft-Interrupt-Register 12 zu setzen, das demjenigen Prozessor entspricht, der zur Behandlung des Soft-Interrupts gewünscht wird. Physisch sind die Soft-Interrupt-Register 12 identisch mit den Bit-Orten 17-31 des Prozessor-Interrupt-Registers 32. Ein Einzelbit- Schreibe-zum-Setzen in den Soft-Interrupt-Registern 12 eines der Prozessoren 50, wobei eines der Bits 17-31 auflogisch 1 gesetzt wird, führt dazu, daß das entsprechende Bit in den zugehörigen Prozessor-Interrupt-Registern 32 gesetzt wird, wodurch das auf diesem Niveau befindliche Interrupt zu den geeigneten Prozessoren geleitet wird. Falls also Prozessor 50a das aktuelle Interrupt-Ziel ist, jedoch feststellt, daß Prozessor 50b das nächste Interrupt auf dem Niveau 8 behandeln soll, wird Prozessor 50a einen Einzelbit-Schreibe-zum- Setzen-Befehl mit Daten ausführen, die das Bit 8 im Soft-Interrupt-Setzen-Feld (Bits 17-31) des Prozessor-Interrupt-Registers 32b des Prozessors 50b setzen. Man beachte, daß die Adresse für das Register 32b für anhängige Interrupts für den Prozessor 50b sich von derjenigen Adresse unterscheidet, die der Schreibe-zum-Setzen-Adresse für das Prozessor-Interrupt-Register 32a für den Prozessor 50a zugewiesen wurde, und daß sie sich auch von der Schreibe-zum-Löschen-Adresse des Prozessor-Interrupt-Registers 32b selbst unterscheidet. Alternativ dazu kann jeder der Prozessoren 50 feststellen, daß vielmehr er das aktuelle Interrupt-Ziel sein sollte, statt des gegenwärtig zugewiesenen CIT, wie es durch die Eintragung im Interrupt-Ziel-Register 17 ausgewiesen wird. In einem solchen Falle schreibt jeder der Prozessoren 50, der das aktuelle Interrupt-Ziel werden möchte, seinen Identifizierungscode in das Interrupt-Ziel-Register 17, wodurch der alte CIT verdrängt wird. Ein "Erfassungs"-Algorithmus, durch den irgendein Prozessor den Besitz des CIT-Prozessors durch Schreiben seines Identifizierungscodes in das Interrupt-Ziel-Register 17 erlangt, kann jedoch dazu führen, daß der vorherige CIT ein falsches Interrupt sieht. Die Behandlung von falschen Interrupts kann die Leistung in einem Computersystem verschlechtern. Daher wird ein "Freigeben"-Algorithmus bevorzugt, bei dem der aktuelle CIT-Prozessor die CIT-Funktion einem neuen Prozessor durch Schreiben des Identifizierungscodes dieses Prozessors in das Interrupt-Ziel- Register 17 zuweist.
  • Die größte Gruppe von Interrupts, die durch die vorliegende Erfindung behandelt werden, stammen von Quellen 3 für ungerichtete Interrupts von variabler Priorität, wie sie in Fig. 2 gezeigt sind. Alle Interrupts, die nicht System-Rundsende-Interrupts auf dem höchsten Niveau 15, gerichtete Zeitgeber-Interrupts oder Soft-Interrupts sind, die an einen bestimmten Prozessor gerichtet sind, werden über das Register 13 für ein anhängiges System-Interrupt, das Interrupt Ziel-Maskier-Register 15 und die Interrupt-Lenkungslogikeinheit 20 ausgewertet undverteilt. Falls, wie im vorliegenden Beispiel, der Prozessor 50a das aktuelle Interrupt-Ziel ist und ein Interrupt beispielsweise von einer seriellen Schnittstelle ausgegeben wurde, wird das Interrupt der sen ellen Schnittstelle durch das Bit für die serielle Schnittstelle, das Bit-15 des Registers 13 für ein anhängiges System-Interrupt, in Übereinstimmung mit der Bit-Zuweisung für das Register 13 für ein anhängiges System-Interrupt angezeigt, wie es in den Fig. 6 und 7 gezeigt ist. Ist kein Bit innerhalb des Interrupt-Ziel-Maskier-Registers 15 gesetzt, um das Interrupt vor dem aktuellen Interrupt-Ziel zu maskieren, wird der CIT, nämlich der Prozessor 50a, das Interrupt der seriellen Schnittstelle behandeln, welches Bit-12 des Prozessor-Interrupt-Registers 32a ist, das das anhängige Interrupt der seriellen Schnittstelle zeigt, welches wiederum im Register 13 für ein anhängiges System-Interrupt angezeigt ist. Es sei jetzt angenommen, daß, während Prozessor 50a das Interrupt der seriellen Schnittstelle behandelt, ein neues Interrupt von einem SBus-Gerät empfangen wird, und kurz darauf ein Interrupt vom Zeitgeber-Zähler des Prozessors 50a. Da der Prozessor 50a noch mit der vorher empfangenen Interrupt-Behandlungsanforderung der seriellen Schnittstelle beschäftigt ist, kann er nicht aktiv damit beginnen, die folgenden Interrupts zu behandeln. Das Register 13 für ein anhängiges System-Interrupt registriert jedoch das Auftreten des SBus-Interrupts durch Anzeigen einer logischen 1 am geeigneten Bitort des Registers 13 für ein anhängiges System- Interrupt, entsprechend dem in Fig. 6 gezeigten Zuordnungsschema. Das Register 32a für anhängige Interrupts des Prozessors 50a registriert das Auftreten des gerichteten Zeitgeberinterrupts durch Anzeigen einer logischen 1 im Bit-14. Im vorliegenden Beispiel wird eines der Bits 7-13 des Registers 13 für ein anhängiges System-Interrupt dem CIT anzeigen, daß ein SBus-Gerät eine Behandlung anfordert.
  • Unter der Annahme, daß der Prozessor 50a keinerlei Interrupts maskiert hat, behandelt er die anhängigen Interrupts gemäß ihrem Prioritätsniveau. Obwohl im gegenwärtig bevorzugten Ausführungsbeispiel dem Zähler-Zeitgeber des Prozessors eine höhere Priorität zugewiesen wurde als irgendeinem SBus-Interrupt-Niveau, kann jedes beliebige Schema einer Prioritätszuweisung mit ähnlichem Ergebnis implementiert werden. Nachdem der Prozessor 50a das Interrupt der seriellen Schnittstelle behandelt hat, sei angenommen, daß der Prozessor 50a feststellt, daß der Prozessor 50c das Interrupt mit der nächsthöheren Priorität behandeln soll, was jedem beliebigen Prozessor zugewiesen werden kann. Obwohl im vorliegenden Beispiel das Zähler-Zeitgeber-Interrupt, das für Prozessor 50a anhängig ist, eine höhere Priorität aufweist, ist das Zähler-Zeitgeber-Interrupt prozessorspezifisch bezüglich des Prozessors 50a und kann daher nicht zum Prozessor 50c geleitet werden. Vielmehr wird der Prozessor 50a eines der Soft-Interrupt-Bits 17-31 des Prozessor-Interrupt-Registers 32c durch Einzelbit-Schreiben Setzen entsprechend dem Prioritätsniveau des SBus-Geräts, wodurch das Register für ein anhängiges Interrupt für den Prozessor 50c gesetzt wird. In ähnlicher Weise wird der Prozessor 50a das geeignete Bit im Interrupt-Ziel-Maskier-Register 15 durch Einzelbit-Schreiben Setzen. Das Interrupt-Ziel-Maskier-Register 15 erlaubt dem Prozessor 50a, mit der Programmausführung fortzufahren, wobei die Behandlung des Interrupts des SBus-Geräts an den Prozessor 50c weitergegeben wird. Der Prozessor 50a wird vermutlich an dem Prozessor 50c im Speicher eine Nachricht hinterlassen, die anzeigt, welches Gerät behandelt werden soll. Hat der Prozessor 50c das SBus-Gerät behandelt, löscht er das entsprechende Maskierbit im Interrupt-Ziel-Maskier-Register 15, wodurch es dem Prozessor 50a wieder ermöglicht wird, Interrupts vom SBus-Gerät zu empfangen und zu behandeln. Der Prozessor 50c wird daher das anhängige SBus-Interrupt auf dem speziellen Niveau empfangen, auf dem es ausgegeben wurde. Nach Abschluß der Behandlung des Interrupts der seriellen Schnittstelle behandelt der Prozessor 50a auch das Interrupt des Zählers-Zeitgebers, das an den Prozessor 50a durch Erscheinen als Hard-Interrupt- Bit-14 im Interrupt-Register 32a des Prozessors 50a geleitet wurde. Durch Setzen des entsprechenden Bits im Interrupt- Ziel-Maskier-Register 15 hält der Prozessor 50a das entsprechende Interrupt nicht "gefangen", z.B. das SBus-Interrupt; stattdessen wird das Interrupt zu dem alternativen Prozessor geleitet, in diesem Fall dem Prozessor 50c. Der Prozessor 50c wird durch den Prozessor 50a durch Senden eines gerichteten Interrupts an den Prozessor 50c mittels der weiter oben beschriebene Einzelbit-Schreibe-zum-Setzen-Funktion ausgewählt, wodurch das spezielle Bit im Interrupt-Register 32c des Prozessors 50c auf das entsprechende Niveau des SBus-Interrupts gesetzt wurde. Im folgenden wird kurz auf Fig. 3c Bezug genommen. Es sei angemerkt, daß die Einzelbit- Schreibe-zum-Setzen-Befehle nur die Bit-Orte 17-31 der Soft- Interrupts des Interrupt-Registers 32a des Prozessors 50c betreffen. Andererseits spiegeln Hard-Interrupt-Bits 1-15 des Prozessor-Interrupt-Registers 32 nur den aktuellen Zustand von Interrupts auf dem entsprechenden Niveau wieder, falls der Prozessor in die Lage versetzt wurde, die Inter rupts mittels des Interrupt-Ziel-Registers 17 zu erkennen. Durch Maskieren des Interrupts vom SBus-Gerät und durch Weiterleiten des Interrupts an den Prozessor 50c über ein Soft- Interrupt kann daher der Prozessor 50a die Behandlung dieses Interrupts durch einen anderen Prozessor organisieren, wäh rend er Herr der allgemeinen Interrupt-Behandlung durch ein Nicht-Andern des CIT bleibt. Sollte andererseits der Prozessor 50a feststellen, daß er zu beschäftigt ist, um weitere Hard-Interrupts zu behandeln, kann er stattdessen die Herrschaft des CIT abgeben und die dT-Funktion an den Prozessor 50c durch Schreiben des Identifizierungscodes des Prozessors 50c in das Interrupt-Ziel-Register 17 übertragen. In diesem Fall erhält der Prozessor 50c alle folgenden anhängigen Hard-Interrupts, wie beispielsweise dasjenige vom SBus-Gerät, und der Prozessor 50c wird auswählen, ob er das einzelne Interrupt annehmen oder weiterleiten will.
  • In allen Fällen werden Interrupts, die an die Prozessoren 50 gesendet werden und vom zugehörigen Prozessor-Interrupt-Register 32 angezeigt werden, vom Codierer 33 in ein 4- Bit-Signal für das Niveau der Interrupt-Anforderung für jeden Prozessor codiert. Das Interrupt-Anforderungs-Niveau-Signal wird auf vier den einzelnen Prozessoren 50a, 50b, 50c und 50d jeweils zugeordneten Interruptanforderungs-Kommunikationspfaden über die Interrupt-Anforderungsleitungen 35a-d ausgegeben. Die Prozessoren 50a, 50b, 50c und 50d haben je weils einen Vierdraht-Datenpfad, der den Prozessor mit dem Interrupt-Codierer 33 verbindet, und jeden Prozessor in die Lage versetzt, auf jedes der fünfzehn vom Codierer 33 codierten Niveaus von Interrupt-Prioritäten zu antworten.
  • Deshalb handhabt die Architektur, die Gegenstand der vorliegenden Anmeldung ist, die fünfzehn unterschiedlichen Prioritätsniveaus von Interrupts, die zur SPARC-Architektur gehören.
  • Im Vorangegangenen wurden Verfahren und Vorrichtungen zum dynamischen Lenken von ungerichteten Interrupts zu einem bestimmten Prozessor innerhalb eines Multiprozessor-Computersystems beschrieben.

Claims (23)

1. Ein Interrupt-Lenkungssystem in einem Computersystem zum dynamischen Leiten von Interrupt-Signalen (3) variabler Priorität zu beliebigen einer Mehrzahl von Prozessoren (50), wobei jeder Prozessor einen vorgegebenen Identifikationscode aufweist, wobei der Identifikationscode diesen Prozessor identifiziert, wobei das Interrupt-Lenkungssystem aufweist:
mit zumindest einer Systemeinrichtung gekoppelte Interrupt-Empfangseinrichtungen zum Empfangen der von den Systemeinrichtungen ausgegebenen Interrupt-Signale variabler Priorität;
ein Interrupt-Zielprozessor-Identifizierungsregister (17), auf das von den Prozessoren (50) zugegriffen werden kann, wobei die Prozessoren das Identifikationsregister (17) mit dem Identifikationscode eines der Prozessoren (50) programmieren, um diesen Prozessor als Zielprozessor zu kennzeichnen;
mit den Interrupt-Empfangseinrichtungen und dem Identifikationsregister (17) gekoppelte Interrupt-Lenkungseinrichtungen (20) zum Leiten der Interrupt-Signale (3) variabler Priorität zum Zielprozessor;
mehrere mit den Lenkungseinrichtungen (20) gekoppelte Benachrichtigungseinrichtungen (32) für anhängige prozessor-spezifische Interrupts, die den Prozessoren jedes mal signalisieren, wenn die Interrupt-Signale (3) anhängig sind, wobei jede Benachrichtigungseinrichtung (32) mit einem der Prozessoren (50) korrespondiert; und mit den Benachrichtigungseinrichtungen (32) gekoppelte Interrupt-Codiereinrichtungen (33) zum Konvertieren der Interrupt-Signale (3) in mehrere codierte prozessor-spezifische Interrupts (35), die an die mehreren Prozessoren (50) gerichtet sind.
2. Das Interrupt-Lenkungssystem nach Anspruch 1, wobei die Interrupt-Empfangseinrichtungen ein Register (13) für ein anhängiges System-Interrupt aufweisen.
3. Das Interrupt-Lenkungssystem nach Anspruch 2, wobei die Interrupt-Empfangseinrichtungen ferner mit den Lenkungseinrichtungen (20) gekoppelte Interrupt-Ziel-Maskiereinrichtungen (15) zum variablen Blockieren der Interrupt- Signale (3) aufweisen.
4. Das Interrupt-Lenkungssystem nach Anspruch 3, wobei die Interrupt-Ziel-Maskiereinrichtungen (15) ferner ein Interrupt-Ziel-Maskierregister aufweisen.
5. Das Interrupt-Lenkungssystem nach Anspruch 1, wobei die Lenkungseinrichtungen (20) ferner programmierbare Interrupt-Ziel-Identifikationseinrichtungen zum Identifizieren eines aktuellen Zielprozessors aufweisen.
6. Das Interrupt-Lenkungssystem nach Anspruch 1, wobei jede der Benachrichtigungseinrichtungen (32) mehrere Prioritätsanzeiger enthält, wobei jeder Prioritätsanzeiger dem Spezifizieren eines Interrupt-Prioritätsniveaus dient.
7. Das Interrupt-Lenkungssystem nach Anspruch 1, wobei die mehreren Benachrichtigungseinrichtungen ferner Soft- Interrupt-Empfangseinrichtungen (12) zum Empfangen mehrerer von einem beliebigen der Prozessoren erzeugter Soft-Interrupts aufweisen.
8. Das Interrupt-Lenkungssystem nach Anspruch 7, wobei die mehreren Soft-Interrupt-Empfangseinrichtungen (12) mehrere (atomische) Einzelbitzugriffsregister aufweisen, wobei die Einzelbitzugriffsregister mehrere Bits aufweisen, die entsprechend einem Soft-Interrupt-Kommando geändert werden, das von einem der mehreren Prozessoren geschrieben wird.
9. Das Interrupt-Lenkungsregister nach Anspruch 1, wobei die mehreren Benachrichtigungseinrichtungen (32) ferner Zeitgebereinrichtungen zum Erzeugen mehrerer zeitlich vorgegebener Interrupts für die mehreren Prozessoren aufweisen.
10. Das Interrupt-Lenkungssystem nach Anspruch 1, wobei die mehreren Benachrichtigungseinrichtungen (32) Rundsende- Interrupt-Empfangseinrichtungen zum Empfangen mehrerer Rundsende-Interrupt-Signale höchster Priorität aufweisen.
11. Das Interrupt-Lenkungssystem nach Anspruch 1, wobei die Codiereinrichtungen (33) mehrere Prioritätscodierer aufweisen, die die Interrupt-Signale (3) variabler Priorität codieren, um ein codiertes prozessor-spezifisches Interrupt eines höchsten Niveaus anzuzeigen.
12. Das Interrupt-Lenkungssystem nach Anspruch 11, wobei die Codiereinrichtungen (33) ferner mehrere mit den Codiereinrichtungen (33) und den mehreren Prozessoren (50) gekoppelte Interrupt-Anforderungsleitungen (35) aufweisen, wobei die Interrupt-Anforderungsleitungen (35) die Interrupt-Signale variabler Priorität, die die codierten prozessor-spezifischen Interrupts des höchsten Niveaus anzeigen, an die Prozessoren (50) übermitteln.
13. Das Interrupt-Lenkungssystem nach Anspruch 1, ferner aufweisend:
ein Register (13) anhängiger Interrupts als Teil der Interrupt-Empfangseinrichtungen zum Empfangen mehrerer Interrupt-Signale zugewiesener Priorität, die von zumindest einer Systemeinrichtung ausgegeben sind;
ein Interrupt-Ziel-Maskierregister (15) zum variablen Blockieren der Interrupts mit zugewiesener Priorität, wobei das Interrupt-Ziel-Maskierregister (15) mit dem Register (13) anhängiger Interrupts gekoppelt ist und mehrere Interrupt-Signale maskierter Priorität erzeugt;
einen Eingang zu den Lenkungseinrichtungen (20) , wobei der Eingang mehrere der Interrupt-Signale maskierter Priorität von dem Interrupt-Ziel-Maskierregister (15) empfangen kann, wobei die Lenkungseinrichtungen (20) mit dem Zielprozessor gekoppelt sind, um die mehreren Interrupt-Signale zugewiesener Priorität an den Zielprozessor weiterzuleiten;
eine ausgewählte von mehreren Empfangseinrichtungen (12) prozessor-spezifischer geleiteter Interrupts, die ferner mit den mehreren Prozessoren (50) gekoppelte Soft-Interrupt-Register zum Empfangen mehrerer von beliebigen der mehreren Prozessoren (50) erzeugter Soft- Interrupt-Signale aufweisen, wobei die Soft-Interrupt- Register darüber hinaus mit den Benachrichtigungseinrichtungen gekoppelt sind,
wobei die mehreren Empfangseinrichtungen (12) geleiteter Interrupts darüber hinaus mit den Benachrichtigungseinrichtungen gekoppelte Zeitgeber-Interrupt-Einrichtungen aufweisen zum Erzeugen mehrerer zeitlich vorgegebener Interrupt-Signale für beliebige der mehreren Prozessoren (50),
wobei die Codiereinrichtungen (33) ferner dem Konvertieren der Interrupt-Signale zugewiesener Priorität, der Soft-Interrupt-Signale und der Rundsende- Interrupt-Singale in mehrere codierte prozessorspezifische Interrupt-Benachrichtigungssignale dienen;
mehrere mit den Codiereinrichtungen (33) gekoppelte Interrupt-Anforderungsleitungen (35), wobei die Interrupt-Anforderungsleitungen (35) darüber hinaus mit den mehreren Prozessoren (50) gekoppelt sind und die codierten prozessor-spezifischen Interrupt-Benachrichtigungssignale an die mehreren Prozessoren (50) übermitteln; und
wobei jede der Benachrichtigungseinrichtungen (32) mehrere Prioritätsanzeiger enthält, wobei jeder Prioritätsanzeiger ein Interrupt-Prioritätsniveau spezifiziert,
wobei die mehreren Benachrichtigungseinrichtungen (32) darüber hinaus mit den mehreren. Systemeinrichtungen zum Empfangen mehrerer Rundsende-Interrupt- Signale höchster Priorität gekoppelt sind.
14. Das Interrupt-Lenkungssystem nach Anspruch 13, wobei das Interrupt-Ziel-Maskierregister (15) einen Code speichert, der den aktuellen Interrupt-Zielprozessor identifiziert.
15. Das Interrupt-Lenkungssystem nach Anspruch 13, wobei die Benachrichtigungseinrichtung (32) mit den mehreren Systemeinrichtungen gekoppelte Rundsende-Interrupt- Empfangseinrichtungen zum Empfangen der mehreren Interrupt-Signale höchster Priorität aufweisen.
16. Das Interrupt-Lenkungssystem nach Anspruch 13, wobei die Codiereinrichtungen (33) mehrere Prioritätscodierer zum Codieren der Interrupt-Signale aufweisen, um ein auf höchstem Niveau codiertes prozessor-spezifisches Interrupt anzuzeigen.
17. In einem Computersystem, ein Verfahren zum dynamischen Leiten einer Vielzahl von Interrupts unterschiedlicher Priorität an beliebige einer Vielzahl von Prozessoren (50), wobei jeder Prozessor einen vorgegebenen Identifikationscode hat, wobei der Identifikationscode diesen Prozessor identifiziert, wobei das Verfahren die Schritte aufweist:
Empfangen mehrerer Interrupt-Signale zugewiesener Priorität;
variables Blockieren der Interrupt-Signale zugewiesener Priorität und Erzeugen mehrerer Interrupt-Signale maskierter Priorität daraus,
Vorsehen von Lenkungseinrichtungen (20) zum Richten der mehreren Interrupt-Signale zugewiesener Priorität auf einen Zielprozessor, wobei die Lenkungseinrichtungen (20) einen Eingang haben, der die mehreren Interrupt- Signale maskierter Priorität empfangen kann;
Vorsehen eines mit den Lenkungseinrichtungen (20) gekoppelten Interrupt-Zielprozessor-Identifikationsregisters (17) zum Identifizieren des Zielprozessors, wobei das Identifikationsregister (17) für die Prozessoren (50) zugreifbar ist, wobei die Prozessoren das Identifikationsregister mit dem Identifikationscode eines der Prozessoren programmieren, um diesen Prozessor als Zielprozessor zu kennzeichnen;
Empfangen prozessor-spezifischer Interrupt-Benachrichtigungssignale;
Empfangen mehrerer von beliebigen der Vielzahl von Prozessoren (50) erzeugter Soft-Interrupts;
Erzeugen einer Vielzahl von zeitlich vorgegebenen Interrupts für beliebige der Vielzahl von Prozessoren;
Konvertieren der prozessor-spezifischen Interrupt- Benachrichtigungssignale in mehrere codierte prozessorspezifische Interrupt-Benachrichtigungssignale; und
Übermitteln der codierten prozessor-spezifischen Interrupt-Benachrichtigungssignale an die Vielzahl von Prozessoren (50).
18. Das Verfahren nach Anspruch 17, wobei die Interrupt- Signale zugewiesener Priorität von einem Register empfangen werden.
19. Das Verfahren nach Anspruch 17, wobei das variable Blockieren der Interrupt-Signale zugewiesener Priorität und das Erzeugen mehrerer Interrupt-Signale maskierter Priorität daraus ausgeführt wird, indem die Interrupt- Signale zugewiesener Priorität maskiert werden.
20. Das Vefahren nach Anspruch 19, wobei das Maskieren der Interrupt-Signale zugewiesener Priorität ausgeführt wird, indem zumindest ein Bit in einem Interrupt-Ziel- Maskierregister (15) gesetzt wird.
21. Das Verfahren nach Anspruch 20, wobei das Vorsehen des Identifikationsregisters (17) ferner das Speichern eines Codes umfaßt, der den Zielprozessor identifiziert.
22. Das Verfahren nach Anspruch 17, wobei das Empfangen der prozessor-spezifischen Interrupt-Benachrichtigungs Signale ferner das Vorsehen von Rundsende-Interrupt- Empfangseinrichtungen umfaßt, die mit den mehreren Systemeinrichtungen gekoppelt sind, um mehrere Interrupt-Signale höchster Priorität zu empfangen.
23. Das Verfahren nach Anspruch 17, wobei das Konvertieren der prozessor-spezifischen Interrupt-Benachrichtungssignale in mehrere codierte prozessor-spezifische Interrupt-Benachrichtigungssignale das Vorsehen mehrerer Prioritätscodierer (33) umfaßt.
DE69223303T 1991-09-27 1992-09-15 Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen Expired - Fee Related DE69223303T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US76702391A 1991-09-27 1991-09-27

Publications (2)

Publication Number Publication Date
DE69223303D1 DE69223303D1 (de) 1998-01-08
DE69223303T2 true DE69223303T2 (de) 1998-06-18

Family

ID=25078264

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69223303T Expired - Fee Related DE69223303T2 (de) 1991-09-27 1992-09-15 Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen

Country Status (5)

Country Link
US (1) US5560019A (de)
EP (1) EP0535821B1 (de)
JP (1) JP3381732B2 (de)
KR (1) KR0176262B1 (de)
DE (1) DE69223303T2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809309A (en) * 1990-09-28 1998-09-15 Texas Instruments Incorporated Processing devices with look-ahead instruction systems and methods
US5905898A (en) * 1994-05-31 1999-05-18 Advanced Micro Devices, Inc. Apparatus and method for storing interrupt source information in an interrupt controller based upon interrupt priority
US5781187A (en) * 1994-05-31 1998-07-14 Advanced Micro Devices, Inc. Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system
EP0685798B1 (de) * 1994-05-31 2003-07-16 Advanced Micro Devices, Inc. Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen
JPH0895798A (ja) * 1994-09-29 1996-04-12 Fujitsu Ltd データ処理装置
US5630049A (en) * 1994-11-30 1997-05-13 Digital Equipment Corporation Method and apparatus for testing software on a computer network
US5862389A (en) * 1995-02-27 1999-01-19 Intel Corporation Method and apparatus for selectively invoking a particular interrupt service routine for a particular interrupt request
US5692170A (en) * 1995-04-28 1997-11-25 Metaflow Technologies, Inc. Apparatus for detecting and executing traps in a superscalar processor
US5692200A (en) * 1995-10-16 1997-11-25 Compaq Computer Corporation Bridge circuit for preventing data incoherency by holding off propagation of data transfer completion interrupts until data clears the bridge circuit
KR0156173B1 (ko) * 1995-11-21 1998-11-16 문정환 인터럽트 발생회로
US5778236A (en) * 1996-05-17 1998-07-07 Advanced Micro Devices, Inc. Multiprocessing interrupt controller on I/O bus
US5923887A (en) * 1996-05-20 1999-07-13 Advanced Micro Devices, Inc. Interrupt request that defines resource usage
US5842026A (en) * 1996-07-01 1998-11-24 Sun Microsystems, Inc. Interrupt transfer management process and system for a multi-processor environment
CA2213767A1 (en) * 1996-08-20 1998-02-20 Norand Corporation Wireless communication system having reduced noise mode operation capability
US6125418A (en) * 1996-11-27 2000-09-26 Compaq Computer Corporation Method and apparatus for enabling a computer user to convert a computer system to an intelligent I/O system
US5848279A (en) * 1996-12-27 1998-12-08 Intel Corporation Mechanism for delivering interrupt messages
US5905897A (en) * 1997-03-20 1999-05-18 Industrial Technology Research Institute Method and apparatus for selecting a nonblocked interrupt request
US5983266A (en) * 1997-03-26 1999-11-09 Unisys Corporation Control method for message communication in network supporting software emulated modules and hardware implemented modules
DE69827755T2 (de) * 1997-07-21 2005-11-03 Koninklijke Philips Electronics N.V. Verfahren zum betreiben eines kommunikationskanals in einer gemischten master-/slave-teilnehmerumgebung durch eine dynamische schliess- und/oder öffnungsoperation und system zur durchführung des verfahrens
US6006301A (en) * 1997-09-30 1999-12-21 Intel Corporation Multi-delivery scheme interrupt router
US6192439B1 (en) * 1998-08-11 2001-02-20 Hewlett-Packard Company PCI-compliant interrupt steering architecture
US6138197A (en) * 1998-09-17 2000-10-24 Sun Microsystems, Inc. Apparatus and method for limit-based arbitration scheme
US6092143A (en) * 1998-10-20 2000-07-18 Advanced Micro Devices, Inc. Mechanism for synchronizing service of interrupts by a plurality of data processors
US6253260B1 (en) * 1998-10-22 2001-06-26 International Business Machines Corporation Input/output data access request with assigned priority handling
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management
US6735655B1 (en) * 1999-09-29 2004-05-11 Emc Corporation Interrupt request controller
US6606676B1 (en) * 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6947999B1 (en) 2000-03-17 2005-09-20 Exar Corporation UART with compressed user accessible interrupt codes
US6658594B1 (en) * 2000-07-13 2003-12-02 International Business Machines Corporation Attention mechanism for immediately displaying/logging system checkpoints
US7103696B2 (en) * 2001-04-04 2006-09-05 Adaptec, Inc. Circuit and method for hiding peer devices in a computer bus
US6775728B2 (en) * 2001-11-15 2004-08-10 Intel Corporation Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework
US7529875B2 (en) * 2003-08-20 2009-05-05 International Business Machines Corporation Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US7240137B2 (en) * 2004-08-26 2007-07-03 International Business Machines Corporation System and method for message delivery across a plurality of processors
US7222200B2 (en) * 2004-10-14 2007-05-22 Dell Products L.P. Method for synchronizing processors in SMI following a memory hot plug event
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7702835B2 (en) * 2005-02-03 2010-04-20 Oracle America, Inc. Tagged interrupt forwarding
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
US7519752B2 (en) * 2006-02-07 2009-04-14 International Business Machines Corporation Apparatus for using information and a count in reissuing commands requiring access to a bus and methods of using the same
JP4971676B2 (ja) * 2006-04-28 2012-07-11 ルネサスエレクトロニクス株式会社 割り込み制御回路及び割り込み制御方法
US20080046891A1 (en) * 2006-07-12 2008-02-21 Jayesh Sanchorawala Cooperative asymmetric multiprocessing for embedded systems
US7941624B2 (en) 2006-09-28 2011-05-10 Intel Corporation Parallel memory migration
US7493436B2 (en) * 2006-10-26 2009-02-17 International Business Machines Corporation Interrupt handling using simultaneous multi-threading
JP2008192128A (ja) * 2007-01-11 2008-08-21 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8645668B2 (en) 2007-01-11 2014-02-04 Sony Corporation Information processing apparatus, information processing method and computer program
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
CN101896887A (zh) * 2007-12-12 2010-11-24 Nxp股份有限公司 数据处理系统和中断处理方法
US7802042B2 (en) * 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
US20090172232A1 (en) * 2007-12-28 2009-07-02 Zimmer Vincent J Method and system for handling a management interrupt event
JP5169731B2 (ja) * 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
US8352804B2 (en) * 2010-05-20 2013-01-08 Infineon Technologies Ag Systems and methods for secure interrupt handling
US9146776B1 (en) * 2011-08-16 2015-09-29 Marvell International Ltd. Systems and methods for controlling flow of message signaled interrupts
US9128920B2 (en) 2011-11-30 2015-09-08 Marvell World Trade Ltd. Interrupt handling systems and methods for PCIE bridges with multiple buses
US9026705B2 (en) * 2012-08-09 2015-05-05 Oracle International Corporation Interrupt processing unit for preventing interrupt loss
US9665509B2 (en) * 2014-08-20 2017-05-30 Xilinx, Inc. Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system
US20160188503A1 (en) * 2014-12-25 2016-06-30 Intel Corporation Virtual legacy wire
US10013279B2 (en) * 2015-07-28 2018-07-03 International Business Machines Corporation Processing interrupt requests

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124888A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Peripheral-unit controller apparatus
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
US4349873A (en) * 1980-04-02 1982-09-14 Motorola, Inc. Microprocessor interrupt processing
US4604500A (en) * 1981-12-02 1986-08-05 At&T Bell Laboratories Multiprocessing interrupt arrangement
JPH077379B2 (ja) * 1983-06-22 1995-01-30 株式会社日立製作所 多重処理システムの割込み選択方式
US4769768A (en) * 1983-09-22 1988-09-06 Digital Equipment Corporation Method and apparatus for requesting service of interrupts by selected number of processors
US4779195A (en) * 1985-06-28 1988-10-18 Hewlett-Packard Company Interrupt system using masking register in processor for selectively establishing device eligibility to interrupt a particular processor
US4796176A (en) * 1985-11-15 1989-01-03 Data General Corporation Interrupt handling in a multiprocessor computing system
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
JPH0268632A (ja) * 1988-09-05 1990-03-08 Toshiba Corp 割込み制御装置
US5287523A (en) * 1990-10-09 1994-02-15 Motorola, Inc. Method for servicing a peripheral interrupt request in a microcontroller
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
US5222215A (en) * 1991-08-29 1993-06-22 International Business Machines Corporation Cpu expansive gradation of i/o interruption subclass recognition

Also Published As

Publication number Publication date
DE69223303D1 (de) 1998-01-08
JPH06266676A (ja) 1994-09-22
EP0535821A1 (de) 1993-04-07
JP3381732B2 (ja) 2003-03-04
KR930006543A (ko) 1993-04-21
US5560019A (en) 1996-09-24
EP0535821B1 (de) 1997-11-26
KR0176262B1 (ko) 1999-05-15

Similar Documents

Publication Publication Date Title
DE69223303T2 (de) Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
DE69032614T2 (de) Verfahren zur Datenverteilung in einer Speicherplattenanordnung
DE69429279T2 (de) Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern
DE3789104T2 (de) Netzwerkübertragungsadapter.
DE69128815T2 (de) Warteschlangen für gegenseitige Verriegelung
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE69030861T2 (de) Bus-Master-Steuerprotokoll
DE3688763T2 (de) Mehrfachport-Übertragungsadaptiervorrichtung.
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE3751399T2 (de) Parallelrechner mit verteilten, gemeinsam genutzten Speichern und verteilten, aufgabenaktivierenden Schaltungen.
DE3650036T2 (de) Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung.
EP0762274B1 (de) Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
DE69419680T2 (de) Skalierbare Unterbrechungsstruktur für ein Simultanverarbeitungssystem
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE68922261T2 (de) Verfahren und Vorrichtung für die Datenübertragung zwischen mehreren Aufgaben in Datenverarbeitungssystemen.
DE3127349C2 (de)
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE69024078T2 (de) Mehrprozessoranordnung mit Vervielfältigung von globalen Daten und mit zwei Stufen von Adressübersetzungseinheiten
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE602004012563T2 (de) Mehrfädiges DMA
DE3606211A1 (de) Multiprozessor-computersystem
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee