DE3687426T2 - Mehrprozessorsystem-architektur. - Google Patents

Mehrprozessorsystem-architektur.

Info

Publication number
DE3687426T2
DE3687426T2 DE8686105844T DE3687426T DE3687426T2 DE 3687426 T2 DE3687426 T2 DE 3687426T2 DE 8686105844 T DE8686105844 T DE 8686105844T DE 3687426 T DE3687426 T DE 3687426T DE 3687426 T2 DE3687426 T2 DE 3687426T2
Authority
DE
Germany
Prior art keywords
processor
bus
mailbox
interrupt
state
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
DE8686105844T
Other languages
English (en)
Other versions
DE3687426D1 (de
Inventor
Claudio Fiacconi
Antonio Franzosi
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems 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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Publication of DE3687426D1 publication Critical patent/DE3687426D1/de
Application granted granted Critical
Publication of DE3687426T2 publication Critical patent/DE3687426T2/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
    • 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/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf eine Mehrprozessor-Systemarchitektur und insbesondere auf den Dialogmechanismus, der Prozessoren befähigt, miteinander zu kommunizieren.
  • Verschiedene Arten von Mehrprozessor-Systemarchitekturen sind vorgeschlagen worden. Die Bus-Dialogarchitekturen sind unter den am häufigsten benutzten, und im Hinblick auf die Leistung sind sie komplex und teuer. Die verschiedenen Prozessoren sind miteinander und an einen oder mehrere Speicher über einen Dialogbus angeschlossen, der im Time-Sharing zugänglich ist. Ein Beispiel einer Bus-Systemarchitektur ist in dem US-Patent Nr. 4 404 628 offenbart.
  • Der Dialogbus bildet die Gruppe von Leitungen, die jeden Prozessor in die Lage versetzen, mit einem oder mehreren gemeinsam benutzten Speichern und mit einem oder mehreren gemeinsamen Peripheriegeräten zu kommunizieren. Der Dialogmechanismus zwischen Prozessoren und Peripheriegeräten ist im allgemeinen vom direkten Typ, d. h. der Prozessor wählt durch geeignete Befehle eine periphere Einheit aus, und wenn sie frei oder verfügbar ist, so sendet der Prozessor die geeigneten Anweisungen zu ihr. Der Prozessor arbeitet daher als Haupteinheit (Master) in bezug auf die periphere Einheit, die als Nebeneinheit (Slave) antwortet. Die peripheren Einheiten können den Dialog mit dem Master-Prozessor durch Unterbrechungsmechanismen starten, d. h. die periphere Einheit, die einem Prozessor Information mitzuteilen hat, erzeugt ein Unterbrechungssignal auf einer Unterbrechungsleitung, die nicht Teil des Systembusses ist. In geeigneter Zeit trägt der Prozessor, der die Unterbrechung empfängt, wenn die ablaufenden Operationen vervollständigt oder aufgegeben worden sind, der Unterbrechung Rechnung, indem mit geeigneten Anweisungen die Unterbrechungseinheit getestet wird, um die Natur und die Gründe einer solchen Unterbrechung zu identifizieren.
  • Dieser Dialogmechanismus zwischen Prozessoren und peripheren Einheiten ist wirksam, aber er beinhaltet die Zuordnung verschiedener Rollen eines Masters und eines Slaves zu dem Prozessor und der entsprechenden peripheren Einheit. Im Falle des Dialogs zwischen Prozessoren, die sowohl eine Zentraleinheit (oder CPU) als auch Steuerprozessoren für periphere Einheiten "I/O- Prozessoren" sein können, deren Betrieb aber auch in autonomerweise und mit gleichen Rechten beabsichtigt ist und die daher als Master arbeiten sollen, ist die Verwendung eines unterschiedlichen Dialogmechanismus bevorzugt, der nicht den Rollentausch der Prozessoren bei dem Dialogprozeß erfordert. Der verwendete Mechanismus ist der Dialog über ein Postfach (Mailbox).
  • In einem gemeinsam benutzten Speicher, auf den durch verschiedene Prozessoren zugegriffen werden kann, werden Speicherbereiche oder "Postfächer" definiert, von denen jedes einem Prozessor zugeordnet ist, auf das aber durch alle Prozessoren zugegriffen werden kann. Ein Prozessor A, der mit einem Prozessor B zu kommunizieren wünscht, schreibt einfach eine Nachricht in das Postfach des Prozessors B. Wie kann nun der Prozessor B wissen, daß eine Nachricht für ihn in dem Postfach vorliegt und wie kann der Prozessor A wissen, daß die Nachricht empfangen worden ist?
  • Eine im Stand der Technik verfolgte Lösung war der Aufruf (Polling), d. h. die periodische Überprüfung des Inhalts des Postfaches. Mit anderen Worten liest der Prozessor B periodisch sein Postfach aus, um das Vorliegen von an ihn adressierten Nachrichten zu überprüfen. In gleicher Weise liest der Prozessor A das Postfach des Prozessors B aus, um zu überprüfen, ob die gesendete Nachricht aus dem Postfach ausgelesen worden ist bzw. er überprüft periodisch alternativ das Vorliegen einer Antwortnachricht in seinem eigenen Postfach. Dieses Verfahren erforderte einen großen Zeitaufwand und daher ergab sich eine Herabminderung der Systemleistung im wesentlichen aus zwei Gründen: Erstens hat jeder Prozessor einen Teil seiner Zeit für Aufrufoperationen zur Verfügung zu stellen, und zweitens erforderten die Aufrufoperationen Speicher-Ausleseoperationen und daher die Belegung des gemeinsamen Busses, so daß zwei grundsätzliche Systemmittel benutzt wurden (Speicher und Bus), was ihre mögliche Benutzung durch andere Prozessoren verhindert.
  • Ein Verfahren zur Signalisierung des Vorliegens der Nachricht sehr ähnlich dem Unterbrechungsmechanismus ist daher dem Dialogprozeß über das Postfach zugeordnet worden. Ein solches Verfahren ist als Melde(Notify)- Verfahren definiert. Das bereits erwähnte US-Patent offenbart ein Ausführungsbeispiel eines solchen Mechanismus.
  • Kurz gesagt, erzeugt der Prozessor A nach dem Einschreiben einer Nachricht in das Postfach des Prozessors B ein Meldesignal, das durch den Prozessor B (beispielsweise in einem Flip-Flop) empfangen und gespeichert wird. Die gleiche "Warnsignal"-Lösung, die den Zugriff zu einem gemeinsamen Speicher steuert, ist in der US-A 3 483 520 beschrieben, obgleich dies dort durch die Zwischenschaltung einer zentralen Steuerung erfolgt.
  • Somit hat der Prozessor B keine Speicher- Aufrufoperationen durchzuführen, um das Vorliegen von an ihn adressierten Nachrichten zu überprüfen, sondern er hat nur periodisch den Melde-Flip-Flop-Status zu überprüfen, ohne die dem System gemeinsamen Systemmittel zu benutzen. Mit dieser Art von Lösung wurde das Problem einer besseren Auswertung der gemeinsamen Systemmittel nur teilweise gelöst.
  • Tatsächlich kann der Prozessor A, wenn er wissen will, ob die Nachricht empfangen worden ist, zwei Alternativen folgen: Er kann weiterfahren, den gemeinsamen Speicher zu testen, um zu überprüfen, ob das B-Postfach ausgelesen worden ist, oder er kann warten auf eine Antwortnachricht von dem Prozessor B, die mit einem Mechanismus des Postfach-Schreibens und der Meldung ähnlich dem bereits beschriebenen ausgeführt werden kann. Die zweite Alternative ist z. B. aus der US-A-3 483 520 bekannt, welche bereits erwähnt wurde.
  • In beiden Fällen liegt es auf der Hand, daß die Bezugnahme auf gemeinsame Systemmittel und der Betrieb eines oder beider Prozessoren erforderlich ist.
  • Ein weiterer zu betrachtender Aspekt ist die Behandlung auf dem Programmpegel der gemeldeten Nachrichten und das Problem der Eliminierung von Überlappungen in dem Zugriff auf gemeinsam benutzte Systemmittel (in dem Fall, wo auf sie durch verschiedene Prozessoren zugegriffen werden kann), wie beispielsweise die Postfächer.
  • Bei der Bearbeitung von Arbeitsprogrammen in Mehrprozessorsystemen werden oftmals Vorrechtsoperationen benutzt. In bezug auf die Meldeoperationen bedeutet das Vorrechts-"Konzept", daß eine in das Postfach des Prozessors A durch einen Prozessor B geschriebene Nachricht gelöscht werden kann, wenn der empfangende Prozessor diese noch nicht berücksichtigt hat und durch eine neue Nachricht durch den sendenden Prozessor B ersetzt werden kann. Dies kann erforderlich werden, wenn während der Entwicklung der verschiedenen Programme es nachfolgend als geeignet festgestellt wird, zuerst bestimmte Operationen anstatt von anderen Operationen auszuführen, die zuvor den Gegenstand der Meldenachricht gebildet haben. Diese Vorrechtsoperationen sind im Stand der Technik durchgeführt worden, indem der sendende Prozessor die bereits in das Postfach eingeschriebene Nachricht ausgelesen hat, um zu überprüfen, daß die Nachricht noch nicht durch den empfangenden Prozessor in Betracht gezogen worden ist und daß diese daher gelöscht und durch eine andere Nachricht ersetzt werden kann.
  • Es liegt auf der Hand, daß zur Durchführung einer solchen Überprüfungsoperation der Zugriff zu dem Speicher erforderlich ist und somit andere Einheiten an der Benutzung der gemeinsam benutzten Systemmittel (Bus und Speicher) gehindert werden. Bezüglich der Überlappungsverhinderung beim Zugriff auf gemeinsame Systemmittel beinhaltet die gemeinhin verfolgte Lösung die Verwendung eines "Test- und Setz"-Befehls.
  • Ein Speicherplatz ist an jedes gemeinsame Systemmittel, beispielsweise ein Postfach angeschlossen. In einen solchen Speicherplatz wird eine binäre Information eingeschrieben, die anzeigt, ob das Systemmittel verfügbar oder verriegelt ist. Ein Prozessor, der den Zugriff auf ein Systemmittel (Postfach) wünscht, um eine Nachricht einzuschreiben, muß zu allererst überprüfen, daß kein Prozessor das Systemmittel zu dem gleichen Augenblick benutzt. Zu diesem Zweck führt er, bevor er auf das Systemmittel Zugriff nimmt, eine nicht-teilbare Lese- und Schreib-Operation (Test und Setz) des an das Systemmittel angeschlossenen Speicherplatzes durch. Durch diese Operation liest er den vorliegenden Inhalt des Speicherplatzes aus, und unmittelbar danach schreibt er eine Information betreffend ein verriegeltes Systemmittel ein. Diese Operation ist nur in Systemen möglich, wo der Befehl "Testen und Setzen" sich unter denen befindet, die ausgeführt werden können, und sie erfordert die Verwendung gemeinsamer Systemmittel (Speicher und Bus), wodurch ihre gleichzeitige Benutzung durch andere Einheiten verhindert wird.
  • Alle dieser Speicher-Zugriffsoperationen, auch wenn sie aus verschiedenen Gründen notwendig sind, verursachen eine große Einschränkung und Verminderung der Systemleistung. Diese Beschränkungen werden durch die Mehrprozessor-Systemarchitektur der vorliegenden Erfindung vermieden, bei der der Systembus physikalisch und logisch in zwei voneinander unabhängige Teile getrennt ist, die aber miteinander verbunden werden können. Jeder Teil bildet einen autonomen (oder logischen) Systembus für jeden Prozessor. Ferner werden den Meldesignalen äquivalente Unterbrechungssignale für jeden Prozessor durch wenigstens ein Flip-Flop erzeugt, das durch einen Prozessor für Lese- und Setz-Operationen über seinen eigenen Systembus adressierbar ist und durch den anderen Prozessor für Rückstelloperationen durch den Systembus dieses letztgenannten Prozessors adressierbar ist, wobei Unterbrechungssignale zu dem empfangenden Prozessor über Kopplungsmittel übertragen werden, die nicht durch die beiden Busse vorgegeben sind.
  • Eine Organisation eines Mehrprozessorsystems basierend auf zwei unabhängigen Systembussen, die miteinander über ein Busfenster verbunden werden können, ist aus der US-A-3 940 743 bekannt. Die Übertragung der Unterbrechungssignale zwischen einem an einen der Busse angeschlossenen Prozessor und einem an den anderen Bus angeschlossenem Prozessor beinhaltet jedoch die Verwendung beider Busse. Daher wird, auch wenn Registereinrichtungen in dem Busfenster vorgesehen sind, die das Auslesen des Status eines Prozessors durch den anderen Prozessor gestatten, ohne daß Zugriff zu dem Bus des einen Prozessors genommen wird, das Problem der Verwendung gemeinsamer Systemmittel bei dem Unterbrechungs- und Notifikations-Verfahren nur teilweise vermieden. Das gleiche Konzept der Auslesbarkeit eines Unterbrechungs-Statusregisters ist in der WO-A-82/02442 offenbart.
  • In diesem Fall ist jedoch das System mit einem einzigen Bus versehen, was zu einem unvermeidlichen Wettbewerb zwischen den Prozessoren bei irgendeiner Operation führt, die die Verwendung des Busses erfordert, welche Unterbrechungs-Transferoperationen und das Lesen der Unterbrechungs-Statusregister einschließt.
  • Im Gegensatz hierzu werden mit der Architektur gemäß der vorliegenden Erfindung große Vorteile in kumulativer Weise erzielt: - jegliche Speicher-Aufrufoperation zur Überprüfung des Vorliegens von Meldenachrichten wird vermieden; - jeder Prozessor kann den Status der gesendeten Meldenachrichten kennen, ohne daß er Zugriff zu gemeinsamen Speicher-Systemmitteln braucht, wobei nur der eigene lokale Bus benutzt wird; - jeder Prozessor kann eine Vorrechts- oder Meldeoperation von neuen Nachrichten ausführen, ohne die vorhergehende Überprüfung des Inhalts des Postfachs; - ein Nachrichten-Bestätigungssignal wird geliefert, ohne daß umgekehrte Meldeoperationen erforderlich sind; und erforderlichenfalls - werden Überlappungsprobleme gelöst, ohne daß die Ausführung von Test- und Setz-Operationen erforderlich ist.
  • Mit anderen Worten wird die Verwendung der gemeinsamen Systemmittel auf ein Minimum reduziert mit dem Vorteil einer erhöhten Systemleistung und mittels sehr einfacher Schaltkreiselemente.
  • Diese und andere Merkmale und Vorteile der Erfindung gehen klar aus der folgenden Beschreibung eines bevorzugten Ausführungsbeispieles hervor, wobei die beigeschlossenen Zeichnungen zeigen:
  • Fig. 1 die EDP-Systemarchitektur gemäß der Erfindung in einem Blockdiagramm im Falle von zwei Prozessoren.
  • Fig. 2 die Zuordnung bestimmter Speicherbereiche im Blockformat zu speziellen Funktionen der gemeinsamen Systemmittel (Postfach) und von Verriegelungsregistern der gemeinsamen Systemmittel.
  • Fig. 3 das Schaltungsdiagramm einer bevorzugten Ausführungsform einer Logikeinheit, die die Melde- und Unterbrechungssignale erzeugt, welche in der EDP-Architektur gemäß Fig. 1 verwendet werden.
  • Fig. 4 ein zweites bevorzugtes Ausführungsbeispiel einer Logikeinheit, die die Melde- und Unterbrechungssignale erzeugt, welche in der EDP-Architektur gemäß Fig. 1 verwendet werden.
  • Fig. 1 zeigt in einem Blockdiagramm die EDP- Systemarchitektur, die Gegenstand der Erfindung ist. Das System wird im wesentlichen gebildet durch einen ersten Prozessor bzw. eine CPU1, die als Zentraleinheit arbeitet und durch einen zweiten Prozessor bzw. einen I/OP2, der als periphere Steuereinheit arbeitet. Vorzugsweise bestehen die Prozessoren aus integrierten Einheiten, die z. B. durch die Firma Motorola unter den Codes 68010 und 68000 entsprechend vertrieben werden.
  • Die CPU1 ist an einen Adressenbus ABUS1 und an einen Datenbus DATABUS1 angeschlossen, die einen Systembus für die Zentraleinheit bilden, während die CPU2 an einen Adreßbus ABUS2 und an einen Datenbus DATABUS2 angeschlossen ist, die einen lokalen Bus für den Ein/Ausgabe-Prozessor I/OP2 bilden. Ein Oszillator 3 liefert einige Zeittaktimpulse T an beide Prozessoren und die anderen Systemeinheiten.
  • Ein Arbeitsspeicher 4 bzw. Hauptspeicher MM ist an die Busse DATABUS1 und ABUS1 angeschlossen. Neben dem Speicher 4 sind eine Fließkommaeinheit (FPU) 5 und eine Buserweiterungseinheit 6 zur Verbindung mit dem Systembus von anderen logischen Einheiten oder peripheren Schnittstelleneinheiten an den Bus ABUS1 und DATABUS1 angeschlossen. Die Auswahl des Arbeitsspeichers 4, der Fließkommaeinheit 5, der Erweiterungseinheit 6 und anderer möglicher Einheiten wird in bekannter Weise durch die CPU1 unter Verwendung von Zeittakt- und Steuersignalen zusammen mit geeigneten Adreßcodes bewirkt. Zu diesem Zweck ist ein Decodierer 7, der Vorzugsweise durch eine oder mehrere PAL (programmierbare Logikmatrix) gebildet wird, mit seinen Eingängen an den Bus ABUS1 angeschlossen und liefert an seinem Ausgang Auswahlsignale S1, . . ., SN, von denen jedes eine von verschiedenen an den Systembus angeschlossenen Einheiten auswählt. Der Betrieb, der an den Systembus der CPU1 angeschlossenen Einheiten, ist immer nebengeordnet zu den durch die CPU über den Bus gesendeten Anweisungen (vorausgesetzt, daß ein direkter Speicher- Zugriffsmechanismus nicht vorliegt).
  • Einheiten, wie beispielsweise die Einheiten 4, 5 und 6 können eine Intervention der CPU1 nur durch Unterbrechungssignale (INT) anfordern. Diese Signale werden durch eine Unterbrechungs-Logikeinheit 8 gesammelt, welche diese nach einer rangmäßig geordneten Priorität und in einer sich gegenseitig ausschließenden Weise zu der CPU1 überträgt. Die Logikeinheit 8 empfängt ein Bestätigungssignal von der CPU1 und sendet ein solches Signal zu der Unterbrechungseinheit.
  • Die CPU1, die Busse ABUS1, DATABUS1 und die Einheiten 3, 4, 5, 6, 7, 8 bilden ein Datenverarbeitungssystem, das in der Lage ist, autonom gemäß einer im Stand der Technik bekannten Architektur zu arbeiten. Eine weitere detaillierte Erläuterung ist daher nicht für das Verständnis erforderlich.
  • In gleicher Weise steuert der Prozessor I/OP2 den Ein/Ausgabebus, der durch die Kanäle ABUS2 und DATABUS2 gebildet wird. Verschiedene Einheiten sind an den Ein/Ausgang des I/OP2 angeschlossen, namentlich: Ein Festwertspeicher bzw. ROM 9, der Auslöseprogramme enthält, ein Arbeitsspeicher bzw. RAM 10, eine Steuereinheit 11 für die Dialogleitungen 12, 13, eine Steuereinheit 14 für eine Magnetbandeinheit 15, beispielsweise ein "fliegendes Band", eine Steuereinheit 16 für einen Drucker 17, eine Steuereinheit 18 für eine Magnetplatteneinheit 19 und ein Decodierer 20, der vorzugsweise durch eine oder mehrere PAL's gebildet wird, die am Ausgang Auswahlanweisungen Z1, . . ., ZN, für die verschiedenen Einheiten liefern, die an den Ein/Ausgabebus angeschlossen sind.
  • Der Betrieb, der an den I/O-Bus angeschlossenen Einheiten ist immer nebengeordnet in bezug auf die durch den Prozessor I/OP2 über den Bus gesendeten Anweisungen.
  • Einheiten, wie beispielsweise die Einheiten 11, 14, 16, 18 können nur die Intervention des Steuerprozessors I/OP2 durch ein Unterbrechungssignal anfordern, wobei dieser Prozessor als System-Zentraleinheit arbeitet. Diese Signale (INT) werden durch eine Unterbrechungs- Logikeinheit 21 empfangen, die sie gemäß einer rangmäßig geordneten Priorität und in einer sich gegenseitig ausschließenden Weise zu dem I/OP2 überträgt. Die Logikeinheit 21 empfängt ein Unterbrechungs- Bestätigungssignal und sendet ein solches Signal zu der Unterbrechungseinheit.
  • Der I/OP2, die Busse ABUS2, DATABUS2 und ebenfalls die Einheiten 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 bilden ein Datenverarbeitungssystem, das in der Lage ist, autonom gemäß einer im Stand der Technik bekannten Architektur zu arbeiten. Eine weitere detaillierte Erläuterung ist daher für das Verständnis nicht erforderlich.
  • Die charakteristischen Elemente der Systemarchitektur gemäß der Erfindung seien nun in Einzelheiten betrachtet. Sie bestehen in der Verbindung der zwei zuvor erwähnten Systeme und dem Dialogmechanismus zwischen den zwei Prozessoren CPU1 und I/OP2.
  • Der Adreßkanal ABUS2 ist mit dem Adreßkanal ABUS1 über einen Einwegkanal 22 (von dem ABUS2 zu dem ABUS1) verbunden, der durch eine Gruppe von Gattern bzw. "Treibern" 23 gesteuert wird, die durch ein Auswahlsignal X1 freigegeben werden. Der Datenbus DATABUS2 ist mit dem Datenbus DATABUS1 über einen Zweiwegkanal 24 verbunden, der durch eine Gruppe von bidirektionalen Gattern bzw. "Sender/Empfänger" 25 gesteuert wird, die durch eine Auswahlanweisung X2 freigegeben werden und die die effektive Signalübertragung freigeben sowie durch eine Anweisung R/W, welche entsprechend ihrem Logikpegel die Übertragungsrichtung definiert. Die Anweisungen X1, X2 werden indirekt durch den Prozessor I/OP2 durch die Einheit 26 erzeugt, während die Anweisung R/W direkt durch den Prozessor I/OP2 erzeugt wird. Es liegt daher auf der Hand, daß der die Gatter 23, 25 steuernde Prozessor I/OP2 auf den Systembus Zugriff nehmen kann, um eine Adressierung und Lese/Schreiboperationen bezüglich des Speichers 4 auszuführen, der als gemeinsames Systemmittel von beiden Prozessoren CPU1 und I/OP2 benutzt wird.
  • Es ist offensichtlich erforderlich, die Konflikte und Überlappungen bei dem Zugriff auf den Systembus und auf den Speicher 4 zu lösen. Zu diesem Zweck ist eine Konflikt-Lösungseinheit 26 vorgesehen, die das Buszugriffs-Anforderungssignal BR1 von dem Prozessor I/OP2 und andere Signale BR2, BRN von anderen möglichen Einheiten empfängt, die über den Systembus zu dem gemeinsamen Speicher Zugriff zu nehmen wünschen. Das Signal BR1 wird durch den I/OP2 über den Decodierer 20 erzeugt und von der Einheit 20 zu einem geeigneten Eingang (Signal BR) der CPU1 übertragen. Die meisten der gegenwärtig auf dem Markt befindlichen Mikroprozessoren und insbesondere der Mikroprozessor 68010, der im bevorzugten Ausführungsbeispiel der Erfindung benutzt wird, sind mit einem für diesen Zweck vorgesehenen Eingang versehen.
  • Die CPU1 antwortet mit einem Bus-Gewährungssignal BG (Busgewährung) und gestattet den tatsächlichen Buszugriff und das Ende der ablaufenden Operation. Das Signal BG wird durch die Einheit 26 zu der anfordernden Einheit geleitet, in diesem Fall zu dem I/OP2 (Signal BG1) gemäß einer Prioritätslogik. Die Einheit 26 wird durch einen integrierten Schaltkreis (Motorola Code 68452) und durch logische Schaltkreise gebildet, die durch den Systemtakt T getaktet werden und welche beim Empfang des Signales BG und nach der Feststellung, daß der Bus tatsächlich verfügbar ist, in geeigneter Folge und Länge ein Signal BACK erzeugen, das zu der CPU1 gesendet wird und ferner eine Auswahl- und Freigabeanweisung X1 der Gatter 23 und eine Auswahl- und Freigabeanweisung X2 der Gatter 25 erzeugen. Auf diese Weise können die CPU1 und der Prozessor I/OP den Systembus und den Arbeitsspeicher gemeinsam (im Time Sharing) benutzen. Auf der anderen Seite kann die CPU1 weder den I/OP-Bus (d. h. ABUS2 und DATABUS 2) benutzen, noch kann sie die an diesen Bus angeschlossenen Einheiten steuern.
  • Es sei nun betrachtet, wie der Dialog zwischen den zwei Prozessoren CPU1 und I/OP2 stattfindet.
  • Unter Bezugnahme auf Fig. 2 enthält der Speicher 4 zwei Zonen 30, 31, die mit Mailbox CPU und Mailbox I/OP bezeichnet sind und die als Dialogeinrichtungen benutzt werden. Ein Speicherplatz 32, 33 ist an jede Zone entsprechend angeschlossen, wobei der Speicherplatzinhalt den Status des Postfaches (Mailbox) definiert. An einem solchen Speicherplatz definiert wenigstens eine Zelle, die mit L bezeichnet ist, mit dem Logikpegel des darin enthaltenen Bits (genannt Verriegelungsbit), ob das angeschlossene Systemmittel (Postfach) verfügbar ist oder nicht, d. h. ob kein Prozessor eine Lese/Schreiboperation in dem Postfach ausführt oder ob ein Prozessor bereits Operationen in der gleichen Speicherzone ausführt und er nicht wünscht, daß andere Prozessoren den Inhalt des Postfaches überlappen und modifizieren.
  • Wenn der Prozessor I/OP2 einen Dialog mit der CPU1 wünscht, so testet er den Speicherplatz 32 mit einer "Test und Setz"-Operation, d. h. mit einer nicht teilbaren Lese/Schreiboperation. Das Bit L ist jedoch auf den Logikpegel 1 gesetzt. Wenn aber durch eine Ausleseoperation der Prozessor I/OP feststellt, daß sich L bereits auf dem Logikpegel 1 befand und daher kein Systemmittel verfügbar war, so enthält er sich jeglicher weiterer Operation bezüglich des CPU-Postfaches. Wenn andererseits festgestellt wird, daß L=0 ist, so wird das Systemmittel durch Anhebung von L auf 1 verriegelt und der I/OP2 adressiert das CPU-Postfach durch das Einschreiben einer Nachricht für die CPU1. Am Ende dieser Operationen wird durch Heruntersetzen des Verriegelungsbits L auf den Logikpegel 0 das Systemmittel durch den I/OP2 für Lese/Schreiboperationen verfügbar gemacht, die durch CPU1 ausgeführt werden.
  • Ähnliche Operationen werden durch die CPUI ausgeführt, um die an sie adressierte Nachricht zu lesen bzw. zu löschen und um Nachrichten für den I/OP2 in das I/OP-Postfach zu schreiben.
  • Da der Arbeitsspeicher 4 eine passive Einheit ist, können die Prozessoren 1 und 2 prüfen, ob an sie adressierte Nachrichten nur durch Speicher-Aufrufoperationen vorliegen, d. h. durch periodische Tests mit der daraus folgenden Verriegelung des Speichers 4 und des Systembusses, wodurch die Ausführung anderer Operationen verhindert wird.
  • Um diesen Nachteil zu vermeiden, ist gemäß der Erfindung eine direkte Prozessor-Melde-Hardware vorgesehen, deren Status sowohl durch den die Meldung aufnehmenden Prozessor als auch durch den die Meldung abgebenden Prozessor festgestellt werden kann. Ferner erfordern sowohl das Setzen als auch die Rückstellung der Melde- Hardware ebenso wie die Festellung ihres Status durch den meldenden Prozessor die begrenzte Benutzung des lokalen Busses, d. h. des Systembusses für die CPU1 und des I/O- Busses für den I/OP-Prozessor, und daher überlappen sie nicht mit Operationen auf dem Systempegel, sondern nur mit Operationen auf lokalem Pegel, wie beispielsweise die zentrale Verarbeitung oder die Ein/Ausgabe. Die Melde- Hardware besteht unter Bezugnahme auf Fig. 1 aus einer Melde-Logikeinheit 27, die wahlweise über Kanäle 28, 29 entsprechend an den DATABUS1 und den DATABUS2 angeschlossen werden kann. Die Einheit 27 wird durch Auswahlsignale/Anweisungen 51, 52, 53, Z1, Z2, Z3 gesteuert, die von den Decodierern 7 und 20 kommen und zwei (oder mehr) Melde- bzw. Unterbrechungssignale NOTIFY, INTIOP erzeugen, welche zu der Unterbrechungs- Logikeinheit 21 und 8 entsprechend gesendet werden.
  • Fig. 3 zeigt in einem detaillierten Diagramm die einfachere Verwirklichung der Melde-Logikeinheit 27. Diese besteht aus zwei J-K-Flip-Flops 40, 41 und aus zwei "Dreizustands-Treibern" 42, 43. Das Flip-Flop 40 empfängt an seinem Setzeingang ein Auswahlsignal Z1, das von dem Decodierer 20 kommt, und es wird durch dieses Signal gesetzt. Am direkten Ausgang Q des Flip-Flops 40 wird daher ein Signal INTIOP erzeugt, das zu der Unterbrechungs-Logikeinheit 8 der CPU1 (Fig. 1) gesendet wird. Der direkte Ausgang des Flip-Flops 40 ist an einen Eingang des Treibers 42 angeschlossen, dessen Ausgang über den Bus 29 (der in diesem Fall durch nur eine Leitung gebildet wird) an den DATABUS2 angeschlossen ist. Der Treiber 42 wird durch ein Signal Z3 freigegeben, das von dem Decodierer 20 kommt. Die J-K-Eingänge des Flip- Flops 40 werden permanent auf dem Logikpegel "0" und "1" entsprechend gehalten, so daß bei einem Empfang eines Taktsignales am Eingang CK das Flip-Flop 40 zurückgesetzt wird. Der Takteingang des Flip-Flops 40 empfängt das Anweisungssignal 52, das von dem Decodierer 20 kommt.
  • In gleicher Weise wird dem Flip-Flop 41 an seinem Setzeingang ein Setzsignal 51 zugeführt, das von dem Decodierer 7 kommt, und der Takteingang CK erhält ein Rückstellsignal Z2 zugeführt, das von dem Decodierer 20 kommt. Der Ausgang Q des Flip-Flops 41 ist über den Treiber 43 und den Bus 28 (in diesem Fall nur durch eine Leitung gebildet) an den DATABUS1 angeschlossen. Der Treiber 43 wird durch ein Signal 53 freigegeben, das von dem Decodierer 7 kommt. Der Ausgang Q des Flip-Flops 41 ist ferner über eine Leitung 44 an einen Eingang eines Unterbrechungsnetzwerkes 21 angeschlossen. Wenn das Flip- Flop 41 gesetzt ist, so wird ein Unterbrechungssignal NOTIFY über die Leitung 44 zu dem Netzwerk 21 und von dem Netzwerk zu dem Prozessor I/OP2 gesendet.
  • Der Betrieb der Logikeinheit 27 und des Systems mit zwei Prozessoren, in dem die Einheit enthalten ist, ist sehr einfach. Wenn der I/OP2 eine Nachricht zu der CPU1 zu senden wünscht oder wenn er die Bearbeitung eines Prozesses in der CPU1 wünscht (beispielsweise einen Rechenprozeß), so führt er in der Reihenfolge folgende Operationen aus:
  • 1. Überprüfung über die Test- und Setz-Operation, ob das CPU1-Postfach verfügbar ist (Verriegelungsbit = Null) und demzufolge Systemmittelbelegung, wenn es verfügbar ist.
  • 2. Schreiben der Nachricht in das CPU1-Postfach.
  • 3. Verfügbarmachung des CPU1-Postfaches durch Rückstellung des Verriegelungsbits. Die Operationen
  • 1. 2. 3. erfordern den Zugriff auf den CPU1-Bus und auf den Speicher 4, d. h. die gleichzeitige Verriegelung des gesamten Systembusses und des gemeinsamen Systemmittelspeichers 4.
  • 4. Setzen des Flip-Flops 4 durch Erzeugung eines geeigneten Adreßcodes nur auf dem Bus ABUS2, welcher nach Decodierung durch den Decodierer 20 das Signal Z1 erzeugt. Das Signal INTIOP wird daher erzeugt, welches durch das Netzwerk 26 und gemäß den vorgegebenen Prioritäten zu der CPU1 als Unterbrechungscode mit einem vorgegebenen Prioritätspegel PL (Fig. 1) übertragen wird. Die Operation erfordert nur die Belegung des I/O-Busses, und sie berührt nicht den CPU-Bus und den gemeinsamen Systemmittelspeicher. An dieser Stelle berücksichtigt der unterbrochene Prozessor CPU1, nachdem er alle Operationen, die einen höheren Prioritätspegel als der Unterbrechungs-Prioritätspegel aufweisen, ausgeführt hat, die Unterbrechung und führt einen Unterbrechungs-Bearbeitungsprozeß aus, der folgende Operationen beinhaltet.
  • 5. Überprüfung über eine Test- und Setzoperation, ob das CPU1-Postfach verfügbar ist (Verriegelungsbit = 0) und demzufolge Systemmittelverriegelung, wenn es tatsächlich verfügbar ist.
  • 6. Auslesung der Nachricht aus dem CPU1-Postfach.
  • 7. Löschen der Nachricht.
  • 8. Verfügbarmachung des CPU1-Postfaches durch Rückstellung des Verriegelungsbits u
  • 9. Rückstellung des Flip-Flops 40 durch Erzeugung eines geeigneten Adreßcodes nur auf dem Bus ABUS1, welcher nach Decodierung durch den Decodierer 7 das Signal S2 erzeugt.
  • 10. Betrieb gemäß den Befehlen bzw. der Information, die in der empfangenden Nachricht enthalten ist.
  • Alle diese Operationen erfordern nur die Belegung des CPU-Busses und berühren nicht den I/OP-Bus, so daß der I/OP2 in autonomer Weise weiterfahren kann mit der Bearbeitung anderer Prozesse unter Verwendung aller Systemmittel, die an den I/OP-Bus angeschlossen sind. Insbesondere kann der Prozessor I/OP2 es erfordern, eine weitere Nachricht zu dem CPU1 zu senden und zu überprüfen, ob das CPU1-Postfach verfügbar ist oder nicht. Zu diesem Zweck muß der I/OP2 keine Speicher- Aufrufoperationen ausführen, die die Beteiligung des CPU1-Busses und des Speichers nach sich ziehen, sondern er hat nur auf dem Bus ABUS2 einen Adreßcode zu erzeugen, der nach Decodierung durch den Decodierer 20 das Signal Z3 erzeugt. Dieses Signal gibt das Gatter 42 frei und gestattet das Lesen des Status des Flip-Flops 40 über den DATABUS 2. Wenn das Flip-Flop 40 gesetzt ist, so bedeutet dies, daß die Unterbrechung noch nicht beachtet worden ist oder daß das Auslesen des Postfaches durch die CPU1 noch nicht vervollständigt worden ist. Um sodann zu überprüfen, ob die Postfach-Auslesung ausgeführt worden ist, hat der I/OP2 nur Aufrufoperationen des Status des
  • Flip-Flops 40 durchzuführen, was auf einem lokalen Pegel erfolgt mit der einzigen Belegung des I/OP2-Busses und ohne Überlappung mit CPU1-Operationen.
  • Wenn andererseits das Flip-Flop 40 zurückgestellt ist, so ist die Unterbrechung mit Sicherheit beachtet worden und das Postfach ausgelesen worden und daher in der Lage, neue Nachrichten aufzunehmen. Der I/OP2 kann daher Zugriff auf das CPU1-Postfach nehmen und eine neue Nachricht einschreiben, wobei sicher ist, daß Aufrufoperationen nicht erforderlich sind und die Test- und Setzoperation (Operation 1) mit Sicherheit erfolgreich ist.
  • Mit anderen Worten bietet die Möglichkeit der Überprüfung des Status des Flip-Flops 40 dem I/OP2 eine wesentliche Information, die in vielfältiger Weise benutzt werden kann.
  • Zunächst ist ersichtlich, daß wenn die Regel respektiert wird, gemäß der ein Postfach neue Nachrichten nicht empfangen kann, bevor die zuvor Empfangenen betrachtet worden sind, die Test- und Setz-Operationen 1) und 5) nicht notwendig werden.
  • Der Dialogmechanismus zwischen verschiedenen Prozessoren über ein Postfach und Meldung (oder Unterbrechung) kann daher auch für die Systeme benutzt werden, wo die Prozessoren die Bearbeitung von unteilbaren Test- und Setzoperationen nicht freigeben.
  • Tatsächlich ist klar, daß wenn das Flip-Flop 40 zurückgestellt ist, der I/OP2 das Postfach verfügbar vorfindet, da die CPU keinen Grund hat, mit einem leeren Postfach zusammenzuarbeiten, das kein Melde- bzw. Unterbrechungssignal enthält u
  • Aus dem gleichen Grund ist, wenn eine Unterbrechungsbzw. Meldenachricht empfangen ist, die CPU1 sicher, daß der meldende Prozessor I/OP2 nicht erneut auf das Postfach Zugriff nimmt und Nachrichten einschreibt, bevor er die bereits in dem Postfach abgespeicherte Nachricht berücksichtigt hat u
  • In diesem Sinn wird die Systemleistung weiter verbessert, da nicht nur der Status des Flip-Flops 40 durch eine Aufrufoperation auf dem lokalen Buspegel festgestellt werden kann, sondern ebenfalls bestimmte Operationen (Testen und Setzen und dem entsprechende Rückstellung des Verriegelungsbits), die die Verwendung von Systemmitteln auf dem Systempegel erfordern, vollständig vermieden werden.
  • Alternativ ist es möglich, Vorrechts-Operationen auszuführen, d. h. den Ersatz einer bereits in dem Postfach gespeicherten Nachricht mit einer Prioritätsnachricht. Um diese Operation möglich zu machen, ohne daß Fehler hervorgerufen werden, genügt es, das Verfahren zu ändern, durch welches die CPU1 die Unterbrechung handhabt, so daß die unter der Nummer 9) bereits angegebene Operation der Operation vorausgeht, die bereits unter der Nummer 8) angegeben wurde.
  • Mit anderen Worten genügt es, daß die CPU1 das Flip-Flop 40 unmittelbar vor dem Verriegelungsbit L zurückstellt. Wenn diese Bedingung verwirklicht wird, so ist es klar, daß der Prozessor I/OP2, wenn er einmal eine Nachricht in das CPU1-Postfach abgespeichert hat, und das Flip-Flop 40 gesetzt hat, eine Aufrufoperation des Flip-Flops 40 ausführen kann, ohne auf den CPU1-Bus und den Speicher Zugriff zu nehmen.
  • In den Fällen, wo es erforderlich ist, daß die bereits gesendete Nachricht gelöscht und durch eine andere ersetzt wird, testet der Prozessor I/OP2 den Status des Flip-Flops 40. Wenn das Flip-Flop 40 zurückgestellt worden ist, so ist die Nachricht bereits durch die CPU1 berücksichtigt worden, und das CPU1-Postfach bereits ausgelesen worden oder im Begriff ausgelesen zu werden. In diesem Fall kann die Vorrechts-Operation nicht ausgeführt werden, und der Prozessor I/OP2 kann, nachdem er getestet hat, daß das CPU1-Postfach tatsächlich verfügbar ist, nur die neue Nachricht darin speichern.
  • Wenn sich andererseits das Flip-Flop 40 noch im gesetzten Status befindet, so ist die Nachricht noch nicht berücksichtigt worden oder befindet sich im Ausleseverfahren. Der Status des Verriegelungsbits zeigt an, welche Alternative vorliegt. Der I/OP2 kann daher den Status des Verriegelungsbits überprüfen durch eine Test- und Setzoperation.
  • Wenn das Systemmittel verfügbar ist (L=0), so liegt die Nachricht mit Sicherheit in dem Postfach vor, und es ist keine Leseoperation erforderlich, um dieses Vorliegen zu überprüfen. Die Nachricht kann daher durch eine neue Nachricht ersetzt werden.
  • Wenn das Systemmittel nicht verfügbar ist, so ist die Nachricht durch die CPU1 im Begriff ausgelesen zu werden, und die Vorrechts-Operation ist nicht möglich. Es liegt auf der Hand, daß die Möglichkeit der Ausführung einer Vorrechts-Operation überprüft werden kann, ohne jegliche Speicher-Aufrufoperation und somit ohne die Benutzung gemeinsamer Systemmittel.
  • Es ist bereits ausgeführt worden, daß zum Ermöglichen der Vorrechts-Operation ohne Fehler das Flip-Flop 40 vor dem Verriegelungsbit L zurückgestellt sein muß. Tatsächlich genügt es nicht, daß das Verriegelungsbit L nicht vor dem Flip-Flop 40 zurückgestellt ist. Diese beiden Operationen können daher gleichzeitig auftreten, und zu diesem Zweck kann das Signal S2 aus der gemeinsamen Decodierung eines Adreßcodes erhalten werden, der das CPU1-Postfach adressiert und durch eine Rückstell- bzw. Schreibanweisung. Mit anderen Worten kann das Decodiernetzwerk 7 zusätzlich zu den auf dem Bus ABUS1 vorliegenden Signalen eine Anweisung R/W1 am Ausgang der CPU1 empfangen, die die Art der auszuführenden Operation vorgibt. Diese Anweisung ist sowohl in Fig. 1 als auch in Fig. 2 dargestellt.
  • Die zuvor gemachten Betrachtungen in bezug auf das Flip- Flop 40 sind offensichtlich auch für das Flip-Flop 41 gültig, d. h. für den Mechanismus der Nachrichtenmeldung an den Prozessor I/OP2 durch den Prozessor CPU1. Es liegt auf der Hand, daß die Melde-Logikeinheit 27, wie sie anhand von Fig. 3 offenbart ist, nur eine einfachere Ausführung einer Meldelogik gemäß der Erfindung bildet und daß verschiedene Änderungen gemacht werden können, ohne daß von dem Rahmen der Erfindung abgewichen wird.
  • Fig. 4 zeigt ein bevorzugtes Ausführungsbeispiel der Logikeinheit 27, die zwei weitere Faktoren berücksichtigt.
  • Es wäre in der Tat geeignet, daß der Unterbrechungs- Meldemechanismus selbst die Unterbrechungsbehandlung- Programmadresse liefert und daß ein Prozessor Unterbrechungs/Meldesignale auf unterschiedlichen Pegeln entsprechend dem Typ und der Dringlichkeit der Meldenachricht liefert. Diese beiden Konzepte müssen geklärt werden, bevor Fig. 4 betrachtet wird.
  • Die Antwort eines Prozessors auf ein Unterbrechungssignal kann, wie bekannt, in zwei Arten stattfinden, d. h. die Unterbrechungsbehandlung kann in zwei verschiedenen Weisen auftreten.
  • In einer ersten Weise, die als "Autovektor"-Behandlung definiert ist, stoppt der Prozessor sowohl die ablaufenden Operationen, und das ablaufende Programm rettet den Informationssatz, der zur Wiederaufnahme des unterbrochenen Programmes zu einem geeigneten Zeitpunkt erforderlich ist und springt in autonomer Weise zu einem Unterbrechungs-Bearbeitungsprogramm, dessen Beginn an einer vorgegebenen Adresse festgelegt ist, die dem Prozessor bekannt ist. In der vorangegangenen Beschreibung wurde bezug auf diese Art von Unterbrechungsbearbeitung genommen u
  • Die Autovektor-Bearbeitung ist sehr strikt und erfordert im allgemeinen lange und komplizierte Programme, wobei ein Teil davon erforderlich ist, um die Art und den besonderen Grund der Unterbrechung festzustellen.
  • Alternativ kann die Bearbeitung einer Unterbrechung in einer "vektoriellen" Weise stattfinden, um eine höhere Flexibilität in der Zuteilung der Unterbrechungsbearbeitung bzw. der Programme zu erhalten. In diesem Fall erzeugt der unterbrochene Prozessor, wenn er die empfangene Unterbrechung berücksichtigt, ein Signal INTACK als Bestätigung der Unterbrechung und fragt mit diesem Signal bei der Unterbrechungseinheit an, um über die Programmadresse der Unterbrechungsbearbeitung informiert zu werden, die für diese spezielle Unterbrechung benutzt werden muß. Mit einer solchen Unterbrechungsunterscheidung ergibt sich das folgende Konzept:
  • Eine Einheit kann einen Prozessor aus vollständig verschiedenen Gründen unterbrechen. Beispielsweise ist die wesentliche Unterscheidung zwischen einer Unterbrechung bekannt, die gesendet wird, da ein Zeichen oder im allgemeineren eine Gruppe von Daten zu übertragen ist (Unterbrechung definiert als "I/O- Übertragungsunterbrechung") und zwischen einer Unterbrechung, die gesendet wird, da signalisiert werden muß, daß bestimmte Operationen, wie beispielsweise ein Zeilendruck oder die Ausführung eines Papiervorschubes im Falle von Druckern oder die Spursuche im Falle von Platteneinheiten vervollständigt worden sind. Die letzte Art von Unterbrechung ist als "I/O- Beendigungsunterbrechung" bezeichnet.
  • Es ist klar, daß verschiedene Unterbrechungsanforderungen erzeugt werden können, sowohl durch Erzeugung unterschiedlicher Unterbrechungssignale als auch durch Charakterisierung eines gemeinsamen Signales mit einem Unterbrechungsvektor. Eine Vielzahl von im Markt erhältlichen Mikroprozessoren gestatten die Handhabung der verschiedenen Arten von Unterbrechungen gemäß dieser beiden Mechanismen. Unter diesen Prozessoren sind die Mikroprozessoren 68000 und 68010, die bei dem Ausführungsbeispiel des offenbarten Systems bevorzugt werden.
  • Der Mikroprozessor 68000 (oder 68010) ist mit drei Eingängen IPLEV versehen, um einen 3-Bit- Unterbrechungscode zu empfangen, welcher ihn in die Lage versetzt, bis zu 7 verschiedene Unterbrechungspegel zu identifizieren, wobei drei Ausgänge FCO den Prozessorstatus und die Art des ablaufenden Zyklus nach draußen zu signalisieren gestatten. Insbesondere ist, wenn sich die drei Ausgänge auf dem Logikpegel 1 befinden, der ablaufende Zyklus ein Zyklus der Unterbrechungsbestätigung. Durch eine logische UND- Operation mit den drei Ausgängen kann ein Signal (INTACK) der Unterbrechungsbestätigung erzeugt werden.
  • Der Mikroprozessor 68000 (oder 68010) ist ferner mit einem Eingang VPA (Fig. 1) versehen, um ein eindeutiges Signal zugeführt zu erhalten, welches bei einem Logikpegel 0 während eines Unterbrechungs- Bestätigungszyklus anzeigt, daß die Unterbrechung vom "Autovektor"-Typ ist.
  • Die nunmehr betrachtete Fig. 4 zeigt in Einzelheiten ein bevorzugtes Ausführungsbeispiel der Melde-Logikeinheit 27 zusammen mit den an sie angeschlossenen Systemelementen. Die verschiedenen Busse ABUS1, DATABUS1, ABUS2, DATABUS2, die Adreßdecodierer 7, 20 und die Unterbrechungs- Logikeinheit sind daher dargestellt. Die Logikeinheit 27 umfaßt einen integrierten Schaltkreis CIO, eine Ein/Ausgabe-Steuerung 49, drei Flip-Flops 50, 51, 52 und zwei Treibergatter 53, 54. Der CIO-Schaltkreis 49 wird durch die Firma ZILOG hergestellt und ist im Markt unter dem Code Z8536 erhältlich.
  • Er besteht im wesentlichen aus drei programmierbaren Zeittaktzählern, drei Daten-Ein/Ausgabe-Gattern und internen Steuerregistern. Die konstruktiven Einzelheiten und die verschiedenen Operationen, die ein solcher Schaltkreis ausführen kann, werden nicht näher betrachtet, da sie leicht dem technischen Handbuch der Firma ZILOG "Z8036 Z-CIO/Z8536-DIO/Counter Timer and Parallel I/O Unit", ZILOG 1982, entnommen werden können.
  • Es sei jedoch vermerkt, daß der Schaltkreis mit einem bidirektionalen 8-Bit-Ein/Ausgabe-Gatter 55 für den Datenaustausch mit dem Bus DATABUS, mit drei Steuereingängen 56, 57, 58 für den Empfang einer Schreibanweisung W, einer Ausleseanweisung R und einer Auswahlanweisung GSLCIO, mit zwei Eingängen A1, A0 für den Empfang von Register-Auswahlsignalen (drei Ein/Ausgabe-Gatterregister und Steuerregister), mit einem Anschluß für die Ausgabe eines Unterbrechungssignales INT, und mit einem Eingang für den Empfang eines Unterbrechungs-Bestätigungssignales (INTACK) versehen ist. Der CIO-Schaltkreis 49 ist ferner mit drei Anschlußregistern versehen, die mit der Außenwelt kommunizieren. Solche Register können gesteuert werden, um externe Information zu empfangen oder binäre Information auszugeben. Die verschiedenen Registerzellen können individuell gesteuert werden, um Ein/Ausgabeelemente zu bilden.
  • Daneben können die Zellen, wenn sie gesetzt sind, um Signale von draußen zu empfangen, ferner gesteuert werden, so daß beim Empfang eines Signales auf einem vorbestimmten Pegel oder beim Empfang eines Umschaltsignales (vom Pegel 0 auf 1 oder vom Pegel 1 auf 0) der CIO-Schaltkreis 49 ein Unterbrechungssignal erzeugt.
  • An jedes Element (Eingangszelle) kann ein Unterbrechungs- Adreßvektor angeschlossen werden, der in einem Steuerregister innerhalb des Schaltkreises CIO 49 gespeichert ist und der über den Anschluß 55 ausgelesen werden kann.
  • Für die Zwecke der vorliegenden Erfindung zeigt der CIO- Schaltkreis 49 in Fig. 4 sechs Zellen (zu einem Anschlußregister gehörend), die mit 61 bis 66 entsprechend beziffert sind.
  • Der CIO-Schaltkreis 49 empfängt von geeigneten Ausgängen des Decodierers 7 ein Auswahlsignal CSLCIO, eine Schreibanweisung W und eine Ausleseanweisung R. Die Auswahleingänge A0, A1 sind an zwei Leitungen des Adreßbusses ABUS1 angeschlossen. Somit kann der CIO- Schaltkreis 49 adressiert und gesteuert werden durch geeignete Adreßcodes über den Bus ABUS1 und den Decodierer 7, um eine Schreiboperation (Informationsspeicherung), eine Ausleseoperation (Informationsauslesung über das Gatter 55 und den Bus DATABUS1) und eine Voreinstellung für den Betrieb in geeigneter Weise auszuführen.
  • Insbesondere ist der Schaltkreis CIO-49 so gesetzt, daß die Zellen 61, 63, 65 als Ausgangszellen und die Zellen 62, 64, 66 als Eingangszellen arbeiten und daß bei einer Umschaltung eines Signales von 0 auf 1 an den Zelleingängen 64, 66 ein Unterbrechungssignal erzeugt wird.
  • Ferner sind zwei unterschiedliche Unterbrechungsvektoren mit vorbestimmter relativer Priorität an die Zellen 64, 66 (PRIORITÄTSCODIERTER VEKTORMODUS) angeschlossen. Der Setzeingang des Flip-Flops 50 ist mit dem Ausgang der Zelle 61 verbunden, und der direkte Ausgang Q ist an die Zelle 62 angeschlossen, die als Eingang arbeitet sowie an den Eingang der Unterbrechungs-Logikeinheit, an den der Ausgang Q ein Melde-Signal NOTIFY liefert.
  • Die Flip-Flops 51, 52 sind mit ihren Takteingängen an den Ausgang der Zellen 63, 65 entsprechend angeschlossen, und der Ausgang Q ist entsprechend an die Zellen 64, 66 sowie über Treiber 53, 54 an den Bus DATABUS2 angeschlossen.
  • Geeignete Ausgänge des Decodierers 20 sind entsprechend an den Takteingang des Flip-Flops 50 und an den Setzeingang der Flip-Flops 51, 52 angeschlossen, die mit den Signalen Z1, Z2, Z3 entsprechend gespeist werden. Ein viertes Signal Z4 am Ausgang des Decodierers 20 gibt die Treibergatter 53, 54 frei.
  • Wenn der Schaltkreis CIO-49 einmal gesetzt ist durch geeignete Anweisungen, so ist der Betrieb der Meldeeinheit 27 sehr einfach. Wenn die CPU1 ein Meldesignal an den Prozessor I/OP2 zu senden hat, so wählt sie den CIO-Schaltkreis mit einer geeigneten Adresse aus und steuert die Erzeugung eines Impulses mit dem Logikpegel 1 am Ausgang der Zelle 61. Dieser Impuls setzt das Flip-Flop 50, welches ein Melde/Unterbrechungssignal an einen Eingang des Unterbrechungsnetzwerkes 21 sendet. Dieses erzeugt, wie bereits erwähnt, beim Fehlen eines Unterbrechungssignales auf einem höheren Pegel einen Unterbrechungscode IPLEV, der zu dem Prozessor I/OP2 gesendet wird. Wenn der I/OP2 die Unterbrechung in Betracht zieht, so erzeugt er einen Code FC (mit allen Bits auf dem Logikpegel 1), der zu der Einheit 21 gesendet wird, die durch Decodierung ein Unterbrechungs-Bestätigungssignal INTACK erzeugt, welches an den Eingang VPA des Prozessors I/OP2 angelegt wird und anzeigt, daß die gerade bestätigte Unterbrechung eine Autovektor-Unterbrechung ist. Der Prozessor I/OP2 fährt daher in autonomer Weise mit der Unterbrechungsbearbeitung fort, indem er die Nachricht für ihn aus dem Speicher-Postfach ausliest. Letztlich erzeugt er über einen geeigneten, an den Bus ABUS2 angelegten Adreßcode und über den Decodierer 20 das Signal Z1, welches das Flip-Flop 50 zurückstellt.
  • Während dieses gesamten Zeitintervalles kann die CPU1 den Status der Meldeoperation überprüfen, indem sie den CIO- Schaltkreis 49 adressiert und auswählt für die Bearbeitung einer Ausleseoperation aus der Zelle 62. Diese Operation erfordert klar den Zugriff auf den CPU- Bus und hindert daher den I/OP2 an der Verwendung der gemeinsamen Systemmittel. Die erforderliche Zeit für die Ausführung einer solchen Operation, die nur eine Ausleseoperation darstellt, ist jedoch sehr kurz im Vergleich zu einer Speicher-Aufrufoperation für den Erhalt der gleichen Information. Diese letzte Operation erfordert tatsächlich eine Routinenbearbeitung, deren erster Schritt eine Test- und Setzoperation ist und, falls dieser erfolgreich ist, zumindest das Auslesen eines Briefkasten-Speicherplatzes und die nachfolgende Zurückstellung des Verriegelungsbits.
  • In gleicher Weise kann der Prozessor I/OP2 Meldesignale an die CPU1 senden, indem er einen geeigneten Code auf dem Bus ABUS2 erzeugt. Die Erzeugung des Signales Z2 setzt das Flip-Flop 51, und die Erzeugung des Signales Z3 setzt das Flip-Flop 52. Die Signalumschaltung am Ausgang der Flip-Flops 51-52 wird entsprechend an den Eingangszellen 64 bzw. 66 des Schaltkreises CIO-49 empfangen, der ein Unterbrechungssignal INT erzeugt. Dieses durch die Unterbrechungseinheit 8 empfangene Signal wird mit geeigneter Prioritätsbeobachtung im Falle gleichzeitig vorliegender Unterbrechungssignale in codierter Form IPLEV zu der CPU1 übertragen. Die CPU antwortet im geeigneten Zeitpunkt mit einem Bestätigungscode FC, der durch die Einheit 8 in ein Unterbrechungs-Bestätigungssignal INTACK decodiert wird. Dieses durch den Schaltkreis CIO-49 empfangene Signal setzt diesen in die Lage, einen Unterbrechungsvektor entsprechend der bestätigten Unterbrechung über das Gatter 55 auf den Bus DATABUS1 zu übertragen. Je nachdem, ob die Unterbrechung durch das Flip-Flop 51 hervorgerufen wird und daher beispielsweise auf das Erfordernis einer Datenübertragung zurückzuführen ist oder durch das Flip- Flop 52 hervorgerufen wird und daher beispielsweise auf die Beendigung irgendeiner ausgeführten Anweisung zurückzuführen ist, wird ein unterschiedlicher Unterbrechungsvektor zu der CPU1 gesendet.
  • Die CPU1 kann daher direkt auf die Bearbeitungsroutine dieser speziellen Unterbrechung Zugriff nehmen, kann aus dem Postfach die Nachricht auslesen, welche die Unterbrechungsparameter enthält und wenn die Nachricht einmal ausgelesen und gelöscht ist, kann die CPU1 das Flip-Flop 51 bzw. 52 zurückstellen, indem der Schaltkreis CIO-49 ausgewählt und gesteuert wird, um einen Rückstellimpuls an der Ausgangszelle 63 bzw. 65 zu erzeugen.
  • Während dieses Zeitintervalles kann der I/OP2 den Status (unerledigt oder berücksichtigt) der gemeldeten Nachrichten überprüfen, indem ein Signal Z4 erzeugt wird, das die Treibergatter 53 und 54 freigibt für die Übertragung des Status der Flip-Flops 51, 52 auf den Bus DATABUS2.
  • Diese Operation erfordert nicht den Zugriff auf den Bus CPU1 oder auf gemeinsame Systemmittel und wird in einem sehr kurzen Maschinenzyklus erledigt, da Warteintervalle nicht erforderlich sind (wie sie im allgemeinen im Fall des Speicherlesens auftreten), da die geforderte Information sofort verfügbar ist. Das Ausführungsbeispiel gemäß Fig. 4 zeigt daher, daß die Meldelogik 27 sowohl für die Verwendung von "Autovektor"- als auch für "Vektor"-Mechanismen aufgebaut werden kann und daß jede Meldeeinheit unterschiedliche Meldungsarten bzw. Pegel erzeugen kann, ohne daß die Vorteile verloren gehen, die in bezug auf das Ausführungsbeispiel in Fig. 3 offenbart worden sind.
  • Es liegt ferner auf der Hand, daß, während ein System mit zwei Prozessoren offenbart worden ist, wobei jeder Prozessor einen eigenen Bus, einen Bus und wenigstens an einen solchen Bus angeschlossene Speicher besitzt, die gemeinsame Systemmittel bilden, auf die durch beide Prozessoren zugegriffen werden kann, das gleiche erfinderische Konzept in Systemen verwendet werden kann, wo mehr als zwei Prozessoren benutzt werden, wobei geeignete Änderungen vorgenommen werden müssen, die an dieser Stelle dem Fachmann auf der Hand liegen. In der vorangegangenen Beschreibung wurde nicht Bezug auf den Zeittakt des Prozessors und die Dialogeinzelheiten genommen, die in weitem Maße von der Art der verwendeten Prozessoren abhängen und für das Verständnis der vorliegenden Erfindung nicht wesentlich sind.
  • Bezüglich dieser Einzelheiten und mit Bezugnahme auf die Mikroprozessoren 68000 und 68010, die durch die Firma Motorola und ferner durch die Firma Mostek hergestellt werden, sei auf das Handbuch "MOSTEK 1982/1983 MICROELECTRONIC DATA BOOK", Mai 1982, Seite VI-1 bis VI-50 verwiesen.

