DE69730472T2 - Knoten-zu-Knoten-Unterbrechungsmechanismus in einem Multiprozessorsystem - Google Patents

Knoten-zu-Knoten-Unterbrechungsmechanismus in einem Multiprozessorsystem Download PDF

Info

Publication number
DE69730472T2
DE69730472T2 DE69730472T DE69730472T DE69730472T2 DE 69730472 T2 DE69730472 T2 DE 69730472T2 DE 69730472 T DE69730472 T DE 69730472T DE 69730472 T DE69730472 T DE 69730472T DE 69730472 T2 DE69730472 T2 DE 69730472T2
Authority
DE
Germany
Prior art keywords
processor
interrupt
interface controller
system bus
operable
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
DE69730472T
Other languages
English (en)
Other versions
DE69730472D1 (de
Inventor
Monica C. Wong-Chan
Erik Hagerstein
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 DE69730472D1 publication Critical patent/DE69730472D1/de
Application granted granted Critical
Publication of DE69730472T2 publication Critical patent/DE69730472T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

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

Description

  • Diese Erfindung bezieht sich auf Unterbrechungs- bzw. Interrupt-Mechanismen in Mehrfach-Prozessor-Systemen und auf einen solchen Interrupt-Mechanismus, bei dem der Interrupt von einem Prozessor an einen anderen Prozessor auf einem unterschiedlichen Systembus gesendet wird.
  • In Mehrfach-Prozessor-Systemen, bei denen die mehreren Prozessoren auf demselben Systembus sind, werden Interrupts zwischen Prozessoren mit geringer oder ohne Verzögerung ausgetauscht. Ein Interrupt von einem ersten Prozessor an einen zweiten Prozessor wird von dem zweiten Prozessor entweder bestätigt (ACK-Signal) oder nicht bestätigt (NACK-Signal). Abhängig davon, ob ein ACK oder ein NACK von dem ersten Prozessor als Zustand zurück aus dem zweiten Prozessor empfangen wird, fährt der erste Prozessor fort, die Interrupt-Daten zu senden oder die Interrupt-Transaktion abzubrechen.
  • Wenn ein Mehrfach-Prozessor-System mehrere Systembusse hat, sind die verschiedenen Systembusse durch eine globale Verbindungsstruktur wie etwa einen Bus oder ein Kommunikationsnetz verbunden. In dieser Umgebung kann es eine beträchtliche Verzögerung zwischen dem Senden der Interrupt-Adresse durch den einleitenden Prozessor, um die Interrupt-Transaktion zu beginnen, und dem Empfang des ACK- oder NACK-Zustands durch den einleitenden Prozessor zurück von einem Zielprozessor auf einem anderen Systembus geben.
  • Wenn eine Interrupt-Transaktion zu viel Zeit braucht, um abgeschlossen zu werden, kann der Prozessor, der die Interrupt-Transaktion einleitet, entweder Verarbeitungszeit bei der Behandlung der Interrupt-Transaktion vergeuden, die Transaktion erneut einleiten oder die Transaktion abbrechen.
  • Die Europäische Patentanmeldung EP-A-0.398.649 beschreibt ein Datenverarbeitungsnetz mit Mitteln zum Unterbrechen eines Prozesses, der auf einem entfernt gelegenen Netzknoten ausgeführt wird, von einem lokalen Knoten. Die Kommunikationslogik baut eine zweite Kommunikationsverbindung zwischen dem lokalen Knoten und dem entfernt gelegenen Konten auf, und eine Interrupt-Anforderung wird über diese zweite Kommunikationsverbindung gesendet. Die Interrupt-Logik unterbricht den entfernt ausgeführten Prozeß als Reaktion auf die Interrupt-Anforderung.
  • Verschiedene Aspekte der Erfindung werden in den beigefügten unabhängigen und abhängigen Ansprüchen dargelegt.
  • In einer Ausführungsform dieser Erfindung wird das obige Problem durch Durchführen einer Interrupt-Transaktion in einem Mehrfach-Prozessor-System zwischen einem Quellprozessor auf einem lokalen Systembus und einem entfernt gelegenen Zielprozessor auf einem entfernt gelegenen Systembus gelöst. Der lokale Systembus ist durch eine Schnittstellensteuerung des lokalen Knotens mit einer globalen Verbindungsstruktur verbunden, und der Zielsystembus ist durch eine Schnittstellensteuerung des entfernt gelegenen Knotens mit der globalen Verbindungsstruktur verbunden. Der Quellprozessor leitet eine Interrupt-Anforderung auf dem lokalen Systembus ein. Die Schnittstellensteuerung des lokalen Knotens nimmt die Interrupt-Anforderung entgegen und sendet einen Igno rierungszustand an den Quellprozessor, wenn die Interrupt-Anforderung an einen Zielprozessor auf dem entfernt gelegenen Systembus adressiert ist. In diesem Fall gibt die Schnittstelle des lokalen Knotens außerdem die Interrupt-Anforderung über die globale Verbindungsstruktur an die Schnittstellensteuerung des entfernt gelegenen Knotens weiter. Der Quellprozessor setzt als Reaktion auf den Ignorierungszustand seinen Interrupt-Transaktions-Prozeß aus. Die Schnittstellensteuerung des entfernt gelegenen Knotens reagiert auf die Interrupt-Anforderung, um die Anforderung an den Zielprozessor zu senden. Der Zielprozessor reagiert auf die Interrupt-Anforderung und gibt ein ACK-(Acknowledge- bzw. Bestätigungs)-Signal zurück, wenn der Zielprozessor bereit ist, die Interrupt-Anforderung zu verarbeiten, und gibt ein NACK-(Non-Acknowledge- bzw. Nicht-Bestätigungs)-Signal zurück, wenn der Zielprozessor beschäftigt ist. Die Schnittstellensteuerung des entfernt gelegenen Knotens gibt das ACK- oder NACK-Signal über die globale Verbindungsstruktur an die Schnittstellensteuerung des lokalen Knotens zurück. Die Schnittstellensteuerung des lokalen Knotens reagiert auf das ACK-Signal oder das NACK-Signal, um das ACK- oder NACK-Signal an den Quellprozessor zu senden. Der Quellprozessor reagiert auf das ACK-Signal oder das NACK-Signal, um den Interrupt-Transaktions-Prozeß in dem Quellprozessor aufzuwecken, und sendet als Reaktion auf das ACK-Signal ein Interrupt-Datenpaket an den Zielprozessor und bricht als Reaktion auf ein NACK-Signal die Interrupt-Transaktion ab.
  • Vorzugsweise hat die Schnittstellensteuerung des lokalen Knotens ein Erkennungs- bzw. Erfassungs-Modul, das auf die Zieladresse reagiert, um zu erkennen, daß der Zielprozessor auf einem entfernt gelegenen Systembus ist. Ein Sende-Modul bei der Schnittstelle des lokalen Knotens reagiert darauf, daß das Erkennungs-Modul erkennt, daß der Zielprozessor auf einem entfernt gelegenen Systembus ist, und sendet den Ignorierungszustand an den Quellprozessor und leitet die Interrupt-Adresse an die Schnittstellensteuerung des entfernt gelegenen Knotens weiter.
  • Vorzugsweise reagiert das Erkennungs-Modul auf die Zieladresse, um zu erkennen, daß der Zielprozessor auf dem lokalen Systembus ist. Der Zielprozessor sendet ein ACK-Signal oder ein NACK-Signal über den lokalen Systembus an den Quellprozessor, so daß die Interrupt-Transaktion auf dem lokalen Bus behandelt wird.
  • Vorzugsweise hat die Schnittstellensteuerung des lokalen Knotens ein Neuaussende-Modul, das auf ein ACK-Signal oder ein NACK-Signal von dem Zielprozessor über die Schnittstellensteuerung des entfernt gelegenen Knotens reagiert und die Interrupt-Anforderung mit der Quelladresse erneut zurück an den Quellprozessor ausgibt. Ein Bestätigungsmodul in der Schnittstellensteuerung des lokalen Knotens reagiert auf das ACK-Signal von dem Zielprozessor, um ein ACK-Signal auf dem lokalen Systembus zu bestätigen, und reagiert auf das NACK-Signal von dem Zielprozessor zum Bestätigen eines NACK-Signals auf dem lokalen Systembus.
  • Der Quellprozessor hat ein Aufweck-Modul, das auf die Interrupt-Anforderung reagiert und den Interrupt-Transaktions-Prozeß in dem Quellprozessor aufweckt. Ein Sende-Modul in dem Quellprozessor reagiert auf das ACK-Signal und sendet das Interrupt-Datenpaket an den Zielprozessor. Ein Abbruch-Modul in dem Quellprozessor reagiert auf das NACK-Signal und bricht die Interrupt-Transaktion ab.
  • Vorzugsweise reagiert die Schnittstellensteuerung des lokalen Knotens auf das Interrupt-Datenpaket und sendet das Interrupt-Datenpaket zusammen mit einer Interrupt-Transaktions-Abschlußnachricht an die Schnittstellensteuerung des entfernt gelegenen Knotens. Die Schnittstellensteuerung des entfernt gelegenen Knotens reagiert auf das Interrupt-Datenpaket und sendet das Interrupt-Datenpaket an den Zielprozessor. Die Schnittstellensteuerung des entfernt gelegenen Knotens reagiert auch auf die Interrupt-Transaktions-Abschlußnachricht und gibt die Ressourcen der Schnittstellensteuerung des entfernt gelegenen Knotens frei.
  • Vorzugsweise reagiert die Schnittstellensteuerung des lokalen Knotens auf das NACK-Signal und sendet eine Interrupt-Transaktions-Abschlußnachricht an die Schnittstellensteuerung des entfernt gelegenen Knotens. Die Schnittstellensteuerung des entfernt gelegenen Knotens reagiert auf die Interrupt-Transaktions-Abschlußnachricht und gibt die Ressourcen der Schnittstellensteuerung des entfernt gelegenen Knotens frei.
  • Der große Vorteil und Nutzwert der vorliegenden Erfindung ist die Fähigkeit, Interrupt-Transaktionen bei einem entfernt gelegenen Zielprozessor zu behandeln, ohne den Quellprozessor ungebührlich zu belasten.
  • Ausführungsformen der Erfindung werden hier im Anschluß nur als Beispiel beschrieben unter Bezug auf die beigefügten Zeichnungen, von denen:
  • 1 die bevorzugte Ausführungsform des Interrupt-Mechanismus' zur Behandlung von Interrupt-Transaktionen auf demselben Systembus oder über eine Verbindungsstruktur zu einem anderen Systembus zeigt.
  • 2 ein Beispiel der Betriebsumgebung für die vorliegende Erfindung darstellt.
  • 3 zusammengesetzt aus den 3A, 3B und 3B die Operationen darstellt, die von einem Quellprozessor, der Schnittstellensteuerung eines ersten Knotens, der Schnittstellensteuerung eines zweiten Knotens und einem Zielprozessor durchgeführt werden, um die Interrupt-Transaktion über eine globale Verbindungsstruktur gemäß einer bevorzugten Ausführungsform der Erfindung zu bewerkstelligen.
  • Die Betriebsumgebung für die Erfindung wird in 1 dargestellt. 1 zeigt ein Mehrprozessorsystem mit einer globalen Verbindungsstruktur, die drei Knoten mit mehreren Prozessoren an jedem Knoten in einem Mehrprozessorsystem verbindet. Die mehreren Prozessoren an jedem Knoten sind durch einen Systembus verbunden. Zum Beispiel sind der Prozessor 32 und der Prozessor 34 durch den Systembus 0 (SB0) miteinander verbunden. Der Systembus ist seinerseits mit der globalen Verbindungsstruktur 30 durch die Schnittstellensteuerung 0 des Knotens verbunden. Die globale Verbindungsstruktur 30 könnte so einfach wie ein Kreuzschienen-Umschalter bzw. Cross-Bar Switch oder ein Bus sein oder sie könnte ein Kommunikationsnetz sein. Jeder der drei Knoten in 1 folgt dieser selben Struktur mit mehreren an einen Systembus angeschlossenen Prozessoren, deren Systembus mit einer Schnittstellensteuerung des Knotens verbunden ist, und die Schnittstellensteuerungen der Knoten sind über die globale Verbindungsstruktur verbunden.
  • Jeder der Prozessoren in dem Mehrprozessorsystem hat einen Cachespeicher und nutzt den Hauptspeicher gemeinsam mit anderen Prozessoren in dem Mehrprozessorsystem. Für Zwecke dieser Ausführungsform sind die in jedem Prozessor verwendeten Register, wie für den Prozessor 32 (P0) abgebildet, ein Interrupt-Abfertigungs- bzw. Dispatch-Register 36, ein Interrupt-Abfertigungs-Zustandsregister 38, ein Interrupt-Empfangsregister 40 und ein Interrupt-Empfangs-Zustandsregister 42. Diese Register sind nur für den Prozessor 32 (P0) abgebildet, aber sie sind in jedem der Prozessoren in dem Mehrprozessorsystem von 1 vorhanden. Die Schnittstellensteuereinrichtungen 44, 46 und 48 der Knoten sind alle intelligente Einrichtungen, die aus ASICs (Application Specific Integrated Circuits, anwendungsspezifischen integrierten Schaltkreisen) hergestellt sind.
  • 2 stellt die bevorzugte Ausführungsform der Erfindung dar, bei der eine von einem ersten Prozessor eingeleitete Interrupt-Transaktion entweder als eine lokale Interrupt-Transaktion auf demselben Systembus oder als eine entfernt ausgeführte Interrupt-Transaktion durch eine globale Verbindungsstruktur zu einem Zielprozessor an einem zweiten Systembus bearbeitet wird. Die Operationen beginnen bei dem Quellprozessor P0, der die Interrupt-Transaktion (INTR TRAX) in der Operation 10 einleitet. Bei der Transaktion auf dem lokalen Systembus erkennt die Operation 12, ob die Interrupt-Transaktion für einen Prozessor an dem lokalen Systembus oder für einen Prozessor an einem entfernt gelegenen Systembus ist. Wenn die Interrupt-Transaktion für einen lokalen Prozessor ist, verzweigt der Operationsfluß bei "Ja" zu den lokalen Interrupt-Transaktions-Operationen 14. Wenn die Interrupt-Transaktion für einen zweiten Prozessor über ein Kommunikationsnetz zu einem zweiten Systembus ist, verzweigt der Operationsfluß bei "Nein" von der Entscheidung 12 zur Aussetzungs- bzw. Suspend-Operation 16. Die Suspend-Operation 16 setzt die Interrupt-Transaktion bei P0, dem einleitenden Prozessor für die Interrupt-Transaktion, aus. Während die Transaktion bei dem einleitenden Prozessor P0 ausgesetzt ist, werden entfernt vorgenommene Bestätigungs-/Nicht-Bestätigungs-(NACK)-Operationen 18 durchgeführt. Diese entfernt ausgeführten ACK/NACK-Operationen umfassen das Kommunizieren einer Interrupt-Anforderung an einen Zielprozessor über das Kommunikationsnetz und einen zweiten Systembus, an den der Zielprozessor angehängt ist. Der Zielprozessor gibt ein ACK/NACK-Zustandssignal abhängig davon zurück, ob er beschäftigt bzw. belegt ist.
  • Die Operation 20 erkennt, ob der Rückgabezustand ACK oder NACK ist. Wenn der Zielprozessor die Interrupt-Anforderung bestätigt, dann verzweigt der Operationsfluß zur Operation 22, bei der der einleitende Prozessor P0 auf dem zweiten Bus die Interrupt-Transaktions-Daten an den Zielprozessor P1 sendet. Die Operationen 22 schließen die Übertragung der Interrupt-Daten zwischen dem einleitenden Prozessor P0 und dem Zielprozessor P1 ab.
  • Wenn die Entscheidungsoperation 20 erkennt, daß die Zustandsmeldung von dem Zielprozessor NACK lautet, dann verzweigt der Operationsfluß zu der Abbruch-Operation 24. In der Abbruch-Operation 24 bricht der einleitende Prozessor die Interrupt-Transaktion ab.
  • 3, bestehend aus den 3A, 3B und 3C, stellt die Operationen dar, die von einem einleitenden Prozessor, P0, einem Zielprozessor, P1, einer Schnittstellensteuerung 0 des Knotens, der den einleitenden Prozessor beinhaltet, und einer Schnittstellensteuerung 1 des Knotens, der den Zielprozessor beinhaltet, durchgeführt werden. 3 ist in vier Spalten gegliedert, welche die Vorgänge anzeigen, die an dem einleitenden Prozessor P0, der Schnittstellensteuerung 0 des Knotens an demselben Systembus wie der einleitende Prozessor, der Schnittstellensteuerung 1 des Knotens an demselben Systembus wie der Zielprozessor und dem Zielprozessor 1 durchgeführt wurden.
  • In 3A fängt die Operation bei dem einleitenden Prozessor P0 an, wobei die Operation 50 eine an den Zielprozessor P1 adressierte Interrupt-Transaktion (INTR TRAX) einleitet. Die Operation 52 bei P0 lenkt die Interrupt-Adresse (INTR ADDR), wie sie von dem Interrupt- Abfertigungs-Register versendet wird, auf den Systembus 0 (SB0). Die Schnittstellensteuerung 0 des Knotens (NIC0) nimmt dann in der Operation 54 die Interrupt-Adresse (INTR ADDR) entgegen. Die Operation 54 erkennt außerdem, daß diese Interrupt-Adresse für den Prozessor P1 ist, der in dem Knoten 1 liegt.
  • Als Reaktion auf das Erkennen der Interrupt-Adresse für einen anderen Knoten sendet die Operation 56 einen IGNORE-Zustand auf dem SB0 aus. Der Prozessor P0 nimmt in der Operation 58 den IGNORE-Zustand als die Antwort an P0, der die Interrupt-Adresse herausgibt entgegen. Als Reaktion auf den IGNORE-Zustand setzt P0 die Interrupt-Transaktion in Operation 60 aus. In der Zwischenzeit sendet die Schnittstellensteuerung 0 des Knotens (NIC0) in Operation 62 eine Interrupt-Anforderung an NIC1. Wie in 1 gezeigt, liegt NIC1 bei Knoten 1, die mehrere Prozessoren einschließlich des Zielprozessors P1 beinhaltet, die über einen Systembus SB1 miteinander verbunden sind.
  • Bei NIC1 empfängt die Operation 64 die Interrupt-Anforderung für den Zielprozessor P1. NIC1 lenkt dann die Interrupt-Adresse, die in der Interrupt-Anforderung enthalten ist, während der Operation 66 auf den Systembus SB1.
  • Der Zielprozessor P1 nimmt die Interrupt-Adresse von dem Systembus an und identifiziert sich selbst als den Empfänger der Interrupt-Transaktion. Die Entscheidungsoperation 70 bei dem Zielprozessor P1 prüft, ob der Prozessor BUSY ist, d. h. eine Interrupt-Transaktion von einem anderen Prozessor behandelt. Wenn der Prozessor BUSY ist, verzweigt der Operationsfluß von der Entscheidungsoperation 70 zu der Sendeoperation 72 in 3C. Wenn der Zielprozessor NOT BUSY ist, dann verzweigt der Operationsfluß zu der Sendeoperation 74. Die Operation 74 sendet eine Bestätigung (ACK) auf SB1 aus. Die Schnittstellensteuerung 1 des Knotens nimmt diesen Bestätigungszustand in seiner Operation 76 an. Der Rest des Operationsflusses als Reaktion auf einen ACK-Zustand ist in 3B abgebildet.
  • Nachdem NIC1 den ACK-Zustand von dem Zielprozessor angenommen hat, sendet die Operation 76 in 3B eine ACK-Antwort an NIC0. In NIC0 empfängt die Operation 78 die ACK-Antwort. Als Reaktion auf die ACK-Antwort gibt NIC0 in Operation 80 die Interrupt-Adresse erneut auf SB0 aus. In dem einleitenden Prozessor P0 nimmt die Operation 82 die Interrupt-Adresse entgegen und weckt den Interrupt-Transaktions-Prozeß in Prozessor P0.
  • Nachdem NIC0 die Interrupt-Adresse erneut ausgegeben hat, bestätigt bzw. setzt die Operation 84 in NIC0 den ACK-Zustand für den Zielprozessor auf SB0. Der einleitende Prozessor P0, der in Operation 86 geweckt wurde, nimmt den ACK-Zustand in Operation 86 entgegen. Die Operation 88 in dem einleitenden Prozessor sendet dann das Interrupt-Datenpaket auf dem Systembus SB0 aus.
  • NIC0 nimmt bei der Operation 90 das Interrupt-Datenpaket entgegen. Die Operation 92 sendet dann das Interrupt-Datenpaket zusammen mit einer Abschlußnachricht an NIC1.
  • In NIC1 empfängt die Operation 94 das Interrupt-Datenpaket und die Abschlußnachricht. NIC1 sendet in Operation 96 die Interrupt-Daten auf SB1. Nachdem die Interrupt-Daten auf SB1 ausgesendet sind, gibt die Operation 98 die Ressourcen in NIC1 frei, um die nächste Transaktion zu behandeln.
  • In dem Zielprozessor P1 nimmt die Operation 100 die Interrupt-Daten entgegen, die von NIC1 auf den Systembus SB1 gegeben wurden. Nachdem das Interrupt-Datenpaket von dem Zielprozessor P1 entgegengenommen wurde, ist die von dem einleitenden Prozessor P0 eingeleitete Interrupt-Transaktion abgeschlossen.
  • 3C stellt den Operationsfluß in dem Falle dar, daß der Zielprozessor P1 BUSY ist, und die Operation 72 in 3C einen NACK-Zustand auf SB1 ausgesendet hat. Operation 102 in NIC1 nimmt den NACK-Zustand auf dem Systembus SB1 entgegen. Als Reaktion auf den NACK-Zustand sendet die Operation 104 eine NACK-Antwort an NIC0.
  • Die Operation 106 in NIC0 empfängt die NACK-Antwort und leitet Operation 108 ein. Die Operation 108 gibt die Interrupt-Adresse erneut auf SB0 aus. In dem einleitenden Prozessor P0 nimmt die Operation 110 die Interrupt-Adresse entgegen und weckt als Reaktion darauf die Interrupt-Transaktions-Verarbeitung bei dem einleitenden Prozessor P0. NIC0 setzt bzw. bestätigt nach der erneuten Ausgabe der Interrupt-Adresse in der Operation 112 den NACK-Zustand auf SB0. Dies ist der NACK-Zustand, der von dem Zielprozessor P1 herrührt. Der einleitende Prozessor P0 nimmt in der Operation 114 diesen NACK-Zustand entgegen. Danach bricht der Prozessor P0 die Interrupt-Transaktion in der Operation 116 ab. Nachdem die Interrupt-Transaktion abgebrochen ist, setzt der einleitende Prozessor P0 einen erneuten Versuch der Interrupt-Transaktion, um ein Auslösen der Interrupt-Transaktion zu einem späteren Zeitpunkt erneut zu versuchen.
  • Nach dem Senden des NACK-Zustandes sendet NIC0 in Operation 120 eine Abschlußnachricht an NIC1. Die Operation 120 erzeugt schlußendlich die Antwort, nachdem NIC0 den NACK-Zustand auf SB0 gesetzt bzw. bestätigt hat. Diese Antwort ist einfach eine Abschlußnachricht. In der Operation 120 wird kein Interrupt-Datenpaket gesendet.
  • In NIC1 wird die Abschlußnachricht von der Operation 122 empfangen. NIC1 leitet als Reaktion auf die Abschlußnachricht die Operation 124 ein. Operation 124 gibt alle Ressourcen frei, die der Interrupt-Transaktion in NIC1 zugeordnet sind. NIC1 ist dann bereit, die nächste Interrupt-Transaktion zu verarbeiten.
  • Während die Erfindung unter Bezug auf eine bevorzugte Ausführungsform genau dargestellt und beschrieben wurde, versteht es sich für Fachleute auf dem Gebiet, daß darin verschiedene sonstige Änderungen in der Form und den Einzelheiten vorgenommen werden können, ohne den Schutzumfang der Erfindung zu verlassen.

Claims (14)

  1. Verfahren zum Handhaben einer Interrupt-Transaktion in einem Mehrprozessor-Computersystem, welches einen Quellprozessor (32) auf einem lokalen Systembus (SB0) und einen entfernten Systembus (SB1, SB2) aufweist, wobei der lokale Systembus über eine Schnittstellensteuerung (44) eines lokalen Knotens mit einer globalen Verbindungsstruktur (30) verbunden ist und der entfernte Systembus über eine Schnittstellensteuerung (46, 48) eines entfernten Knotens mit der globalen Verbindungsstruktur verbunden ist, wobei das Verfahren die Schritte aufweist: Auslösen (10, 50) einer Interrupt-Anforderung durch den Quellprozessor auf dem lokalen Systembus, und gekennzeichnet durch: Aufnehmen der Interrupt-Anforderung durch die Schnittstellensteuerung des lokalen Knotens und Senden (56) eines Ignorierungszustandes an den Quellprozessor (12), falls die Interrupt-Anforderung an einen Zielprozessor an dem entfernten Systembus gerichtet ist, und Weiterleiten der Interrupt-Anforderung über die globale Verbindungsstruktur an die Schnittstellensteuerung des entfernt gelegenen Knotens, wobei der Quellprozessor einen Interrupt-Transaktionsvorgang in Reaktion auf den Ignorierungszustand aussetzt (60), die Schnittstellensteuerung des entfernt gelegenen Knotens auf die Interrupt-Anforderung reagiert, indem sie die Anforderung an den Zielprozessor sendet (66), der Zielprozessor auf die Interrupt-Anforderung reagiert, indem er ein ACK-(Acknowledge – Bestätigungs-)Signal zurückliefert (74), falls der Zielprozessor bereit ist, die Interrupt-Transaktion zu verarbeiten, und indem er ein NACK-(Non-Acknowledge – Nicht-Bestätigungs-)Signal zurückliefert (72), wenn der Zielprozessor beschäftigt ist, die Schnittstellensteuerung des entfernt gelegenen Knotens das ACK- oder NACK-Signal über die globale Verbindungsstruktur an die Schnittstellensteuerung des lokalen Knotens zurückliefert (76, 104), die Schnittstellensteuerung des lokalen Knotens auf das ACK-Signal oder das NACK-Signal reagiert, um das ACK- oder NACK-Signal an den Quellprozessor zu senden, und der Quellprozessor auf das ACK-Signal oder NACK-Signal reagiert, indem er den Interrupt-Transaktionsvorgang aufweckt bzw. wiederaufnimmt und in Reaktion auf das ACK-Signal ein Interrupt-Datenpaket an den Zielprozessor sendet (88) und in Reaktion auf das NACK-Signal die Interrupt-Transaktion abbricht (116).
  2. Verfahren nach Anspruch 1, welches weiterhin die computerimplementierten Schritte aufweist: Erfassen, ob der Zielprozessor sich auf einem lokalen Knoten auf demselben Systembus wie der Quellprozessor befindet, und Durchführen (14) einer lokalen Interrupt-Transaktion, falls der Schritt des Erfassens ergibt, daß der Zielprozessor ein lokaler Knoten ist.
  3. Verfahren nach Anspruch 1, wobei der Schritt des Auslösens das Senden einer Interrupt-Adresse aufweist, welche den Zielprozessor als das Ziel der Interrupt-Transaktion identifiziert.
  4. Verfahren nach Anspruch 3, wobei der Schritt des Aussetzens die computerimplementierten Schritte aufweist: Senden eines Ignorieren-Signals an den Quellprozessor in Reaktion auf den Schritt des Erfassens, mit welchem festgestellt wird, daß der Zielprozessor sich auf einem entfernt gelegenen Knoten befindet und Aufnehmen des Ignorieren-Signals an dem Quellprozessor und in Reaktion darauf Aussetzen der Interrupt-Transaktion auf dem Quellprozessor.
  5. Verfahren nach Anspruch 4, wobei der Schritt des Wiederaufnehmens die computerimplementierten Schritte aufweist: Senden eines ACK-Signals oder eines NACK-Signals an den Quellprozessor von dem Zielprozessor, und Aufnehmen des ACK-Signals oder NACK-Signals an dem Quellprozessor und in Reaktion darauf Wiederaufnehmen der Interrupt-Transaktion an dem Quellprozessor.
  6. Mehrprozessor-Computersystem mit einem Quellprozessor (32) auf einem lokalen Systembus (SB0), und mit einem ferngelegenen Systembus (SB1, SB2), wobei der lokale Systembus über eine Schnittstellensteuerung (44) eines lokalen Knotens mit einer globalen Verbindungsstruktur (30) verbunden ist und der entfernte Systembus über eine Schnittstellensteuerung (46, 48) eines entfernt gelegenen Knotens mit der globalen Verbindungsstruktur verbunden ist, wobei: der Quellprozessor so betreibbar ist, daß er eine Interrupt-Anforderung auf dem lokalen Systembus auslöst (10, 50), dadurch gekennzeichnet, daß die Schnittstellensteuerung des lokalen Knotens so betreibbar ist, daß sie die Interrupt-Anforderung einfängt bzw. aufnimmt und einen Ignorieren-Zustand an den Quellprozessor sendet (56), wenn (12) die Interrupt-Anforderung an einen Zielprozessor auf dem entfernt gelegenen Systembus gerichtet ist, und Weiterleiten (62) der Interrupt-Anforderung über die globale Verbindungsstruktur an die Schnittstellensteuerung des entfernten Knotens, wobei der Quellprozessor weiterhin so betreibbar ist, daß er auf dem lokalen Systembus eine Interrupt-Anforderung auslöst (10, 50), dadurch gekennzeichnet, daß die Schnittstellensteuerung des lokalen Knotens so betreibbar ist, daß sie die Interrupt-Anforderung aufnimmt und einen Ignorieren-Zustand an den Quellprozessor sendet (56), falls (12) die Interrupt-Anforderung an einen Zielprozessor auf dem entfernt gelegenen Systembus adressiert ist, und die Interrupt-Anforderung über die globale Verbindungsstruktur an die Schnittstellensteuerung des entfernt gelegenen Knotens weiterleitet (62), der Quellprozessor weiterhin so betreibbar ist, daß er einen Interrupt-Transaktionsprozeß in Reaktion auf den Ignorieren-Zustand aussetzt (66), die Schnittstellensteuerung des entfernt gelegenen Knotens so betreibbar ist, daß sie auf die Interrupt-Anforderung reagiert, indem die Anforderung an den Zielprozessor gesendet wird (66), der Zielprozessor so betreibbar ist, daß er auf die Interrupt-Anforderung reagiert, indem er ein ACK-(Acknowledge – Bestätigungs-)Signal liefert (74), falls der Zielprozessor bereit ist, die Interrupt-Transaktion auszuführen, und ein NACK-(Non-Acknowledge – Nicht-Bestätigungs-)Signal liefert (72), falls der Zielprozessor beschäftigt ist, wobei die Schnittstellensteuerung des entfernten Knotens weiterhin so betreibbar ist, daß sie das ACK- oder NACK-Signal über die globale Verbindungsstruktur an die Schnittstellensteuerung des lokalen Knotens liefert (76, 104), wobei die Schnittstellensteuerung des lokalen Knotens weiterhin so betreibbar ist, daß sie auf das ACK-Signal oder NACK-Signal in der Weise reagiert, daß das ACK- oder NACK-Signal an den Quellprozessor gesendet wird (80, 108), und wobei der Zielprozessor weiterhin so betreibbar ist, daß er auf das ACK-Signal oder das NACK-Signal reagiert, indem er den Interrupt-Transaktionsprozeß wiederaufruft ("aufweckt") (82, 110) und ein Interrupt-Datenpaket in Reaktion auf das ACK-Signal an den Zielprozessor sendet, und in Reaktion auf ein NACK-Signal die Interrupt-Transaktion abbricht (116).
  7. System nach Anspruch 6, wobei die Interrupt-Anforderung eine Interrupt-Adresse umfaßt, welche einen Zielprozessor kennzeichnet, und wobei die Schnittstellensteuerung des lokalen Knotens aufweist: ein Erfassungsmodul, welches so betreibbar ist, daß es auf die Zieladresse reagiert und erfaßt (54), ob der Zielprozessor sich auf dem entfernt gelegenen Systembus findet, und ein Sendemodul, welches so betreibbar ist, daß es darauf reagiert, daß das Erfassungsmodul feststellt, daß der Zielprozessor sich auf dem entfernten Systembus befindet, indem es einen Ignorieren-Zustand an den Quellprozessor sendet und die Interrupt-Adresse an die Schnittstellensteuerung des entfernt gelegenen Knotens weiterleitet.
  8. System nach Anspruch 7, wobei: das Erfassungsmodul so betreibbar ist, daß es auf die Interrupt-Adresse reagiert und erfaßt, ob der Zielprozessor sich auf dem lokalen Systembus befindet, und der Zielprozessor so betreibbar ist, daß er über den lokalen Systembus an den Quellprozessor ein ACK-Signal oder ein NACK-Signal sendet (14).
  9. System nach Anspruch 7, wobei die Schnittstellensteuerung des lokalen Knotens weiterhin aufweist: ein Wiederausgabemodul, welches so betreibbar ist, daß es auf ein ACK-Signal oder ein NACK-Signal von dem Zielprozessor über die Schnittstellensteuerung des entfernt gelegenen Knotens reagiert, indem es die Interrupt-Anforderung mit der Quelladresse zurück an den Quellprozessor erneut ausgibt, ein Vorbringungsmodul, welches so betreibbar ist, daß es auf das ACK-Signal von dem Zielprozessor reagiert, indem es ein ACK-Signal auf dem lokalen Systembus vorbringt, und so betreibbar ist, daß es auf das NACK-Signal von dem Zielprozessor in der Weise reagiert, daß ein NACK-Signal auf dem lokalen Systembus vorgebracht wird.
  10. Vorrichtung nach Anspruch 9, wobei der Quellprozessor aufweist: ein Aufwachmodul, welches so betreibbar ist, daß es auf die Interrupt-Anforderung reagiert durch Aufwecken bzw. Wiederaufnehmen des Interrupt-Transaktionsvorgangs in dem Quellprozessor, ein Sendemodul, welches so betreibbar ist, daß es auf das ACK-Signal reagiert, indem es das Interrupt-Datenpaket an den Zielprozessor sendet, und ein Abbrechmodul, welches so betreibbar ist, daß es auf das NACK-Signal reagiert, indem es den Interrupt-Transaktionsvorgang abbricht.
  11. Vorrichtung nach Anspruch 10, wobei: die Schnittstellensteuerung des lokalen Knotens so betreibbar ist, daß sie auf das Interrupt-Datenpaket reagiert, indem das Interrupt-Datenpaket an die Schnittstellensteuerung des entfernt gelegenen Knotens zusammen mit einer Abschlußnachricht über die Interrupt-Transaktion sendet (92).
  12. Vorrichtung nach Anspruch 11, wobei: die Schnittstellensteuerung des entfernt gelegenen Knotens so betreibbar ist, daß sie auf das Interrupt-Datenpaket reagiert, indem das Interrupt-Datenpaket an den Zielprozessor gesendet wird, und weiterhin so betreibbar ist, daß es auf die Abschlußnachricht der Interrupt-Transaktion reagiert, indem die Quellen der Schnittstellensteuerung des entfernt gelegenen Knotens freigegeben werden (98).
  13. Vorrichtung nach Anspruch 9, wobei: die Schnittstellensteuerung des lokalen Knotens so betreibbar ist, daß sie auf das NACK-Signal reagiert, indem sie eine Abschlußnachricht der Interrupt-Transaktion an die Schnittstellensteuerung des entfernt gelegenen Knotens sendet.
  14. Vorrichtung nach Anspruch 13, wobei: die Schnittstellensteuerung des entfernt gelegenen Knotens so betreibbar ist, daß sie auf die Abschlußnachricht der Interrupt-Transaktion reagiert, indem die Ressourcen der Schnittstellensteuerung des entfernt gelegenen Knotens freigegeben werden.
DE69730472T 1996-07-01 1997-06-23 Knoten-zu-Knoten-Unterbrechungsmechanismus in einem Multiprozessorsystem Expired - Fee Related DE69730472T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US672947 1996-07-01
US08/672,947 US5842026A (en) 1996-07-01 1996-07-01 Interrupt transfer management process and system for a multi-processor environment

Publications (2)

Publication Number Publication Date
DE69730472D1 DE69730472D1 (de) 2004-10-07
DE69730472T2 true DE69730472T2 (de) 2005-09-08

Family

ID=24700681

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69730472T Expired - Fee Related DE69730472T2 (de) 1996-07-01 1997-06-23 Knoten-zu-Knoten-Unterbrechungsmechanismus in einem Multiprozessorsystem

Country Status (4)

Country Link
US (1) US5842026A (de)
EP (1) EP0817038B1 (de)
JP (1) JPH113322A (de)
DE (1) DE69730472T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026472A (en) * 1997-06-24 2000-02-15 Intel Corporation Method and apparatus for determining memory page access information in a non-uniform memory access computer system
GB9809183D0 (en) * 1998-04-29 1998-07-01 Sgs Thomson Microelectronics Microcomputer with interrupt packets
US6665761B1 (en) * 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system
US6564277B1 (en) * 1999-09-30 2003-05-13 Silicon Graphics, Inc. Method and system for handling interrupts in a node controller without attached processors
US6772257B1 (en) * 1999-12-23 2004-08-03 Intel Corporation Method and apparatus for processing interrupts
US6754704B1 (en) 2000-06-21 2004-06-22 International Business Machines Corporation Methods, systems, and computer program product for remote monitoring of a data processing system events
US6732212B2 (en) * 2001-02-14 2004-05-04 Fujitsu Limited Launch raw packet on remote interrupt
US6988155B2 (en) * 2001-10-01 2006-01-17 International Business Machines Corporation Aggregation of hardware events in multi-node systems
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
US7493435B2 (en) 2003-10-06 2009-02-17 Intel Corporation Optimization of SMI handling and initialization
US7099977B2 (en) * 2004-01-12 2006-08-29 Hewlett-Packard Development Company, L.P. Processor interrupt filtering

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920008461B1 (ko) * 1989-05-15 1992-09-30 인터내셔널 비지네스 머신즈 코포레이션 프로세스 인터럽팅 시스템 및 그 방법
US5469542A (en) * 1991-07-22 1995-11-21 International Business Machines Corporation Serial diagnostic interface bus for multiprocessor systems
DE69223303T2 (de) * 1991-09-27 1998-06-18 Sun Microsystems Inc Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
US5404535A (en) * 1991-10-22 1995-04-04 Bull Hn Information Systems Inc. Apparatus and method for providing more effective reiterations of processing task requests in a multiprocessor system
US5633857A (en) * 1992-07-15 1997-05-27 Goldstar Information & Communications, Ltd. Apparatus and method for controlling data transmissions in a communication network
AU1832295A (en) * 1994-01-25 1995-08-08 Apple Computer, Inc. System and method for coordinating access to a bus
US5630059A (en) * 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system

Also Published As

Publication number Publication date
EP0817038B1 (de) 2004-09-01
EP0817038A2 (de) 1998-01-07
JPH113322A (ja) 1999-01-06
US5842026A (en) 1998-11-24
DE69730472D1 (de) 2004-10-07
EP0817038A3 (de) 1999-01-27

Similar Documents

Publication Publication Date Title
DE69730472T2 (de) Knoten-zu-Knoten-Unterbrechungsmechanismus in einem Multiprozessorsystem
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE3850585T2 (de) Datenverarbeitungssystem mit Überlappung von Buszyklusoperationen.
DE60117166T2 (de) Leistungsverwaltungszustandübergänge ohne agp-transaktionsstörungen
DE3587493T2 (de) Betriebssicheres Datenverarbeitungsbussystem.
DE69628127T2 (de) Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen
DE69419525T2 (de) Nachrichten-einrichtung für ein massiv paralleles verarbeitungsystem
DE69531410T2 (de) Mehrrechnerumgebungen
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE3876776T2 (de) Steuerflussverminderung in selektiven wiederholungsprotokollen.
DE69221986T2 (de) Vorrichtung zur Verringerung von Unterbrechungswiederholungsversuchen
DE3889511T2 (de) Speicherung von Grenzzeitüberschreitungen und Quittungsantworten nach Ein-/Ausgabebefehlen.
DE69016837T2 (de) VME-Multibus II-Schnittstellen-Anpassungsbaustein.
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
DE19900369A1 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE69129840T2 (de) Nachrichtensteuerungsverfahren für ein datenkommunikationssystem
DE69601060T2 (de) Integrierbare DDC-Schnittstelle für einen Mikroprozessor
DE68920443T2 (de) Systembus mit multiplexbetriebenen steuer-kennzeichnungsinformationen und daten.
DE69935960T2 (de) Auf Prioritäten basierter Daten- und Befehlsabruf
DE10007970A1 (de) Vorrichtung und Verfahren zum Umwandeln von Unterbrechungstransaktionen in Unterbrechungssignale, um Unterbrechungen an IA-32-Prozessoren zu verteilen
DE69715557T2 (de) Mikrorechner mit Paketbus

Legal Events

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