Claims (5)

1. Mehrprozessor-Systemarchitektur, in der ein erster (1) und ein zweiter (2) Prozessor mit mindestens einem ersten (ABUS1, DATABUS1) bzw. einem zweiten (ABUS2, DATABUS2) autonomen Bus versehen sind und die beiden Busse selektiv miteinanderverbunden werden können und die beiden Prozessoren miteinander einerseits über Anweisungen kommunizieren, welche in Postfächern einer mit einem der Busse verbundenen Speichereinrichtung (4) gespeichert sind, und andererseits über Unterbrechungssignale (INTIOP, NOTIFY) kommunizieren, mit: - einem Unterbrechungssignalgenerator (27) zum Erzeugen eines ersten Unterbrechungssignals (INTIOP) sowie eines zweiten Unterbrechungssignals (NOTIFY), der Anschlüsse (28, 29) zum ersten und zweiten Bus aufweist, und - bei Anwesenheit des ersten Unterbrechungssignals durch vom zweiten Prozessor dem zweiten Bus zugeführte Signale in einen ersten Zustand gesetzt wird, - bei Abwesenheit des ersten Unterbrechungssignals durch vom ersten Prozessor dem ersten Bus zugeführte Signale in einen zweiten Zustand gesetzt wird, - bei Anwesenheit des zweiten Unterbrechungssignals durch vom ersten Prozessor dem ersten Bus zugeführte Signale in einen dritten Zustand gesetzt wird, und - bei Abwesenheit des zweiten Unterbrechungssignals durch vom zweiten Prozessor dem zweiten Bus zugeführte Signale in einen vierten Zustand gesetzt wird; - einer vom ersten Bus getrennten ersten Koppeleinrichtung (8), welche das erste Unterbrechungssignal (INTIOP) ohne Zugriff zum ersten Bus dem ersten Prozessor (1) zuleitet; - einer vom zweiten Bus getrennten zweiten Koppeleinrichtung (21), welche das zweite Unterbrechungssignal (NOTIFY) ohne Zugriff zum zweiten Bus dem zweiten Prozessor (2) zuleitet.
2. Systemarchitektur nach Anspruch 1 mit vom ersten Prozessor (1) über den ersten Bus gesteuerten ersten Mitteln (43) zum Lesen des Zustands (dritten oder vierten) des Generators über den ersten Bus und die Verbindung des Generators (27) mit dem ersten Bus.
3. Systemarchitektur nach Anspruch 2 mit vom zweiten Prozessor über den zweiten Bus gesteuerten zweiten Mitteln (42) zum Lesen des Zustands (ersten oder zweiten) des Generators über den zweiten Bus und die Verbindung des Generators mit dem zweiten Bus.
4. In einer Systemarchitektur nach Anspruch 3 ein Kommunikationsverfahren zwischen dem ersten und dem zweiten Prozessor bestehend aus folgenden Schritten: - der erste Prozessor verifiziert, daß sich der Generator im vierten Zustand befindet, - in ein an den zweiten Prozessor angeschlossenes Postfach schreibt der erste Prozessor eine für den zweiten Prozessor bestimmte Anweisung ein, ohne das Postfach zu verriegeln, - der erste Prozessor setzt den Generator in den dritten Zustand gefolgt von der Erzeugung des zweiten Unterbrechungssignals, - Aus lesen des an den zweiten Prozessor angeschlossenen Postfachs durch den zweiten Prozessor, ohne das Postfach zu verriegeln als Antwort auf das zweite Unterbrechungssignal, - der Generator wird vom zweiten Prozessor in den vierten Zustand gesetzt.
5. In einer Systemarchitektur nach Anspruch 3, ein Verfahren zum Nachrichtenaustausch zwischen dem ersten und zweiten Prozessor sowie zum Überschreiben von Nachrichten mit folgenden Schritten:
a) Feststellung durch den ersten Prozessor, daß ein mit dem zweiten Prozessor verbundenes Postfach zugängig ist sowie Verriegelung dieses Postfachs,
b) der erste Prozessor schreibt in dieses Postfach eine für den zweiten Prozessor bestimmte Nachricht ein,
c) der erste Prozessor gibt das mit dem zweiten Prozessor verbundene Postfach frei,
d) der Generator wird vom ersten Prozessor in den dritten Zustand gesetzt, gefolgt von der Erzeugung des zweiten Unterbrechungssignals,
e) der zweite Prozessor verifiziert, daß das an den zweiten Prozessor angeschlossene Postfach zugängig ist und verriegelt dieses bei Eingang des zweiten Unterbrechungssignals,
f) Aus lesen des Postfachs durch den zweiten Prozessor,
g) der Generator wird vom zweiten Prozessor in den vierten Zustand gesetzt,
h) das Postfach wird gleichzeitig mit oder nach dem vorherigen Schritt (g) vom zweiten Prozessor freigegeben,
i) der erste Prozessor verifiziert zu irgendeinem Zeitpunkt nach dem Schritt (d), daß sich der Generator im dritten Zustand befindet, und wenn dies der Fall ist,
j) der erste Prozessor verifiziert, daß das Postfach entsperrt ist, und wenn dies der Fall ist,
k) der erste Prozessor überschreibt die bereits vorhandene Nachricht mit einer neuen Nachricht und
l) der erste Prozessor entriegelt das Postfach und gibt es frei.
DE8686105844T 1985-05-07 1986-04-28 Mehrprozessorsystem-architektur. Expired - Fee Related DE3687426T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT20599/85A IT1184553B (it) 1985-05-07 1985-05-07 Architettura di sistema a piu' processori

Publications (2)

Publication Number Publication Date
DE3687426D1 DE3687426D1 (de) 1993-02-18
DE3687426T2 true DE3687426T2 (de) 1993-07-29

Family

ID=11169369

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686105844T Expired - Fee Related DE3687426T2 (de) 1985-05-07 1986-04-28 Mehrprozessorsystem-architektur.

Country Status (7)

Country Link
US (1) US4862354A (de)
EP (1) EP0201020B1 (de)
JP (1) JPS61286961A (de)
KR (1) KR920006616B1 (de)
CA (1) CA1254663A (de)
DE (1) DE3687426T2 (de)
IT (1) IT1184553B (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU597980B2 (en) * 1986-05-30 1990-06-14 Honeywell Bull Inc. Apparatus and method for interprocessor communication
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
JPS63284660A (ja) * 1987-05-16 1988-11-21 Nec Corp プロセッサ間通信方式
US5280589A (en) * 1987-07-30 1994-01-18 Kabushiki Kaisha Toshiba Memory access control system for use with a relatively small size data processing system
US5136718A (en) * 1987-09-04 1992-08-04 Digital Equipment Corporation Communications arrangement for digital data processing system employing heterogeneous multiple processing nodes
US5367688A (en) * 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US4969090A (en) * 1987-09-11 1990-11-06 Beehive International Program routine vectoring circuit for selectively using either stored interupt instructions or incoming interupt handling instructions
JPH02128267A (ja) * 1988-11-09 1990-05-16 Fujitsu Ltd 共有メモリによる通信方式
EP0376003A3 (de) * 1988-12-29 1991-12-18 International Business Machines Corporation Mehrrechnersystem mit Zwischenprozessor-Datenkommunikationseinrichtungen
US5210828A (en) * 1988-12-29 1993-05-11 International Business Machines Corporation Multiprocessing system with interprocessor communications facility
EP0429780B1 (de) * 1989-11-29 1997-11-12 Kabushiki Kaisha Toshiba Zum Anschluss einer Erweiterungseinheit geeignetes Rechnersystem
EP0443876A3 (en) * 1990-02-23 1992-01-02 Kabushiki Kaisha Toshiba Computer system capable of connecting expansion unit
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US5581770A (en) * 1992-06-04 1996-12-03 Mitsubishi Denki Kabushiki Kaisha Floating interruption handling system and method
EP0645026B1 (de) * 1992-06-12 1997-11-12 The Dow Chemical Company Transparente schnittstelle fur prozesssteuerungsrechner
US5613135A (en) * 1992-09-17 1997-03-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
JPH06214969A (ja) * 1992-09-30 1994-08-05 Internatl Business Mach Corp <Ibm> 情報通信方法および装置
DE69316559T2 (de) * 1992-12-03 1998-09-10 Advanced Micro Devices Inc Servoregelkreissteuerung
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
EP0640929A3 (de) * 1993-08-30 1995-11-29 Advanced Micro Devices Inc Zwischenprozessorkommunikation durch RAM-Postamt.
JPH07105023A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> データ処理システム内でスプリアス割込みを検出するための方法及び装置
CA2123447C (en) * 1993-09-20 1999-02-16 Richard L. Arndt Scalable system interrupt structure for a multiprocessing system
US5673415A (en) * 1993-12-03 1997-09-30 Unisys Corporation High speed two-port interface unit where read commands suspend partially executed write commands
US5680624A (en) * 1993-12-21 1997-10-21 Object Licensing Corporation Object oriented interrupt system
US5555430A (en) * 1994-05-31 1996-09-10 Advanced Micro Devices Interrupt control architecture for symmetrical multiprocessing system
US5574863A (en) * 1994-10-25 1996-11-12 Hewlett-Packard Company System for using mirrored memory as a robust communication path between dual disk storage controllers
GB9505724D0 (en) * 1995-03-21 1995-05-10 Newbridge Networks Corp ATM without traffic shaping
GB2308902B (en) * 1996-01-04 2000-03-29 Motorola Inc Peripheral module and microprocessor system
EP0813710B1 (de) * 1996-01-09 2001-08-22 Koninklijke Philips Electronics N.V. Verfahren und system zum synchronisieren von gleichzeitigen sequentiellen prozessen mit hilfe von intra-prozess-korrigier- und inter-prozess-adaptier- operationen
US5778236A (en) * 1996-05-17 1998-07-07 Advanced Micro Devices, Inc. Multiprocessing interrupt controller on I/O bus
US6151638A (en) * 1997-06-25 2000-11-21 Unisys Corp. System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer
US6141697A (en) * 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US6192418B1 (en) * 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US6289391B1 (en) * 1997-06-25 2001-09-11 Unisys Corp. System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US7233977B2 (en) * 1998-12-18 2007-06-19 Emc Corporation Messaging mechanism employing mailboxes for inter processor communications
US6295573B1 (en) 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US6205508B1 (en) 1999-02-16 2001-03-20 Advanced Micro Devices, Inc. Method for distributing interrupts in a multi-processor system
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6389526B1 (en) 1999-08-24 2002-05-14 Advanced Micro Devices, Inc. Circuit and method for selectively stalling interrupt requests initiated by devices coupled to a multiprocessor system
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6587930B1 (en) 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
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
US6606677B1 (en) * 2000-03-07 2003-08-12 International Business Machines Corporation High speed interrupt controller
FR2817058B1 (fr) * 2000-11-21 2003-01-24 St Microelectronics Sa Dispositif et procede de traitement des interruptions dans une transmission d'informations sur un bus
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US8555395B2 (en) * 2004-02-03 2013-10-08 Media Rights Technologies, Inc. Method and system for providing a media change notification on a computing system
US8510491B1 (en) * 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
US7831778B2 (en) * 2006-03-30 2010-11-09 Silicon Image, Inc. Shared nonvolatile memory architecture
TWI386846B (zh) * 2006-03-30 2013-02-21 Silicon Image Inc 利用共享式非揮發性記憶體初始化多個處理元件之方法、系統及快閃記憶體元件
US8677034B2 (en) * 2006-04-28 2014-03-18 Hewlett-Packard Development Company, L.P. System for controlling I/O devices in a multi-partition computer system
DE102007063291A1 (de) * 2007-12-27 2009-07-02 Robert Bosch Gmbh Sicherheitssteuerung
US10684965B2 (en) 2017-11-08 2020-06-16 Advanced Micro Devices, Inc. Method to reduce write responses to improve bandwidth and efficiency
TWI703501B (zh) * 2018-08-23 2020-09-01 慧榮科技股份有限公司 具有分散式信箱架構的多處理器系統及其溝通方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3483520A (en) * 1966-04-20 1969-12-09 Gen Electric Apparatus providing inter-processor communication in a multicomputer system
US3940743A (en) * 1973-11-05 1976-02-24 Digital Equipment Corporation Interconnecting unit for independently operable data processing systems
US4038644A (en) * 1975-11-19 1977-07-26 Ncr Corporation Destination selection apparatus for a bus oriented computer system
US4402046A (en) * 1978-12-21 1983-08-30 Intel Corporation Interprocessor communication system
IT1126475B (it) * 1979-12-03 1986-05-21 Honeywell Inf Systems Apparato di comunicazione tra piu' processori
US4420806A (en) * 1981-01-15 1983-12-13 Harris Corporation Interrupt coupling and monitoring system
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4590556A (en) * 1983-01-17 1986-05-20 Tandy Corporation Co-processor combination
JPS59218560A (ja) * 1983-05-26 1984-12-08 Fuji Electric Co Ltd 割込コントロ−ル方式

Also Published As

Publication number Publication date
KR860009352A (ko) 1986-12-22
EP0201020A3 (en) 1989-06-14
US4862354A (en) 1989-08-29
EP0201020B1 (de) 1993-01-07
KR920006616B1 (ko) 1992-08-10
DE3687426D1 (de) 1993-02-18
CA1254663A (en) 1989-05-23
JPS61286961A (ja) 1986-12-17
EP0201020A2 (de) 1986-12-17
IT1184553B (it) 1987-10-28
IT8520599A0 (it) 1985-05-07

Similar Documents

Publication Publication Date Title
DE3687426T2 (de) Mehrprozessorsystem-architektur.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE2755897C2 (de)
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
DE69228582T2 (de) Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE2719203C2 (de) Einrichtung zur Reststatusberichterstattung während verketteter Ein- und Ausgabeoperationen
DE3152435C2 (de)
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE2719253B2 (de) Schnittstellenschaltung für Datenverarbeitungsanlagen
DE68915074T2 (de) Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor.
DE2750721A1 (de) Ein/ausgabe-system
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem &#34;pended bus&#34;.
DE3502147C2 (de)
DE68919018T2 (de) Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen.
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
EP0006164A1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69122142T2 (de) Steuerungsanlage für ein Mehrprozessorsystem

Legal Events

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