DE3887886T2 - Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem. - Google Patents

Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem.

Info

Publication number
DE3887886T2
DE3887886T2 DE3887886T DE3887886T DE3887886T2 DE 3887886 T2 DE3887886 T2 DE 3887886T2 DE 3887886 T DE3887886 T DE 3887886T DE 3887886 T DE3887886 T DE 3887886T DE 3887886 T2 DE3887886 T2 DE 3887886T2
Authority
DE
Germany
Prior art keywords
node
lock
bus
access
command
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
DE3887886T
Other languages
English (en)
Other versions
DE3887886D1 (de
Inventor
Richard Gillett
Douglas Williams
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Application granted granted Critical
Publication of DE3887886D1 publication Critical patent/DE3887886D1/de
Publication of DE3887886T2 publication Critical patent/DE3887886T2/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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Description

    I. Hintergrund der Erfindung
  • Die Erfindung bezieht sich auf Computersysteme und insbesondere auf Computersysteme mit mehreren Prozessoren, die durch einen Bus miteinander verbunden sind und die Fähigkeit haben, einen Zugriffsbefehl auf ein Betriebsmittel einzuleiten.
  • Moderne Computersysteme haben mehrere Prozessoren, Speicher-Betriebsmittel und Eingabe-/Ausgabe-(I/O)Vorrichtungen, die durch einen gemeinsamen Bus miteinander verbunden sind, um eine hohe rechnerische Gesamtleistung zu erzielen. Solch ein Aufbau kann sehr leistungsstarke Systeme ermöglichen, die in der Lage sind, viele Millionen Befehle pro Sekunde auszuführen. Jedoch kann die Querverbindung von mehreren Prozessoren zu Schwierigkeiten führen, wenn mehrere Prozessoren gleichzeitig versuchen, auf den Speicher oder auf I/O- Betriebsmittel zuzugreifen. Zum Beispiel können sich Probleme entwickeln, wenn einige Prozessoren jeweils versuchen, auf eine Lesen-Ändern-Schreiben- Operation (RMW) zuzugreifen. In einer RMW-Operation holt ein Prozessor Daten aus einem Speicherbereich heraus, führt eine Operation an den Daten aus und schreibt die veränderten Daten zurück an die ursprüngliche Speicherstelle. Unvorhersehbare Folgen, die sich auf die Systemintegrität auswirken, können eintreten, wenn ein Prozessor eine RMW-Operation für eine Speicherstelle gestartet hat und ein zweiter Prozessor eine RMW-Operation für die gleiche Speicherstelle in dem Zeitraum zwischen der "Lese"-Operation der RMW-Operation des ersten Prozessors und dem "Schreibe"-Teil dieser RMW-Operation versucht.
  • Eine Möglichkeit, um zu verhindern, daß mehrere Prozessoren eine RMW- Operation an derselben Speicherstelle ausführen, besteht darin, einen ausschließlichen Zugriffsbefehl, wie z. B. einen "Verriegel-Lese-"Befehl, zu schaffen. Dies beinhaltet die Verwendung einer "Sperr"-Anzeige, wie z. B. eines Sperr-Bits, das dann gesetzt wird, wenn der "Schreibe"-Teil einer RMW-Operation ausgeführt wird, und das zurückgesetzt wird, nachdem der "Schreibe-"Teil der RMW- Operation beendet ist. Ein zweiter Prozessor, der versucht, eine RMW-Operation an einer Speicherstelle im Speicher einzuleiten, wenn das Sperr-Bit gesetzt ist wird bewirken, daß der Speicher Sperr-Zustands-Informationen zurückgibt. Die Sperr-Zustands-Informationen zeigen dem Prozessor an, daß der zweite Verriegel- Lesen-Befehl von dem Speicher nicht akzeptiert wurde.
  • Die Verriegel-Leseoperation verhindert die Probleme, die dadurch entstehen, daß mehrere Prozessoren jeweils versuchen, eine RMW-Operation auszuführen. Den Prozessoren wird durch Entscheidungsprozesse, die z. B. einen Round-Robin- Algorithmus anwenden, gleichberechtigter Zugriff auf den Bus für solche Verriegel- Lesebefehle erteilt. Jedoch können weiterhin Leistungsengpässe auftreten. Zum Beispiel kann ein spezieller Prozessor unter bestimmten Busverkehrs- Bedingungen immer wieder auf gesperrte Speicherstellen stoßen und wird nicht in der Lage sein, den benötigten Zugriff auf die Speicher-Betriebsmittel rechtzeitig zu erhalten. Solche Probleme werden dadurch reduziert, daß Mehrfach-Sperr-Bits für ein Speichermodul zur Verfügung gestellt werden, wobei jedes Sperr-Bit mit einem Teil des Speichermoduls und nicht mit dem gesamten Speichermodul verbunden ist. Solche Mehrfach-Sperr-Bits schaffen eine feinere "Körnung" von verriegelten Leseoperationen auf einem Speichermodul, das nach einer Verriegel- Leseoperation einen kleineren Teil des Speichers stillegt. Ein System, das mehrere Sperr-Bits umfaßt, ist in der gleichzeitig anhängigen internationalen Anmeldung WO 88/08569 beschrieben.
  • Diese Lösung liefert auch eine höhere Erfolgsrate der RMW-Operationen und verbessert so die System-Leistung. Jedoch können unter bestimmten Umständen ausgewählte Prozessoren immer noch auf Probleme beim Speicherzugriff stoßen. Eine Bus-Entscheidung kann den Knoten helfen, adäquaten Zugriff auf den Systembus zu erhalten, indem diesen Knoten gleichberechtigter Zugriff auf den Systembus Knoten verschafft wird. Unter bestimmten Bedingungen jedoch stellt solch ein gleichberechtigter Bus-Zugriff keinen adäquaten Zugriff auf den Speicher selbst sicher. Zum Beispiel können zwei oder mehr Prozessoren, die Verriegel- Lesebefehle zur gleichen Zeit ausführen, in solcher Weise mit Verriegel- Lesebefehlen von anderen Knoten synchronisiert werden, daß bestimmte Prozessoren nur dann Befehle an den Speicher ausgeben, wenn der Speicher durch andere Knoten gesperrt wurde, so daß diesen Prozessoren der Zugriff auf die Speicher-Betriebsmittel wirksam verweigert wird.
  • Ein zweites Beispiel, das eine hinausgezögerte Verweigerung von System- Betriebsmitteln auf einem Mehrfachprozessor-System mit sich bringt, ist, wenn mehrere Prozessoren versuchen, auf einen I/O-Bus mit einer höheren Rate zuzugreifen, als ein I/O-Adapter solche Anfragen bedienen kann. Die Eingangswarteschlange des I/O-Adapters füllt sich deshalb schnell und führt zu "Nicht- Anerkennungs-(NACK)"Anzeigen an Prozessoren, die versuchen, anschließend auf den I/O-Bus zuzugreifen.
  • Obwohl die vorangegangene Diskussion den Betrieb eines Computersystems betont hat, das Prozessor-Knoten, Speicher-Knoten und I/O-Knoten verwendet, betrifft eine noch allgemeinere Diskussion eines solchen Systems die Befehlsgeber- Knoten, d. h. Knoten, die eine Transaktion auf einem Bus einleiten, und Responder-Knoten, d. h. Knoten, die auf eine Transaktion antworten, die durch einen Befehlsgeber-Knoten eingeleitet wurde. Zu verschiedenen Zeiten kann eine einzige Vorrichtung entweder als Befehlsgeber-Knoten oder als Responder-Knoten fungieren.
  • Im Dokument EP-0086601 ist ein Multiprozessor-System beschrieben, das eine Vielzahl von Prozessor-Knoten umfaßt, die jeweils mit einem Speicher-Knoten verbunden sind und die jeweils ein erstes Steuer-Signal erzeugen, wenn sie einen Teste-und-Setze-Befehl ausführen, und ein zweites Steuer-Signal, nachdem sie eine Folge von Warteschlangenschritten ausgeführt haben. Das System besitzt weiterhin Flip-Flop-Schaltungen, die jeweils von dem entsprechenden Prozessorknoten entsprechend dem ersten Steuer-Signal gesetzt werden und die jeweils von einem der Prozessor-Knoten entsprechend dem zweiten Steuer-Signal gemeinsam zurückgesetzt werden. Die Prozessor-Knoten werden daran gehindert, den Teste-und-Setze-Befehl auszuführen, während die entsprechende Flip-Flop- Schaltung gesetzt wird.
  • II. Zusammenfassung der Erfindung
  • Es ist deshalb eine Aufgabe der vorliegenden Erfindung, ein Multiprozessor- System zu schaffen, in dem allen Prozessoren adäquater Zugriff auf System- Betriebsmittel gewährt wird.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Multiprozessor-System mit Verriegel-Lesebefehlen zu schaffen, in dem allen Prozessoren Zugriff auf Speicher-Betriebsmittel garantiert wird.
  • Es ist eine weitere Aufgabe der Erfindung, ein Multiprozessor-System vorzusehen in dem Verriegel-Lesebefehle verhindert werden, wenn den Prozessoren der Zugang zum Speicher wegen wiederholter Sperr-Antwortmeldungen verweigert wird.
  • Zusätzliche Aufgaben und Vorteile der Erfindung werden zum Teil in der folgenden Beschreibung dargelegt und aus dieser offensichtlich oder können anhand der praktischen Anwendung der Erfindung verständlich werden. Die Aufgaben und Vorteile der Erfindung können mittels der Hilfsmittel und Kombinationsmöglichkeiten, auf die insbesondere in den beigefügten Ansprüchen hingewiesen wird, verwirklicht und erreicht werden.
  • Die vorliegende Erfindung wird in den Ansprüchen 1 und 13 dargestellt. Die Erfindung meistert die Probleme und Nachteile des Standes der Technik dadurch, daß sie auf eine Betriebsmittel-Verweigerungsmeldung anspricht, die von einem Prozessor empfangen wird, um das Erzeugen von Befehlen, die zusätzliche Ansprüche an ein System-Betriebsmittel stellen würden, solange zu begrenzen bis, das Betriebsmittel für einen adäquaten Dienst an dem Prozessor, der die Betriebs- Verweigerungsmeldung empfangen hat, sorgen kann.
  • Die beigefügten Zeichnungen, die in dieser Beschreibung enthalten sind und die einen Teil dieser Beschreibung darstellen, zeigen eine Ausführungsform der Erfindung, und dienen zusammen mit der Beschreibung dazu, die Prinzipien der vorliegenden Erfindung zu erklären.
  • III. Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockschaltbild eines Datenverarbeitungssystems, das die vorliegende Erfindung enthält;
  • Fig. 2 ist ein Blockschaltbild eines Knotens, der mit dem Bus in dem Datenverarbeitungssystem von Fig. 1 verbunden ist;
  • Fig. 3 ist ein typisches Zeitablaufdiagramm, das die Zeitablaufsignale zeigt, die in dem Datenverarbeitungssystem von Fig. 1 benutzt werden.
  • Fig. 4 ist ein Blockschaltbild der Datenschnittstelle 61, die in den Knoten von Figuren 1 und 2 benutzt wird;
  • Fig. 5 ist ein Blockschaltbild des Zuteilers in dem Datenverarbeitungssystem von Fig. 1;
  • Fig. 6 ist ein Zeitablaufdiagramm, das Signale zeigt, die auf dem Systembus von Fig. 1 während einer Verriegel-Lesetransaktion auftreten;
  • Fig. 7 ist ein Blockschaltbild eines Prozessor-Knotens in dem Datenverarbeitungssystem von Fig. 1;
  • Fig. 8 ist ein Blockschaltbild eines Speicher-Knotens in dem Datenverarbeitungssystem von Fig. 1;
  • Fig. 9 ist ein Blockschaltbild einer Sperrprüfungs-Schaltung in dem Prozessor- Knoten von Fig. 8; und
  • Fig. 10 ist ein Beispiel einer Serie von gemeinsamen Zugriff-Transaktionen, die die vorliegende Erfindung veranschaulichen.
  • IV. Detaillierte Beschreibung der bevorzugten Ausführungsform
  • Es wird nun detailliert auf eine bevorzugte Ausführungsform der Erfindung Bezug genommen, von der ein Beispiel in den beigefügten Zeichnungen dargestellt ist.
  • A. Systemüberblick
  • Fig. 1 zeigt ein Beispiel eines Datenverarbeitungssystems 20, das die vorliegende Erfindung enthält. Das Herz des Systems 20 ist ein Systembus 25, der ein synchroner Bus ist, der Kommunikation zwischen mehreren Prozessoren, Speicheruntersystemen und Eingabe-/Ausgabe-(I/O)Systemen zuläßt. Kommunikationen über den Systembus 25 treten synchron auf, wobei periodische Buszyklen verwendet werden. Eine typische Bus-Zykluszeit für den Systembus 25 ist 64 ns.
  • In Fig. 1 ist der Systembus 25 mit zwei Prozessoren 31 und 35, einem Speicher 39, einer I/O-Schnittstelle 41 und einer I/O-Einheit 51 verbunden. Die I/O-Einheit 53 ist mit dem Systembus 25 mittels des I/O-Busses 45 und der I/O- Schnittstelleneinheit 41 verbunden.
  • In der bevorzugten Ausführungsform des Datenverarbeitungssystems 20 ist weiterhin ein zentraler Zuteiler 28 mit dem Systembus 25 verbunden. Der Zuteiler 28 liefert bestimmte Zeitablauf- und Bus-Entscheidungssignale direkt an die anderen Vorrichtungen auf dem Systembus 25 und teilt einige Signale mit diesen Vorrichtungen.
  • Die Implementierung, die in Fig. 1 gezeigt ist, ist eine, die zur Zeit bevorzugt wird und sollte nicht notwendigerweise so ausgelegt werden, daß sie die vorliegende Erfindung begrenzt. Zum Beispiel könnte die I/O-Einheit 53 direkt mit dem Systembus 25 verbunden werden, und der Zuteiler 28 muß nicht in der für die vorliegende Erfindung beschriebenen Art und Weise funktionieren.
  • In der Nomenklatur, die benutzt wird, um die vorliegende Erfindung zu beschreiben, werden die Prozessoren 31 und 35, der Speicher 39, die I/O-Schnittstelle 41 und die I/O-Vorrichtung 51 alle als Knoten bezeichnet. Ein "Knoten" wird als eine Hardware-Vorrichtung definiert, die mit dem Systembus 25 verbunden ist. Ein typischer Knoten 60 ist detaillierter in Fig. 2 gezeigt.
  • Entsprechend der Nomenklatur, die dazu benutzt wird, die vorliegende Erfindung zu beschreiben, werden die Ausdrücke "Signale" oder "Leitungen" hauptsächlich austauschbar dafür verwendet, um von den Namen der physikalischen Leiter zu sprechen. Die Ausdrücke "Daten" oder "Pegel" werden hauptsächlich dazu benutzt, um von den Werten zu sprechen, die die Signale oder Leitungen annehmen können.
  • Knoten führen Übertragungen mit anderen Knoten über den Systembus 25 durch. Eine "Übertragung" besteht aus einem oder mehreren aneinandergrenzenden Zyklen, die sich einen gemeinsamen Sender und eine gemeinsame Entscheidung teilen. Zum Beispiel benötigt eine Leseoperation, die durch einen Knoten eingeleitet wurde, um Informationen von einem anderen Knoten auf dem Systembus 25 zu erhalten, eine Befehlsübertragung von dem ersten zu dem zweiten Knoten, gefolgt von einem oder mehreren Datenrückübertragungen von dem zweiten Knoten zu dem ersten Knoten zu einem etwas späteren Zeitpunkt.
  • Eine "Transaktion" ist als die komplette logische Aufgabe definiert, die auf dem Systembus 25 ausgeführt wird, und kann mehr als eine Übertragung umfassen. Zum Beispiel ist eine Leseoperation bestehend aus einer Befehlsübertragung, die später von einer oder mehrerer Daten-Rückübertragungen gefolgt wird, eine Transaktion. In der bevorzugten Ausführungsform des Systembusses 25 unterstützen die erlaubten Transaktionen die Übertragung von verschiedenen Datenlängen und umfassen Lese-, Schreib- (verdeckt), Verriegel-Lese-, Entsperre-Schreib- und Unterbrechungs-Operationen. Der Unterschied zwischen einem Verriegel-Lesen und einem normalen oder Nicht-Verriegel-Lesen ist, daß ein Verriegel-Lesen an einer bestimmten Speicherstelle Informationen herausholt, die in dieser Speicherstelle gespeichert sind, und beschränkt den Zugriff auf die gespeicherten Informationen durch nachfolgende Verriegel-Lesebefehle. Zugriffsbeschränkungen werden durch das Setzen eines Sperr-Mechanismus durchgeführt. Ein nachfolgender Entsperre-Schreibbefehl speichert die Informationen an dem spezifizierten Ort und stellt den Zugriff auf die gespeicherten Informationen durch Rücksetzen des Sperrmechanismus an diesem Ort wieder her. Deshalb sind die Verriegel-Lese/Entsperre-Schreiboperationen eine Form der Lese-Modifizier-Schreib-Operation.
  • Da der Systembus 25 ein "Hängebus" ist, fördert er die effiziente Benutzung von Bus-Betriebsmitteln, indem er zuläßt, daß andere Knoten die Buszyklen benutzen die sonst ungenutzt auf Anforderungen gewartet hätten. Nachdem ein Knoten eine Transaktion eingeleitet hat, können in einem Hängebus andere Knoten Zugriff auf den Bus haben, bevor diese Transaktion beendet ist. Deshalb belegt der Knoten, der diese Transaktion eingeleitet hat, den Bus nicht für die gesamte Transaktionszeit. Dies steht im Gegensatz zu einem Nicht-Hängebus, bei dem der Bus für die gesamte Transaktion belegt ist. Zum Beispiel ist, nachdem ein Knoten eine Lesetransaktion eingeleitet und eine Befehlsübertragung durchgeführt hat, in dem Systembus 25 der Knoten, auf den diese Befehlsübertragung gerichtet ist, eventuell nicht in der Lage, die angeforderten Daten sofort zurückzuübertragen. Zyklen auf dem Bus 25 würden dann zwischen der Befehlsübertragung und der Datenrückübertragung der Lesetransaktion verfügbar sein. Der Systembus 25 erlaubt es anderen Knoten, jene Zyklen zu benutzen.
  • Bei der Benutzung des Systembusses 25 kann jeder der Knoten verschiedene Rollen übernehmen, um die Übertragung von Informationen zu bewirken. Eine dieser Rollen ist ein "Befehlsgeber", der als ein Knoten definiert ist, der eine Transaktion eingeleitet hat, die momentan in Gang ist. Zum Beispiel ist in einer Schreib- oder Leseoperation der Befehlsgeber der Knoten, der die Schreib- oder Leseoperation anfordert; er ist nicht notwendigerweise der Knoten, der die Daten sendet oder empfängt. In dem bevorzugten Protokoll für den Systembus 25 bleibt ein Knoten während einer gesamten Transaktion der Befehlsgeber, auch wenn ein anderer Knoten den Systembus 25 während bestimmter Transaktionszyklen in Beschlag nimmt. Obwohl zum Beispiel ein Knoten während der Datenübertragung die Kontrolle über den Systembus 25 in Reaktion auf die Befehlsübertragung einer Lesetransaktion hat, ,wird dieser eine Knoten nicht der Befehlsgeber des Busses. Statt dessen wird dieser Knoten "Responder" genannt.
  • Ein Responder antwortet auf den Befehlsgeber. Wenn zum Beispiel ein Befehlsgeber eine Schreiboperation einleitet, um Daten vom Knoten A zum Knoten B zu schreiben, wäre Knoten B der Responder. Zusätzlich kann in dem Datenverarbeitungssystem 20 ein Knoten gleichzeitig Befehlsgeber und Responder sein.
  • Sender und Empfänger sind Rollen, die die Knoten bei einer individuellen Übertragung annehmen. Ein "Sender" ist als ein Knoten definiert, der die Quelle der Informationen ist, die während einer Übertragung auf den Systembus 25 gelegt werden. Ein "Empfänger" ist das Gegenstück des Senders und ist als der Knoten definiert, der die Informationen empfängt, die während einer Übertragung auf den Systembus 25 gelegt werden. Zum Beispiel während einer Lesetransaktion kann ein Befehlsgeber erst ein Sender während der Befehlsübertragung und dann ein Empfänger während der Datenrückübertragung sein.
  • Wenn ein mit dem Systembus 25 verbundener Knoten ein Sender auf dem Systembus 25 werden will, aktiviert dieser Knoten eine von zwei Anforderungsleitungen, CMC REQ (Befehlsgeber-Anforderung) und RES REQ (Responder- Anforderung), die mit dem zentralen Zuteiler 28 und diesem bestimmten Knoten verbunden sind. Die CMD REQ- und RES REQ-Leitungen sind allgemein in Fig. 1 gezeigt. Allgemein benutzt ein Knoten seine CMD REQ-Leitung dazu, anzufordern daß er Befehlsgeber wird und Transaktionen auf dem Systembus 25 einleitet, und ein Knoten benutzt seine RES REQ-Leitung dazu, ein Responder zu werden, um Daten oder eine Meldung an einen Befehlsgeber zurückzugeben. Allgemein findet der zentrale Zuteiler 28 heraus, welche Knoten Zugriff auf den Bus verlangen (d. h. welche Anforderungs-Leitungen aktiviert sind). Der Zuteiler antwortet dann auf einer der aktivierten Anforderungs-Leitungen, um den entsprechenden Knotenzugriff auf den Bus 25 entsprechend einem Prioritäts-Algorithmus zu gewähren. In der bevorzugten Ausführungsform hält der Zuteiler 28 zwei unabhängige ringförmige Warteschlangen aufrecht: eine für die Befehlsgeber-Anforderungen und eine für die Responder-Anforderungen. Vorzugsweise haben die Responder- Anforderungen eine höhere Priorität als die Befehlsgeber-Anforderungen und werden vor den Befehlsgeber-Anforderungen erledigt.
  • Die Befehlsgeber-Anforderungs-Leitungen und die Responder-Anforderungs- Leitungen werden als Entscheidungs-Signale betrachtet. Wie in Fig. 1 dargestellt und detaillierter in der Beschreibung von Fig. 6 erklärt, umfassen die Entscheidungs-Signale ebenfalls zu jedem Knoten bedingte Punkt-für-Punkt-Gewährungssignale vom zentralen Zuteiler, Systembus-Erweiterungssignale, um Multibus-Zyklusübertragungen zu implementieren und Systembus-Unterdrückungssignale, um die Initiierung neuer Bus-Transaktionen zu steuern, wenn zum Beispiel ein Knoten, wie z. B. ein Speicher, momentan nicht in der Lage ist, mit dem Verkehr auf dem Systembus Schritt zu halten.
  • Andere Arten von Signalen, die den Systembus 25 bilden können, umfassen Informationens-Übertragungssignale, Antwortsignale, Steuersignale, Konsolen/Frontabdeckungs-Signale und ein paar andere Signale. Informations- Übertragungssignale umfassen Datensignale, Funktionssignale, die die Funktion darstellen, die während des momentanen Zyklus auf dem Systembus 25 ausgeführt werden, Identifizierungssignale, die den Befehlsgeber identifizieren, und Paritätssignale. Die Antwortsignale umfassen allgemein Anerkennungs- oder Bestätigungssignale von einem Empfänger, um den Sender über den Zustand der Datenübertragung zu unterrichten.
  • Steuersignale umfassen Taktsignale, Warnsignale, wie jene, die geringe Leitungsspannungen oder geringe Gleichspannungen anzeigen, Rücksetzsignale, die während der Initialisierung benutzt werden, Knoten-Ausfallsignale, Vorbelegungssignale, die während ungenutzter Buszyklen benutzt werden, und Fehler- Vorbelegungssignale. Die Konsolen-/Frontabdeckungssignale umfassen Signale, um serielle Daten an eine Systemkonsole zu übertragen und von dieser zu empfangen, Boot-Signale, um das Verhalten eines Boot-Prozessors während des Einschaltens zu steuern, Signale, um eine Änderung des löschbaren PROM der Prozessoren 31, 35 auf ,dem Systembus 25 zu ermöglichen, ein Signal, um ein Betriebslämpchen auf der Frontabdeckung zu steuern, und Signale, die auf bestimmten Knoten für eine Batteriespannung für die Taktlogik sorgen. Die anderen Signale, zusätzlich zu den Ersatzsignalen, umfassen Identifizierungssignale, die es jedem Knoten erlauben, seinen Identifizierungscode zu definieren.
  • Fig. 2 zeigt ein Beispiel eines Knoten 60, der mit dem Systembus 25 verbunden ist. Knoten 60 könnte ein Prozessor sein, ein Speicher, eine I/O-Einheit oder eine l/O-Schnittstelle, wie in Fig. 1 gezeigt. In dem Beispiel, das in Fig. 2 gezeigt ist, umfaßt der Knoten 60 eine knotenspezifische Logik 65, einen Knotenbus 67 und eine Systembus-Schnittstelle 64, die eine Daten-Schnittstelle 61 und einen Takt- Decoder 63 umfaßt. Vorzugsweise sind die Daten-Schnittstelle 61, der Takt- Decoder 63 und der Knotenbus 67 Standardelemente für Knoten, die mit dem Systembus 25 verbunden sind. Die knotenspezifische Logik 65, die unterschiedliche integrierte Schaltungen von der Systembus-Schnittstelle 64 benutzt, umfaßt vorzugsweise zusätzlich zu der von einem Benutzer entwickelten Leitungsanordnung, um die spezielle Funktion des Knotens zu erfüllen, eine Standard- Schaltungsanordnung, um mit dem Knotenbus 67 eine Schnittstelle zu bilden. Allgemein ist die Datenschnittstelle 61 die logische und elektrische Hauptschnittstelle zwischen dem Knoten 60 und dem Systembus 25, der Takt-Decoder 63 liefert Zeitablaufsignale an den Knoten 60, die auf zentral erzeugten Taktsignalen basieren, und der Knotenbus 67 schafft eine schnelle Schnittstelle zwischen der Datenschnittstelle 61 und der knotenspezifischen Logik 65.
  • In der bevorzugten Ausführungsform des Knotens 60 und der Systembus- Schnittstelle 64, die in Fig. 2 gezeigt sind, umfaßt der Takt-Decoder 63 eine Steuerschaltungsanordnung zum Erzeugen von Signalen, die auf den Systembus 25 gesetzt werden sollen, und er verarbeitet Taktsignale, die von dem zentralen Zuteiler 28 empfangen werden, um Zeitablaufsignale für die knotenspezifische Logik 65 und die Daten-Schnittstelle 61 zu erhalten. Da die Zeitablaufsignale, die durch den Takt-Decoder 63 erhalten werden, die zentral erzeugten Taktsignale benutzen, arbeitet der Knoten 60 synchron mit dem Systembus 25.
  • Fig. 3 ist ein Zeitablaufdiagramm, das einen Buszyklus, Taktsignale von dem zentralen Verteiler 28 (Fig. 1), die durch den Takt-Decoder 63 empfangen werden, und bestimmte Zeitablaufsignale zeigt, die durch den Takt-Decoder 63 erzeugt werden. Die Taktsignale, die von dem Takt-Decoder 63 empfangen werden umfassen ein Zeitsignal H, ein Zeitsignal L und ein Phasensignal, wie in Fig. 3 gezeigt. Zeit H und Zeit L sind Inverse der Grund-Taktsignale, und das Phasensignal wird durch die Division des Grund-Taktsignals durch Drei erhalten. Die Zeitablaufsignale, die durch den Takt-Decoder 63 erzeugt werden, umfassen C12 C23, C34, C45, C56 und C61, die alle in Fig. 3 gezeigt sind. Diese Zeitablaufsignale, die von der Daten-Schnittstelle 61 benötigt werden, die einmal pro Buszyklus auftreten, werden an die Daten-Schnittstelle 61 angelegt, und ein vollständiger Satz von Zeitablaufsignalen, die äquivalente Zeitsignale umfassen, die an die Daten-Schnittstelle 61 angelegt werden, wird gepuffert und an die knotenspezifische Logik 65 angelegt. Das Ziel der Pufferung ist es, sicherzustellen, daß die knotenspezifische Logik 65 sich nicht durch unsachgemäßes Laden der Zeitablaufsignale nachteilig auf den Betrieb der Systembus-Schnittstelle 64 auswirkt. Der Takt-Decoder 63 benutzt die Taktsignale, um sechs Unterzyklen für jeden Buszyklus zu erzeugen, und benutzt dann die Unterzyklen, um die sechs Zeitablaufsignale CXY zu erzeugen, wobei X und Y zwei angrenzende Unterzyklen darstellen, die kombiniert werden, um ein Zeitablaufsignal zu bilden.
  • Jeder Knoten in dem Systembus besitzt seinen eigenen entsprechenden Satz von Zeitablaufsignalen, die von seinem Takt-Decoder 63 erzeugt werden. Während die entsprechenden Signale im gesamten System 20 an jedem Knoten nominell zu genau der gleichen Zeit auftreten, führen Veränderungen zwischen dem Takt- Decoder 63 und der anderen Schaltungsanordnung in mehreren Knoten zu Zeitablauf-Veränderungen zwischen den entsprechenden Signalen. Diese Zeitablauf-Veränderungen sind allgemein als "Taktversatz" bekannt.
  • Fig. 4 zeigt eine bevorzugte Ausführungsform der Datenschnittstelle 61. Die Datenschnittstelle 61 umfaßt sowohl eine temporäre Speicherschaltungsanordnung als auch eine Bustreiber-Schaltungsanordnung, um eine bidirektionale und schnelle Schnittstelle zwischen jeder Leitung des Knotenbusses 67 und jeder Leitung des Systembusses 25 zu schaffen. Wie in Fig. 4 gezeigt, umfaßt die Datenschnittstelle 61 vorzugsweise die Speicherelemente 70 und 72 und den Systembustreiber 74, um einen Kommunikationsweg von dem Knotenbus 67 zu dem Systembus 25 zu schaffen. Die Datenschnittstelle 61 umfaßt auch das Speicherelement 80 und den Knotenbustreiber 82, um einen Kommunikationsweg von dem Systembus 25 zu dem Knotenbus 67 zu schaffen. Der Ausdruck "Speicherelement", wie er in der Beschreibung der Datenschnittstelle 61 verwendet wird, bezieht sich allgemein auf bistabile Speichervorrichtungen, wie z. B. einen transparenten Signalspeicher oder ein Master-Slave-Speicherelement, und nicht auf eine spezielle Implementierung. Durchschnittlichen Fachleute werden erkennen, welcher Typ von Speicherelementen geeignet ist.
  • Wie in Fig. 4 gezeigt, hat das Speicherelement 70 einen Eingang, der dazu dient Daten von dem Knotenbus 67 zu empfangen, und einen Ausgang, der mit dem Eingang des Speicherelements 72 verbunden ist. Der Ausgang des Speicherelements 72 ist mit einem Eingang des Systembustreibers 74 verbunden, dessen Ausgang mit dem Systembus 25 verbunden ist. Die Speicherelemente 70 und 72 werden durch Knotenbus-Steuersignale 76 bzw. 78 gesteuert, die aus den Zeitablaufsignalen gewonnen werden, die von dem Takt-Decoder 63 erzeugt werden. Die Speicherelemente 70 und 72 sehen einen zweistufigen Zwischenspeicher vor, um die Daten von dem Knotenbus 67 zu dem Systembus 25 zu leiten. Es kann auch eine unterschiedliche Anzahl von Speicherstufen verwendet werden.
  • Der Systembustreiber 74 wird durch die Systembus-Ansteuerungsfreigabe 79 gesteuert. Entsprechend dem Zustand der Systembus-Ansteuerungsfreigabe 79, wird der Eingang des Systembustreibers 74 entweder mit seinem Ausgang verbunden um dadurch die Daten am Ausgang des Speicherelementes 72 an den Systembus 25 weiterzuleiten, oder von diesem Ausgang entkoppelt. Wenn die Systembus- Ansteuerungsfreigabe 79 die Eingänge und Ausgänge des Systembustreibers 74 entkoppelt, legt der Systembustreiber 74 eine hohe Impedanz an den Systembus 25 an. Die Systembus-Ansteuerungsfreigabe 79 wird auch durch den Takt- Decoder 63 entsprechend den Taktsignalen, die von dem Systembus 25 empfangen werden, und den Steuersignalen, die von der knotenspezifischen Logik 65 empfangen werden, erzeugt.
  • Das Speicherelement 80 hat einen mit dem Systembus 25 verbundenen Eingangsanschluß und einen mit dem Eingang des Knotenbustreibers 82 verbundenen Ausgangsanschluß. Der Ausgang des Knotenbustreibers 82 ist wiederum mit dem Knotenbus 67 verbunden. Das Speicherelement 80, vorzugsweise ein transparenter Signalspeicher, wird durch ein Systembus-Steuersignal 85 gesteuert, das aus den Zeitablaufsignalen durch den Takt-Decoder 63 gewonnen wird. Ein Knotenbus-Ansteuerungssignal 87 steuert den Knotenbustreiber 82 in ähnlicher Weise wie das Systembus-Ansteuerungssignal 79 den Systembustreiber 74 steuert. Deshalb verbindet der Knotenbustreiber 82 entsprechend dem Knotenbus-Ansteuerungssignal 87 entweder seinen Eingang mit seinem Ausgang, oder er entkoppelt seinen Eingang von seinem Ausgang und versieht den Knotenbus 67 mit einer hohen Impedanz.
  • Um zu erklären, wie Daten über den Systembus 25 übertragen werden, ist es wichtig, die Beziehung zwischen der Systembus-Ansteuerungsfreigabe 79 und dem Steuersignal 85 zu verstehen. In der vorliegenden Ausführungsform ist diese Beziehung in Fig. 3 gezeigt. Die Systembus-Ansteuerungsfreigabe 79 wird nominell vom Anfang bis zum Ende eines Buszyklus betrieben. Die neuen Daten können zu einem etwas späteren Zeitpunkt in dem Buszyklus vom Systembus 25 empfangen werden, nachdem Treiber-Laufzeit und Bus-Einschwingzeit aufgetreten ist. In der vorliegenden Ausführungsform ist das Speicherelement 80 ein transparenter Signalspeicher. Das Steuersignal 85 ist logisch äquivalent zum Takt C45.
  • Der Bus-Zeitablauf stellt sicher, daß Daten des Systembusses 25 etwas vor der Deaktivierung des Steuersignals 85 für den Empfang zur Verfügung stehen. Das Speicherelement 80 speichert Busdaten, die mindestens eine Aufbau-Zeit vor der Deaktivierung des Steuersignals 85 stabil sind und eine Haltezeit nach der Deaktivierung des Steuersignals 85 stabil bleiben.
  • Der Knotenbus 67 ist vorzugsweise ein sehr schneller Datenbus, der bidirektionalen Datentransfer zwischen der knotenspezifischen Logik 65 und dem Systembus 25 mittels der Datenschnittstelle 61 zuläßt. In der bevorzugten Ausführungsform des Knotens 60, die in Fig. 2 gezeigt ist, ist der Knotenbus 67 ein Kopplungssystem, das aus Punkt-zu-Punkt-Verbindungen zwischen der Systembusschnittstelle 64 und der knotenspezifischen Logik 65 besteht. Entsprechend der vorliegenden Erfindung besteht jedoch keine Notwendigkeit für solch eine Punkt-zu-Punkt- Verbindung.
  • Fig. 5 zeigt eine bevorzugte Ausführungsform des zentralen Zuteilers 28, der auch mit dem Systembus 25 verbunden ist. Der zentrale Zuteiler 28 liefert die Taktsignale für den Systembus 25 und gewährt den Knoten auf dem Systembus 25 die Inbeschlagnahme des Busses. Der zentrale Zuteiler 28 umfaßt vorzugsweise eine Entscheidungsschaltung 90, eine Taktschaltung 95 und einen Oszillator 97. Der Oszillator 97 erzeugt die Grund-Taktsignale. Die Taktschaltung 95 liefert Zeitablaufssignale für die Entscheidungsschaltung 90 und die grundlegenden Zeit H-, Zeit L- und Phasentaktsignale für den Zeitablauf auf dem Systembus 25. Die Entscheidungsschaltung 90 empfängt die Befehlsgeber- und Responder- Anforderungssignale, löst Konflikte zwischen Knoten, die Zugriff auf den Systembus 25 verlangen, und hält die oben erwähnten Warteschlangen für die Befehlsgeber- und Responder-Anforderungen aufrecht. Die Entscheidungsschaltung 90 liefert auch bestimmte Steuersignale an die Taktschaltung 95.
  • B. Diskussion der Sperroperationen
  • Wie oben kurz diskutiert, ist eine Anzahl verschiedener Arten von Transaktionen auf dem Bus 25 zugelassen. In jedem Fall wird die Transaktion aus einer oder mehreren einzelnen Übertragungen von einem Knoten zum anderen gebildet. Wenn der Responder-Knoten erfolgreich eine Befehlsübertragung während eines oder mehrerer Buszyklen empfängt, erzeugt er zu Beginn des Buszyklus nach jedem Übertragungszyklus eine Anerkennungsbestätigung. Solche Anerkennungssignale bezeichnen keine erfolgreiche Ausführung des Befehls, der in der ursprünglichen Übertragung enthalten war, sondern geben lediglich an, daß die Übertragung erfolgreich auf eine Eingangswarteschlange in dem gewünschten Responder-Knoten gesetzt worden ist. Die Transaktionen, die für die vorliegende Erfindung bedeutsam sind, werden anschließend kurz beschrieben.
  • Eine Lesetransaktion wird dazu benutzt, die Daten in 4-Byte-, 8-Byte-, 16-Byte- oder 32-Byte-Blöcken von einer speziellen Speicherstelle in einem Responder- Knoten, der ein Gebiet eines Adreßbereichs verwaltet, zu einem Befehlsgeber- Knoten zu verlagern. In der bevorzugten Ausführungsform werden die Speicher- und I/O-Operationen an einen gemeinsamen Adreßbereich verwiesen. Ein Responder-Knoten kann entweder ein Speicherknoten, ein Prozessorknoten oder ein I/O-Knoten sein.
  • Verriegel-Lesetransaktionen ähneln Lesetransaktionen. Jedoch hängt die genaue Wirkung einer Verriegel-Lesetransaktion vom Zustand der Sperre-Identifizierungskennzeichen in dem Responder-Knoten ab. Sperre-Identifizierungskennzeichen verhindern den Zugriff auf Speicherstellen oder Gruppen von Speicherstellen im Adreßbereich. Die Wirkung von Sperre-Identifizierungskennzeichen kann man verstehen, wenn man sich verbildlicht, daß die Adreßbereich des Systems 20 auf einer metallenen "Tafel" erscheinen. Sperre- Identifizierungskennzeichen arbeiten wie magnetische Identifizierungskennzeichen, die entfernbar oben auf Speicherstellen oder auf Gruppen von Speicherstellen auf Adreßbereichs-"Tafeln" gesetzt werden. Wenn die Stelle in dem Adreßbereich, die in einer Verriegel-Lesetransaktion spezifiziert ist, schon mit einem Sperre-Identifizierungskennzeichen bedeckt ist, d. h. wenn der spezifizierte Adreßbereich "gesperrt" ist, antwortet der Responder-Knoten der Verriegel- Leseanforderung mit einer "Gesperrt"-Antwortmeldung, und keine Daten werden zurückgegeben. Dies, zeigt dem Befehlsgeber an, daß auf die Speicherstelle in dem Adreßbereich, der in dem Verriegel-Lesebefehl spezifiziert wurde, nicht zugegriffen werden kann. Diese Gesperrt-Antwortmeldung wird an den Befehlsgeber übertragen, nachdem der Responder-Knoten den Verriegel-Lesebefehl bedient hat und nachdem der Responder-Knoten Zugriff auf den Bus 25 erlangen kann. Deshalb empfängt der Befehlsgeber die Gesperrt-Antwortmeldung zu einem unbestimmten Zeitpunkt nach der Befehlsübertragung der Verriegel-Lesetransaktion.
  • Wenn die spezifizierte Stelle nicht gesperrt ist, d. h. nicht mit einem Sperre- Identifizierungskennzeichen versehen ist, werden die Informationen, die in der im Verriegel-Lesebefehl spezifizierten Adresse gespeichert sind, in einer Antwortmeldung an den Befehlsgeber-Knoten zurückgegeben, der den Verriegel-Lesebefehl erzeugt hat. Der Responder-Knoten setzt auch ein Sperre-Identifizierungskennzeichen an die Speicherstelle in dem Adreßbereich, die in dem Verriegel- Lesebefehl spezifiziert ist, und verweigert somit den Zugriff auf die spezifizierte Stelle in dem Adreßbereich für nachfolgende Verriegel-Lesebefehle.
  • Die Entsperre-Schreibtransaktion ist das Gegenstück zur Verriegel-Schreibtransaktion. Wenn ein Befehlsgeber-Knoten erfolgreich die Lese- und Modifizier- Speicherstelle in einer Lese-Modifizier-Schreib-Operation vervollständigt, muß er die Speicherstelle im Adreßbereich entsperren, die temporär durch einen Verriegel-Lesebefehl gesperrt wurde. Der Befehlsgeber führt diese Operation eine Entsperre-Schreibtransaktion an die spezifizierte Speicherstelle im Adreßbereich durch, um die modifizierten Daten in geeigneter Weise an die spezifizierte Speicherstelle zu schreiben. Der Responder-Knoten verarbeitet den Entsperre- Schreibbefehl durch Entsperren des Adreßbereichs und durch Schreiben der angeforderten Daten. Das Sperre-Identifizierungskennzeichen wird dann gelöscht.
  • Die Meldung, die über den Bus 25 während einer Verriegel- Lesebefehlsübertragung übermittelt wird, umfaßt Daten auf vierundsechzig Datenleitungen. Diese Daten umfassen ein 4-Bit-Befehlsfeld, ein 2-Bit langes Feld, das die Anzahl der Worte spezifiziert, die zum Beispiel vom Speicher 39 zum Prozessorknoten 31 übertragen werden sollen, und ein 30-Bit-Adreßfeld, das die Adreß- Speicherstelle im Speicher 39 spezifiziert, aus der die Daten ausgelesen werden sollen. Andere Leitungen des Systembusses 25, die die Informationen während eines Verriegel-Lesebefehls tragen, umfassen vier Funktionsleitungen, die einen 4-Bit-Funktionscode tragen, der eine Befehlsübertragung bezeichnet, sechs ID- Leitungen, die einen 6-Bit-Code tragen, der den Befehlsgeber-Knoten erkennt, der den Verriegel-Lesebefehl eingeleitet hat, und drei Paritätsleitungen.
  • Wie weiter oben kurz erörtert, umfaßt der Systembus 25 Antwortsignale, die von einem Empfänger benutzt werden, um den erfolgreichen Empfang von Informationen, die auf den Bus durch einen Sender gesetzt wurden, anzuzeigen. In der bevorzugten Ausführungsform umfassen die Antwortsignale drei identische, durch ODER-Funktion verknüpfte Bestätigungs-(CNF)Leitungen. Es sind drei Leitungen vorgesehen, da es für die Integrität der Bustransaktionen sehr wichtig ist, daß ein Befehlsgeber genau weiß, was ein Responder als Antwort auf jeden Befehl getan hat, vor allem im Fall eines Sperre-Befehls oder eines Schreibens in ein I/O- Register. Deshalb sendet ein Empfänger entweder eine Anerkennungs- (ACK)Bestätigung durch Aktivieren aller drei CNF-Leitungen oder eine Nicht- Anerkennungs-(NACK)Bestätigung durch Nichtaktivieren aller drei CNF-Leitungen. Eine Fehlerkorrekturlogik ist in dem Empfänger vorgesehen, um den wahren CNF- Zustand zu bestimmen, wenn alle drei CNF-Leitungen durch den Empfänger nicht mit dem gleichen logischen Pegel empfangen werden.
  • Eine Anerkennungs-Bestätigung zeigt an, daß ein Responder die Informationen von einem Befehlsübertragungszyklus angenommen hat oder daß ein Befehlsgeber Informationen von einem Antwortmeldungszyklus angenommen hat. Ein Lesebefehls-Transferzyklus, der zu einer Anerkennungs-Bestätigungsanzeige führt, zeigt an, daß der Responder eine Lese-Antwortmeldung zu einem späteren Zeitpunkt zurückgeben wird.
  • Ein Nicht-Anerkennungs-Bestätigung, die auf den CNF-Leitungen zurückkommt zeigt an, daß kein Empfänger die Informationen von diesem Buszyklus der Befehlsübertragung angenommen hat. Dies könnte drei Gründen haben: 1.) ein Paritätsfehler ist auf dem Systembus 25 aufgetreten, 2.) der Empfänger war zeitweise nicht in der Lage, den Befehl anzunehmen, zum Beispiel, wenn die Eingangswarteschlange des Empfängers voll ist, oder es gibt 3.) keinen Responder-Knoten entsprechend der spezifizierten Adresse.
  • Die Bestätigungsanzeigen entsprechend eines Buszyklus werden durch die Empfänger-Knoten am Anfang des zweiten Zyklus nach dem Zyklus des Buszyklus auf die CNF-Leitungen gesetzt.
  • Ein Beispiel für eine Verriegel-Lesetransaktion wird in Verbindung mit Fig. 6 beschrieben. Die horizontale Achse oben in Fig. 6 bezeichnet aufeinanderfolgende Buszyklen auf dem Bus 25. Die Beschriftungen, die vertikal entlang der linken Seite von Fig. 6 erscheinen, bezeichnen Gruppen von Leitungen, die in dem Bus 25 enthalten sind, d. h. Funktionsleitungen, Datenleitungen, ID-Leitungen, Bestätigungsleitungen und Entscheidungsleitungen. Die Eintragungen in der Matrix, die durch die horizontale und vertikale Achse der Fig. 6 gebildet werden, beschreiben den Typ von Daten, der auf den spezifizierten Busleitungen während der spezifizierten Buszyklen auftritt.
  • Bei Buszyklus 0 aktiviert ein erster Befehlsgeber-Knoten, zum Beispiel Knoten 31 in Fig. 1, seine CMD REQ-Entscheidungs-Anforderungs-Leitung (eine der Punktzu-Punkt-Leitungen, die mit dem Zuteiler 28 verbunden, und in Figur i gezeigt sind) zum Vermittler 28. Deshalb zeigt Fig. 6 eine "cmdr#1 "-Anforderung, die auf der Entscheidungsleitung des Systembusses 25 im Zyklus 0 vorliegt. Vorausgesetzt, daß kein anderer Knoten höherer Priorität gleichzeitig Zugriff auf den Bus anfordert, erhält der Prozessor 31 Buszugriff in Zyklus 1 und übermittelt eine Meldung in den Systembus 25.
  • Während des Zyklus i zeigen die Informationen, die auf die Funktionsleitungen des Busses 25 gesetzt werden, daß die Informationen auf dem Bus Befehls- (cmd)Informationen sind. Die Daten, die auf die Datenleitungen des Busses 25 gesetzt werden, bestehen aus Befehls- und Adreß-(c/a)Daten, die die gegenwärtige Transaktion als eine Verriegel-Lesetransaktion identifizieren und die Adresse im Speicher 39 spezifizieren, aus dem die Daten zum Prozessor 31 zurückgegeben werden sollen. Die ID-Leitungen enthalten während des Buszyklus 1 den Identifizierungscode des Prozessor-(Befehlsgeber/cmdr)Knotens 31, der momentan auf dem Bus übermittelt.
  • Während des Buszyklus 2 werden in Verbindung mit der anliegenden Verriegel- Lesetransaktion keine Informationen auf den Bus 25 gesetzt.
  • Zu Beginn des Buszyklus 3, der zwei Zyklen (d. h. eine vorbestimmte Zeit) nach der Einleitung der Verriegel-Lesetransaktion auftritt, übermittelt der Speicherknoten 39 eine Anerkennungs(ACK)-Bestätigung auf den Bestätigungsleitungen des Busses 25, wenn der Speicher 39 die Befehlsübertragung, die während des Buszyklus 1 übermittelt wurde, erfolgreich empfangen hat. Der Speicher 39 setzt dann die Befehlsmeldung in die Eingangswarteschlange des Speichers 39.
  • Das Ende des Buszyklus 3 bildet das Ende der ersten Übertragung in der Verriegel-Lesetransaktion. Wegen der hängenden Beschaffenheit der Transaktionen auf Bus 25 ist die Zeit nicht genau definiert, zu der die angeforderten Informationen vom Speicher 39 an den Prozessor 31 zurückgegeben werden. Die Antwortzeit hängt von der Länge der Zeit ab, die vom Speicher 39 benötigt wird, um die Anforderung zu verarbeiten, und von der Zeit, die für den Systembus 25 notwendig ist, um zusätzlichen Verkehr auf dem Bus 25, der durch andere Knoten erzeugt wird, zu handhaben. Die unbestimmte Zeit zwischen den zwei Übertragungen einer Verriegel-Lesetransaktion wird durch die gepunktete Linie in Fig. 6 zwischen den Buszyklen 3 und 4 angezeigt. Obwohl durch Fig. 6 gezeigt wird, daß nachfolgende Informationen über die Buszyklen 4 bis 7 auftreten, muß deshalb verstanden werden, daß dies nur ein spezielles Beispiel für den Zeitablauf ist, der Teil einer Verriegel-Lesetransaktion ist, und daß die zweite Übertragung solch einer Transaktion in jedem nachfolgenden Zyklus des Busses 25 auftreten könnte.
  • Der Speicher 39 verarbeitet den Verriegel-Lesebefehl wiederum durch Entfernen der Verriegel-Lese-Übertragungsmeldung aus seiner Eingangswarteschlange und durch Prüfen der in der Übertragung enthaltenen Adreßinformationen. Die Informationen werden mit Adreßwerten verglichen, die in Sperre- Identifikationskennzeichen gespeichert sind, die noch genauer beschrieben werden. Wenn es eine Übereinstimmung zwischen den gespeicherten Adreßwerten und den Adreßinformationen der Verriegel-Lese-Übertragung gibt, ist dies ein Anzeichen dafür, daß die gewünschte Adreß-Speicherstelle durch einen früheren Verriegel-Lesebefehl gesperrt wurde. Der Speicher 39 erzeugt dann, zusammen mit weiteren Informationen, die für eine Antwortmeldung benötigt werden, auf einer Ausgangswarteschlange des Speicherknotens 39 eine gesperrte Antwortmeldung, die einen "Gesperrt"-Funktionscode umfaßt.
  • Wenn der Vergleich der in den Sperre-Identifikationskennzeichen gespeicherten Adreßwerte mit der Verriegel-Lese-Übertragungs-Adreßinformationen keine Übereinstimmung findet, d. h. wenn die übertragene Adresse keiner gespeicherten Adresse entspricht, bildet der Speicherknoten 39 eine Antwortmeldung, die einen gültigen Lese-Antwortcode, wie z. B. den "gute Lesedaten"- (grd0)Code, die Inhalte der spezifizierten Adreß-Speicherstelle für die Datenleitungen und den Befehlsgeber-Identifizierungscode des Befehlsgeber-Knotens, der den Verriegel-Lesebefehl für die ID-Leitungen eingeleitet hat, umfaßt. Diese Antwortmeldung wird in die Ausgangswarteschlange des Speicherknotens 39 geladen.
  • Wenn der Speicher 39 die Verriegel-Lesen-Transaktion verarbeitet und eine Antwortmeldung in seiner Ausgangswarteschlange auf eine Art und Weise erzeugt hat, die noch genauer beschreiben wird, aktiviert der Speicher 39 seine RES-REQ- Anforderungsleitung (eine weitere in Fig. 1 gezeigte Punkt-zu-Punkt-Leitung) zum Zuteiler 28. Die Entscheidungsleitungen tragen deshalb eine Responder-Anforderungsanzeige (resp) wie sie in Fig. 6 im Buszyklus 4 gezeigt ist. Angenommen daß kein weiterer Knoten zu dieser Zeit eine höhere Priorität besitzt, gewährt der Zuteiler 28 dem Speicher 39 während des Buszyklus 5 Zugriff auf den Bus 25. Der Speicher 39 übermittelt die Antwortmeldung einschließlich des "gute Lesedaten"- (grd0)Signals auf die Funktionsleitungen des Systembusses 25, acht Bytes (d. h. 64 Bits) von Daten von den Speicherstellen, die durch das Adreßfeld der Anfangsübertragung vom Prozessor 31 zum Speicher 39 spezifiziert wurden, über die Datenleitungen des Systembusses 25, und das ID des Prozessors 31 auf die ID- Leitungen des Busses 25, um die zurückkommenden Daten dem Befehlsgeber (d. h. Prozessor 31) zuzuordnen, der anfangs die Verriegel-Leseanforderung ausgegeben hat.
  • Während des Buszyklus 6 tritt kein Verkehr auf dem Systembus 25 auf, der mit dieser Verriegel-Lesetransaktion in Verbindung steht. Schließlich endet die Verriegel-Lesetransaktion im Buszyklus 7, wenn der Prozessor 31 eine Anerkennungs- Bestätigung auf den Bestätigungsleitungen des Busses 25 übermittelt.
  • Eine zweite Verriegel-Lesetransaktion zu der gleichen spezifizierten Speicherstelle im Speicher führt zu Daten, die, wie in den Zyklen 8-15 in Fig. 6 gezeigt, auf dem Bus 25 auftreten. Im Zyklus 8 leitet ein zweiter Befehlsgeber (cmdr #2) eine Befehlsgeber-Anforderung an den Zuteiler 28. Die Buszyklen 9-12 führen wie die Zyklen 1-4 zu Verkehr auf dem Bus 25. Der Speicher 39 fand jedoch während der Verarbeitung des empfangenen Verriegel-Lese-Signals eine Übereinstimmung zwischen den in den Sperre-Identifikationskennzeichen gespeicherten Adreßwerten und der Adresse, die mit dem Verriegel-Lesebefehl übermittelt wurde. Dementsprechend wird eine LOC-Antwort auf den Funktionsleitungen des Busses 25 zum Beispiel im Zyklus 13 angelegt. Die Zyklen 14 und 15 sind gleich den Zyklen 6 und 7.
  • C. Beschreibung des Prozessors 31
  • In Fig. 7 wird ein detaillierteres Blockschaltbild bestimmter Elemente der knotenspezifischen Logik 65 im Prozessor 31 gezeigt. Der Prozessorknoten 31 umfaßt, so wie alle Knoten, eine Busschnittstellenschaltung 64. Der Prozessorknoten 31 umfaßt auch eine Prozessorlogik 202. Die Prozessorlogik 202 umfaßt eine Zentraleinheit-(CPU)Schaltungsanordnung, die benötigt wird, um Software in einer den Fachleuten gut bekannten Art und Weise auszuführen. Die Prozessorlogik 202 erzeugt auch Befehls- und Adreß-Informationen, wie sie vom System 20 benötigt werden, um sowohl die notwendigen Anwendungsfunktionen auszuführen als auch die Übertragungen über den Systembus 25 zu steuern.
  • Der Prozessorknoten 31 umfaßt auch eine Paritätsfehler-Prüfungsschaltung 204, die die Informationen auf den Funktions-, Daten-, ID- und Paritätsleitungen des Systembusses 25 überwacht, die von der Busschnittstellenschaltung 64 empfangen werden, um eine Paritätsprüfung an diesen Signalen in einer nach dem Stand der Technik gut bekannten Art und Weise durchzuführen. Ein ermittelter Paritätsfehler führt zu der Erzeugung einer Paritätsfehleranzeige auf der Signalleitung 206.
  • Die Informationen auf den ID-Leitungen werden durch eine Komparatorschaltung 207 überwacht, die von einer festverdrahteten Verbindung 210 auf der Rückwandplatine, die durch die Position des Prozessors 31 in einem Montiergehäuse bestimmt wird, auch mit dem Identifikationscode des Prozessors 31 versorgt wird. Das Vergleichsresultat vom Komparator 207 wird zusammen mit Informationen über die Paritätsfehler-Signalleitung 206 an einen Anerkennungs-Bestätigungsgenerator 208 geliefert. Wenn kein Paritätsfehler ermittelt wurde und wenn der ID- Code, der über den Bus 25 für eine Antwortmeldung empfangen wurde, mit dem ID-Code des Prozessors 31 übereinstimmt, werden Anerkennungs-Anzeigen über die CNF-Leitungen des Busses 25 durch einen Anerkennungsanzeige-Generator 208 zu Beginn des zweiten Buszyklus nach jedem Zyklus einer an den Prozessor 31 gerichteten Antwortübertragung übermittelt.
  • Die Informationen über die Funktions- und Daten-Leitungen des Busses 25 werden über die Busschnittstelle 64 an einen Antwort-Decoder 212 geliefert. Der Decoder 212 wird durch den Komparator 207 freigegeben, wenn eine Meldung über den Bus 25 an den Prozessor 31 geschickt werden soll. Dies wird durch ein positives Vergleichsresultat vom Komparator 207 bestimmt. Wenn der Decoder 212 durch den Komparator 207 freigegeben wird, holt der Decoder 212 Funktionscodes aus den Funktionsleitungen des Systembusses 25 heraus und liefert für bestimmte Funktionscodes Befehls- und Dateninformationen von den Datenleitungen des Busses 25 an die Prozessorlogik 202, um eine geeignete Aktion auszuführen.
  • Entsprechend der vorliegenden Erfindung umfaßt der Prozessor eine Einrichtung, die auf eine Betriebsmittel-Verweigerungsanzeige zum Aktivieren eines Sperr- Aktivators anspricht, wenn Zugriffsbefehle vom Prozessor eine gemäß eines vorherbestimmten Sperr-Aktivierungskriteriums ungenügende Antwort von einem Betriebsmittelknoten empfangen wird. Wie in diesem Ausführungsbeispiel gezeigt, umfaßt eine solche Einrichtung eine Verweigerungsdetektor-Schaltung 213. Die Verweigerungsdetektor-Schaltung 213 spricht auf Funktionsinformationen an, die durch den Antwort-Decoder 212 von den Funktionsleitungen des Busses gewonnen wurden, um den Sperr-Aktivator 215 zu aktivieren, wenn in einer Antwortmeldung vom Speicher 39 (Fig. 1), die durch den Decoder 212 decodiert wurde, ein Gesperrt-Antwortcode empfangen wurde. Der Sperr-Aktivator 215 ist so mit dem Treiber 255 verbunden, daß, wenn der Sperr-Aktivator 215 aktiviert ist, der Prozessor 31 eine Sperranzeige 240 aktiviert.
  • Entsprechend der vorliegenden Erfindung umfaßt der Prozessor auch eine Einrichtung zum Übermitteln von Zugriffsbefehlen über den Bus zum Speicher. Wie in diesem Ausführungsbeispiel gezeigt, umfaßt die Übermittlungseinrichtung einen Befehlsgenerator 214. Wenn der Prozessor 31 eine Transaktion auf dem Bus 25 einleiten will, werden Befehls-, Adreß- und Dateninformationen zusammen mit dem von der Verbindung 210 gelieferten ID des Prozessors 31 an den Befehlsgenerator 214 geliefert. Der Befehlsgenerator 214 bereitet eine Befehlsmeldung vor und aktiviert die Befehlsgeber-Anforderung-(CMD REQ)Anerkennungsleitung 216 für den Prozessor 31.
  • Eine Leitung 216g, die eine durchgeschaltete Variante der CMD-REQ-Leitung 216 ist, und die von der die Sperr-Prüfungsschaltung 250 abhängig ist, die anschließend detaillierter beschrieben wird, zeigt dem (in Fig. 7 nicht gezeigten) Zuteiler 28 an, daß der Prozessor 31 Zugriff auf den Bus 25 verlangt, um eine Befehlsmeldung zu übermitteln. Unter Verwendung eines Entscheidungssystems gewährt der Zuteiler 28 dem Prozessor 31 Buszugriff eine unbestimmte Zeit nach der ursprünglichen Verriegel-Lese-Übertragung.
  • Wenn der Zugriff gewährt wird, veranlaßt der Befehlsgenerator 214 die Busschnittstelle 64 die Befehlsmeldung von dem Befehlsgenerator 214 an den Systembus 25 zu übermitteln.
  • Der Responder-Knoten, an den der Verriegel-Lesebefehl gerichtet ist, erzeugt eine Anerkennungsbestätigung zwei Zyklen nach der Verriegel-Lese- Befehlsübertragung. Wie in Fig. 7 gezeigt, überwacht der Befehlsgenerator 214 die CNF-Leitungen, um das Vorhandensein einer Anerkennungs-Bestätigung auf den CNF-Busleitungen zwei Buszyklen nach einer Befehlsübertragung zu ermitteln, die durch einen Prozessor 31 über den Systembus 25 übermittelt wurde. Wenn das Vorhandensein einer Anerkennungs-Bestätigung nicht festgestellt wird, führt dies zu einer geeigneten korrigierenden Aktion, die im bevorzugten Ausführungsbeispiel aus der Rückübertragung des vorherigen Befehls besteht. Wenn die Übertragung beendet ist, verarbeitet der Responder-Knoten den Verriegel- Lesebefehl und schickt eine Antwortmeldung auf dem Systembus 25 zurück. Wegen Unsicherheiten aufgrund des Verkehrs auf dem Systembus 25 und der Länge der Warteschlangen erzeugt der Responder-Knoten eine Antwortmeldung eine unbestimmte Zeit nach der Befehlsübertragung.
  • Das System 20 umfaßt eine Sperr-Anzeige 240, die eine durch ODER-Funktion verknüpfte Leitung umfaßt. Die Sperr-Anzeige 240 ist funktionsfähig, wenn sie aktiviert wurde, um das Erzeugen von Verriegel-Lesebefehlen durch die Prozessoren in dem System 20 zu begrenzen. In der bevorzugten Ausführungsform ist die Sperr-Anzeige 240 mit allen Knoten verbunden. Jedoch verlangt die Erfindung nicht, daß die Sperr-Anzeige 240 mit allen Knoten verbunden ist.
  • Entsprechend der vorliegenden Erfindung umfaßt der Prozessor eine Sperr- Prüfungseinrichtung zum Überwachen der Sperr-Anzeige und zum Verhindern des Erzeugens von Zugriffsbefehlen durch den Prozessor entsprechend einem vorherbestimmten Zugriffs-Durchschaltekriterium, wenn sich die Sperr-Anzeige im aktivierten Zustand befindet. Vorzugsweise umfaßt die Sperr-Prüfungseinrichtung eine Einrichtung, um den Prozessor daran zu hindern, entsprechend dem vorbestimmten Zugangs-Durchschaltekriterium Zugriff auf den Bus zu verlangen. Wie in diesem Ausführungsbeispiel gezeigt, umfaßt die Sperr-Prüfungseinrichtung eine Sperrprüfungsschaltung 250. Die Sperr-Prüfungsschaltung 250 empfängt eine Gewährsignal 252, das eine Leitung von der Busschnittstelle 64 ist, die zu der Zeit aktiviert wird, zu der dem Prozessor 31 Zugriff auf den Bus 25 gewährt wird. Die Sperrprüfungsschaltung 250 empfängt auch eine Verriegel-Lesebefehl-Anzeige 254 von der Prozessorlogik 202, einen Sperr-Aktivator 215 von dem Sperr- Detektor 213 und ein Signal von der Sperr-Anzeige 240. Die Sperrprüfungsschaltung 250 überwacht den Zustand der Sperr-Anzeige 240, so daß unter bestimmten Umständen, wenn die Sperr-Anzeige 240 aktiviert wird, die Sperrprüfungsschaltung 250 das Erzeugen des CMD REQ-Pegels auf Leitung 216g zum Zuteiler 28 verhindert, um den Prozessor 31 vom Erzeugen einer Verriegel-Lese-Übertragung abzuhalten.
  • In einer alternativen Ausführungsform kann die Sperr-Prüfungseinrichtung in einer Zustandmaschine, die durch ein programmierbares Logikarray gebildet wird, enthalten sein.
  • D. Beschreibung des Speichers 39
  • Fig. 8 zeigt ein Blockschaltbild des Speichers 39, der als Responder-Knoten dienen kann. Wie aus Fig. 8 zu ersehen ist, umfaßt der Speicher 39 eine Befehlsdecodierung- und Adreß- und Paritäts-Prüfungsschaltung 300. Schaltung 300 ist mit den Busfunktions-, Adreß- und Identifizierungsleitungen verbunden und führt eine Paritätsprüfung nach gut bekannter Art und Weise durch. Schaltung 300 vergleicht auch die Informationen auf den Busadreßleitungen bis zu den Grenzen des von einem Register 302 gelieferten Adreßbereichs, der vom Speicher 39 bedient wird und liefert die Resultate dieses Vergleichs an die Adreßübereinstimmungsleitung 301. Wenn die Adreßinformationen, die über den Bus 25 empfangen werden, im Rahmen des Adreßbereichs liegen, der von dem Speicher 39 bedient wird, und wenn kein Paritätsfehler aufgetreten ist, erzeugt ein Anerkennungsgenerator 304 der mit der Schaltung 300 verbunden ist, eine Anerkennungs-Bestätigung durch Aktivieren aller drei CNF-Leitungen zu Beginn des zweiten Zyklus nach dem Übertragungszyklus einer für den Speicher 39 bestimmten Übertragung.
  • Der Speicher 39 umfaßt eine Eingangswarteschlange 306 zum Speichern von Meldungen (bestehend aus Funktions-, ID- und Daten-Informationen), die von Übertragungen über den Bus 25 über die Busschnittstelleneinheit 64 empfangen werden. Die Eingangswarteschlange 306 gestattet solche Meldungen, die mit hoher Geschwindigkeit über den Bus 25 empfangen wurden, und die so lange gespeichert werden, bis die vergleichsweise langsamere Logik des Speichers 39 es erlaubt, daß auf solche Meldungen reagiert wird. Die Eingangswarteschlange 306 kann eine Meldung vom Bus 25 speichern, wenn die Adreßinformationen, die in dem Datenfeld einer Meldung auf dem Bus 25 auftritt, in den Grenzen des Adreßbereichs des Speichers 30 liegt, wie durch den Pegel auf dem Adreßübereinstimmungssignal 301 festgelegt ist.
  • Das Ausgangssignal der Eingangswarteschlange 306 wird an einen Decoder 308 angelegt, der die Adreß- und Befehlsinformationen aus den Meldungen herausholt die in der Eingangswarteschlange 306 gespeichert sind. Obwohl der Decoder 308 vielfältige Angaben liefert, um die verschiedenen Befehle zu decodieren und Adreßinformationen auf einem Satz paralleler Signalleitungen vorsieht, werden zum Zwecke der Übersichtlichkeit die Adreß- und Steuer-Ausgänge des Decoders 308 in Fig. 8 als gebündelte Leitungen 309 und 311 gezeigt.
  • Entsprechend der Erfindung umfaßt der Speicher eine Einrichtung zum Verarbeiten von Zugriffsbefehlen und vorzugsweise zum Verarbeiten exklusiver Zugriffsbefehle. Wie in diesem Ausführungsbeispiel gezeigt, umfaßt solch eine Verarbeitungseinrichtung eine Sperr-Steuerung 310 und ein Speicher-Array 312. Die Sperr- Steuerung 310 ist in der oben genannten, gleichzeitig anhängigen internationalen Anmeldung WO 88/08569 genauer beschrieben, auf die hiermit ausdrücklich hingewiesen wird. Die Adreß- und Befehlsinformationen werden an die Sperr- Steuerung 310 geliefert, die hilft, Verriegel-Lese- und Entsperre-Schreibbefehle zu verarbeiten. Die Adreß- und Steuerinformationen vom Decoder 308 werden auch an das Speicher-Array 312 geliefert. Das Speicher-Array 312 antwortet auf Lese- und Schreibbefehle, um Daten von den Speicherstellen aus dem Array 312 zu lesen und Daten in Speicherstellen im Array 312 zu schreiben, die durch die Adreßinformationen spezifiziert werden, die vom Decoder 308 empfangen werden. Wie aus dem Stand der Technik gut bekannt, werden die Informationen im Speicher- Array 312 in einer Vielzahl diskreter Speicherstellen gespeichert, die durch Adressen identifiziert werden, die durch Lese- und Schreibbefehle spezifiziert werden können, die an das Array 312 geliefert werden.
  • Das Sperr-Zustandsignal 314 vom Controller 310 und die Speicherdaten von dem Speicher-Array 312 werden an einen Antwortgenerator 316 geliefert, der eine Ausgangs-Antwortmeldung erzeugt. Antwortmeldungen vom Generator 316 werden so lange zum Speichern an eine Ausgangswarteschlange 318 geliefert, bis der Speicher 39 durch den Anerkennungsprozeß, der vorher beschrieben wurde, Zugriff auf den Bus erhält.
  • Entsprechend der vorliegenden Erfindung umfaßt der Speicher eine Einrichtung zum Übertragen einer Betriebsmittel-Verweigerungsmeldung, wenn die Verarbeitungseinrichtung davon abgehalten wird, auf die Zugriffsbefehle zu antworten. Wie in diesem Ausführungsbeispiel gezeigt, umfaßt die Übertragungseinrichtung im Speicher 39 einen Antwortgenerator 316 und eine Ausgangswarteschlange 318. Der Antwortgenerator 316 bereitet eine Antwortmeldung auf der Grundlage der vom Speicher 312 empfangenen Daten, des vom Controller 310 empfangenen Sperr-Zustand-Signalpegels 314 und der vom Decoder 308 empfangenen Befehls- und ID-Informationen vor. Die vom Generator 316 vorbereitete Antwortmeldung ist eine von zwei Arten, abhängig davon, ob es dem Speicher 39 erlaubt ist, die angeforderten Daten zu liefern. Wenn der Befehl, der gerade beantwortet wird, ein Nicht-Verriegel-Lesebefehl ist, oder wenn der Befehl ein Verriegel-Lesebefehl ist und das Sperr-Zustandssignal 314 nicht aktiviert ist, bereitet der Antwortgenerator 316 eine erste Meldungsart vor, einschließlich der angeforderten Inhalte der spezifizierten Stelle im Speicher 312. Wenn jedoch der Befehl ein Verriegel- Lesebefehl ist und die Sperr-Zustandsleitung 316 aktiviert ist, bereitet der Antwortgenerator 316 die zweite Antwortart mit einem "Gesperrt-" Code für die Funktionsleitungen vor, der anzeigt, daß die spezifizierte Adresse des Verriegel-Lesebefehls in einem gesperrten Zustand war und daß die angeforderten Daten deshalb in der Antwortmeldung nicht enthalten sind, die durch den Speicher 39 als Antwort auf den empfangenen Verriegel-Lesebefehl übermittelt wurde.
  • Wenn der Generator 316 die Antwortmeldung erstellt hat, wird sie an die Ausgangswarteschlange 318 geliefert. Die Ausgangswarteschlange 318 warnt die Busschnittstelle 64, daß der Speicher 39 Zugriff auf den Bus 25 verlangt. Die Antwortmeldung wird in der Ausgangswarteschlange 318 für eine unbestimmte Zeit gespeichert, bis solch ein Zugriff erhalten wurde.
  • Wenn dem Speicher 39 Zugriff auf den Bus 25 gewährt wird, wird die in der Ausgangswarteschlange 318 enthaltene Antwortmeldung zur Übertragung auf den Befehlsgeber-Knoten, der ursprünglich den Befehl erzeugt hat, auf den Systembus 25 gelegt. Da es nicht bekannt ist, zu welchem Zeitpunkt der Speicher 39 die Ausführung des durch den Befehlsgeber-Knoten ursprünglich übermittelten Befehls vollendet, und da es weiterhin unsicher ist, zu welchem Zeitpunkt der Speicher 39 Zugriff auf den Bus 25 erhält, um entweder die angeforderten Daten oder die Sperr- Zustandsinformationen zu liefern, werden die Sperr-Zustandsinformationen entsprechend dem Verriegel-Lesebefehl auf der Funktionsleitung des Busses 25 an dem Befehlsgeber-Knoten zu einem unbestimmten Zeitpunkt auftreten, der auf die Einleitung des ursprünglichen Verriegel-Lesebefehls folgt.
  • E. Beschreibung der Sperr-Prüfungsschaltung 250 und des Sperr-Detektors 213
  • Entsprechend der Erfindung umfaßt der Prozessor eine Einrichtung, die auf eine Betriebsmittel-Verweigerungsanzeige anspricht, um einen Sperr-Aktivator zu aktivieren, wenn die Zugriffsbefehle vom Prozessor entsprechend einem vorbestimmten Sperr-Aktivierungs-Kriterium eine ungenügende Antwort durch den Speicher empfangen haben. Entsprechend einem anderen Aspekt der Erfindung umfaßt der Prozessor eine Einrichtung, die auf eine Betriebsmittel-Verweigerungsanzeige anspricht, um einen Sperr-Aktivator zu aktivieren, wenn die Zugriffsbefehle vom Prozessor entsprechend dem vorbestimmten Sperr-Aktivierungs-Kriterium eine ungenügende Antwort durch den Speicher empfangen haben. Wie in diesem Ausführungsbeispiel gezeigt, umfaßt solch eine Aktivierungseinrichtung eine Verweigerungs-Detektorschaltung 213, die auf eine gesperrte Antwort anspricht, die in der bevorzugten Ausführungsform eine Betriebsmittel-Verweigerungsanzeige bildet. Fig. 9 zeigt ein Blockschaltbild der Verweigerungs-Detektorschaltung 213 und der Sperr-Prüfungsschaltung 250.
  • Der Decoder 212 versorgt die Steuerleitungen 402 bzw. 404, die das Vorliegen einer gesperrten Antwort oder einer gültigen Lesedaten-Antwort anzeigt. Das gesperrte Antwortsignal 402 wird an den Setz-Anschluß der Verweigerungsschaltung 213 geliefert, der in der bevorzugten Ausführungsform ein Setz-Rücksetz- Speicherelement ist, wobei der Rücksetz-Anschluß mit dem gültigen Lesedaten- Antwortsignal 404 verbunden ist. Der Ausgang des Speicherelements 213 bildet den Sperr-Aktivator 215, der an den Treiber 255 geliefert wird, so daß die Sperr- Anzeige 240 durch die Verweigerungs-Detektorschaltung 213 immer dann aktiviert wird, wenn eine gesperrte Antwort vom Prozessor 31 über den Bus 25 empfangen wird.
  • Der Empfang einer einzelnen gesperrten Antwort durch den Prozessor 31 bildet ein vorbestimmtes Sperr-Aktivierungs-Kriterium. Das heißt, eine einzelne gesperrte Antwort wird durch den Prozessor 31 als eine Anzeige dafür gewertet, daß der Prozessor 31 keinen adäquaten Zugriff auf den Speicher 39 erreicht oder aufrechterhält. Man muß berücksichtigen, daß die Erfindung nicht auf das spezielle Sperr-Aktivierungs-Kriterium begrenzt ist, das in der bevorzugten Ausführungsform verwendet wird, sondern daß andere Kriterien angewendet werden können. Zum Beispiel könnte ein Zähler anstelle des Speicherelements 213 verwendet werden, so daß die Sperr-Anzeige 240 nur dann gesetzt würde, wenn der Prozessor 31 mehrere gesperrte Antworten erhält, zum Beispiel drei blockierte Antworten. Alternativ könnte ein Zeitgeber als Verweigerungs-Detektor-Schaltung vorgesehen werden, so daß die Sperr-Anzeige 240 dann gesetzt würde, wenn der Prozessor 31 länger als eine vorbestimmte Zeit gesperrte Antworten erhält oder wenn der Prozessor 31 länger als eine vorbestimmte Zeit keine gültige Datenantwort erhält.
  • Der Sperr-Aktivator 215 ist auch mit der Sperr-Prüfungsschaltung 250 verbunden. Die Sperr-Prüfungsschaltung 250 umfaßt ein UND-Verknüpfungsglied 408 mit drei Eingängen. Der erste Eingang zu dem UND-Verknüpfungsglied 408 ist die Sperr- Anzeige 240. Der zweite Eingang zu dem UND-Verknüpfungsglied 408 ist der invertierte Pegel des Sperr-Aktivators 215. Der dritte Eingang zu dem UND- Verknüpfungsglied 408 ist die Verriegel-Lese-Leitung 254 von der Prozessorlogik 202, deren Aktivierung anzeigt, daß gegenwärtig durch die Prozessorlogik 202 eine Verriegel-Lesetransaktion angefordert wird.
  • Der Ausgang des UND-Verknüpfungsglieds 408 bildet eine "Unterdrückungs-" Anzeige, die in invertierter Form zu einem UND-Verknüpfungsglied 410 mit zwei Eingängen geliefert wird. Der andere Eingang des UND-Verknüpfungsglieds 410 ist die CMD-REQ-(Befehlsgeber-Anforderungs-)Leitung 216 vom Befehlsgenerator 214. Das Ausgangssignal des UND-Verknüpfungsglieds 410 wird an den Setz- Anschluß des Speicherelements 414 angelegt. Der Rücksetz-Anschluß des Speicherelements 414 wird durch das Gewährsignal 252 versorgt, das von der Busschnittstelle 64 (Fig. 7) geliefert wird, die, wenn sie aktiviert ist, anzeigt, daß der Prozessor 31 Zugriff auf den Bus 25 hat.
  • Der Verweigerungs-Detektor 213 und die Sperrprüfungs-Schaltung 250, zusammen mit der Sperr-Anzeige 240 sehen ein Verfahren und eine Vorrichtung zum Sichern eines adäquaten Zugriffes auf den Speicher 39 durch die Prozessorknoten einschließlich Knoten 31 vor. Wenn eine gesperrte Antwort von dem Speicher 39 durch den Prozessor 31 als Antwort auf einen Verriegel-Lesebefehl empfangen wird, ist dies ein Zeichen dafür, daß dem Prozessor 31 der Zugriff auf einen Bereich des Speichers 39 verweigert worden ist. Durch das Setzen der Sperr-Anzeige 240 kann der Prozessor 31 dafür sorgen, daß andere Verarbeitungs-Knoten ihre Erzeugung von neuen Verriegel-Lesebefehlen beschränken. Speziell beim Empfang einer gesperrten Antwort durch den Prozessor 31 und die anschließende Aktivierung der Sperr-Anzeige 240 wird es keinem Prozessorknoten, der mit der Sperr-Anzeige 240 verbunden ist, und nicht schon den Buszugriff für einen Verriegel-Lesebefehl vor der Aktivierung der Sperr-Anzeige 240 angefordert hat, gestattet werden, einen neuen Verriegel-Lesebefehl zu erzeugen. Dies wird durch die Unterdrückung der CMD-REQ-Leitung durch das UND-Verknüpfungsglied 408 erreicht. Diese Unterdrückung findet statt, wenn die folgenden Umstände, die ein vorbestimmtes Zugriff-Durchschaltekriterium der bevorzugten Ausführungsform bilden, vorliegen: 1.) eine Verriegel-Leseoperation wird durch den Prozessor angefordert (d. h. Leitung 254 wird aktiviert), 2.) der Sperr-Aktivator 215 für diesen Knoten ist zur Zeit nicht aktiviert und 3.) die Sperr-Anzeige 240 ist aktiviert.
  • Andere Zugriffs-Durchschalte-Kriterien könnten sicherlich auch vorgesehen werden. Zum Beispiel könnte die Unterdrückung der CMD REQ-Leitung vom Scheitern des Prozessors 31 abhängen, eine gültige Lesedaten-Antwort für länger als eine vorbestimmte Zeit zu erhalten.
  • Es ist nicht notwendig, daß die Verweigerungs-Detektor-Schaltung 213 und die Sperr-Schaltung 250 beide im Sperr-Befehlsgeber-Knoten vorhanden sind. Das heißt, es kann wünschenswert sein, einen Befehlsgeber-Knoten vorzusehen, der die Sperr-Anzeige 240 setzt, aber es nicht tut, um das Erzeugen von Zugriffsbefehlen oder Zugriffs-Verweigerungs-Befehlen zu verhindern.
  • Ein Beispiel für den Betrieb der bevorzugten Ausführungsform der vorliegenden Erfindung in einem Mehrfachknoten-System ist in Fig. 10 gezeigt. Die Fig. 10 zeigt die Merkmale von vier Prozessorknoten in einem System ähnlich dem System 20, insbesondere von Knoten 15, 7, 6 und 2, da die Knoten die Lese-Modifizier- Schreib-Operationen implementieren, die eine Sperr-Folge bestehend aus einer erfolgreichen Verriegel-Lesetransaktion und einer Entsperr-Schreibtransaktion benutzen. Die ganz linke Spalte zeigt eine willkürliche Transaktionszahl auf dem Bus 25 an. Die nächsten drei Spalten links von Fig. 10 zeigen jeweils den Knoten, der der Befehlsgeber während dieser Transaktion ist, wobei die Art der Befehlsinformationen auf dem Bus durch diesen Knoten gesetzt werden, und die Antwortmeldung, die durch den Speicher 39 in Reaktion auf den Knotenbefehl zurückgegeben wird. Die nächste Spalte der Fig. 10 zeigt jene Knoten, die die Sperr-Anzeige 240 zu einem gegebenen Zeitpunkt aktivieren. Die Spalten, die mit 15, 7, 6 und 2 numeriert sind, zeigen den Zustand der entsprechenden Knoten 15, 7, 6 und 2 am Ende jeder Zeit. Die Numerierung der Knoten in Fig. 10 bezieht sich auf ihre physikalische Position in einem Gehäuse und nicht auf die Bezugszeichen in den Zeichnungen.
  • Vor dem Beginn der Transaktion Nr. 1, die in Fig. 10 gezeigt ist, d. h. die oberste Reihe der Fig. 10, sind die Knoten 15, 7 und 6 alle im Verriegel-Lesetransaktion- Erzeuge-Zustand (IRG). Das heißt, jeder dieser Knoten versucht, Zugriff auf die gleiche Stelle im Speicher 39 zu erhalten. Knoten 2 befindet sich im Ruhezustand (IDLE).
  • Bei der Transaktion Nr. 1 erhält der Knoten 15 Zugriff auf den Bus 25 und legt eine Verriegel-Leseanforderung (IR) auf den Bus. Da der Knoten 15 der erste ist, der Zugriff auf die spezifizierte Speicherstelle im Speicher 39 erhält, ist diese Speicherstelle ungesperrt und der Speicher 39 schickt eine gültige Lese-Daten(GRD)- Antwort auf die Funktionsleitungen des Busses 25. Keine Knoten aktivieren die Sperr-Anzeige 240 zu diesem Zeitpunkt. Da der Knoten 15 eine gültige Lesedaten- Antwort erhalten hat, geht es in den Entsperre-Schreibe-Erzeuge-Zustand (UWG) über. Die Knoten 7 und 6 bleiben in dem Verriegel-Lesetransaktions-Erzeuge-Zustand.
  • In der Transaktion Nr. 2 der Fig. 10 erhält der Knoten 7 Zugriff auf den Bus und leitet eine Verriegel-Lesetransaktion auf dieselbe Speicherstelle ein. Da der Knoten 15 vorher auf diese Stelle zugegriffen hat und bewirkt hat, daß der Speicher 39 die Stelle sperrt, gibt der Speicher 39 eine gesperrte (LOC)Antwortmeldung auf die Funktionsleitung des Busses 25 zurück. Da der Knoten 7 nun eine gesperrte Antwort empfangen hat, aktiviert der Knoten 7 die Sperr-Anzeige 240, wie in der dritten Reihe der Fig. 10 gezeigt ist. Die Knoten 7 und 6 bleiben in dem Verriegel- Lesetransaktion-Erzeuge-Zustand. Der Knoten 2 bleibt in dem Ruhezustand.
  • Bei der Transaktion Nr. 3 erhält der Knoten 6 Zugriff auf den Bus und leitet eine Verriegel-Lesetransaktion zur gleichen Speicherstelle im Speicher 39 ein. Da diese Speicherstelle noch durch die erste Verriegel-Leseoperation des Knotens 15 besetzt ist, empfängt der Knoten 6 eine gesperrte Antwort auf den Funktionsleitungen des Busses 25. Der Knoten 6 aktiviert auch die Sperr-Anzeige 240. Zu dieser Zeit aktivieren beide Knoten 7 und 6 die Sperr-Anzeige 240. Der Knoten 15 bleibt in dem entsperrten Schreibe-Erzeuge-Zustand, da er noch nicht in der Lage war, Zugriff auf den Bus 25 zu erhalten. Ebenso bleiben die Knoten 7 und 6 in dem Verriegel-Lesetransaktion-Erzeuge-Zustand, da sie nicht in der Lage waren, eine Verriegel-Lesetransaktion erfolgreich zu beenden.
  • Bei der Transaktion Nr. 4 erhält der Knoten 15 Zugriff auf den Bus und führt eine Entsperre-Schreibtransaktion (UW) aus, und beendet dadurch diese Sperr-Folge.
  • Wie in Fig. 10 gezeigt, wird keine Antwortmeldung verlangt. Da die Knoten 7 und 6 beide erfolglose Verriegel-Leseanforderungen ausstehen haben, fahren die Knoten 7 und 6 damit fort, die Sperr-Anzeige 240 zu aktivieren. Der Knoten 15 kehrt in den Ruhezustand zurück und die Knoten 7 und 6 bleiben in dem Verriegel- Lese-Erzeuge-Zustand. Bei der Transaktion Nr. 4 wird angenommen, daß der Knoten 2 beschlossen hat, eine Verriegel-Lesetransaktion einzuleiten. Da jedoch eine solche Operation nicht vor der Aktivierung der Sperr-Anzeige 240 durch Knoten 7 eingeleitet wurde, geht Knoten 2 nicht in den Transaktions-Erzeuge-Zustand sondern in den Verriegel-Lese-Wartezustand (IRW) über.
  • Bei der Transaktion Nr. 5 erhält Knoten 7 Zugriff auf den Bus und leitet eine Verriegel-Lesetransaktion ein. Da die spezifizierte Stelle im Speicher durch die vorherige entsperrte Schreibtransaktion des Knotens 15 entsperrt worden ist, ist Knoten 7 in der Lage, Zugriff auf die Informationen zu erhalten, die in der spezifizierten Speicherstelle enthalten sind und der Speicher 39 liefert eine gültige Lesedaten- Antwortmeldung an die Funkionsleitungen des Busses 25. Da der Knoten 7 erfolgreich seine Daten erhalten hat, aktiviert er die Sperr-Anzeige 240 nicht mehr und geht in den Entsperre-Schreibe-Zustand über. Die erfolgreiche Verriegel- Lesetransaktion des Knotens 7 veranlaßt den Speicher 39, das Sperr-Bit auf die spezifizierte Speicherstelle und den Speicher zu setzen. Der Knoten 6 fährt damit fort, die Sperr-Anzeige 240 zu aktivieren. Der Knoten 15 bleibt in dem Ruhezustand. Der Knoten 6 bleibt in dem Verriegel-Lese-Erzeuge-Zustand und Knoten 2 bleibt in dem Verriegel-Lese-Warte-Zustand.
  • Bei der Transaktion Nr. 6 erhält der Knoten 6 Zugriff auf den Bus 25 und leitet eine Verriegel-Lesetransaktion ein. Die spezifizierte Speicherstelle im Speicher jedoch ist wegen der unmittelbar vorhergehenden Verriegel-Lesetransaktion des Knotens 7 gesperrt. Daher schickt der Speicher 39 eine gesperrte Antwort auf den Funktionsleitungen des Busses an den Knoten 6 zurück. Dementsprechend fährt der Knoten 6 damit fort, die Sperr-Anzeige 240 zu aktivieren. Zu diesem Zeitpunkt hat der Knoten 15 beschlossen zu versuchen, eine weitere Verriegel-Lesetransaktion einzuleiten. Da jedoch die Einleitung dieser Transaktion nicht vor der Aktivierung die Sperr-Anzeige 240 stattfand, wird der Knoten 15 in den Verriegel-Lese-Warte- Zustand versetzt. Der Knoten 7, der die "Lese-" und "Modifizier-"Schritte der Lese- Modifizier-Schreib-Operation beendet hat, befindet sich nun in dem Entsperre- Schreibe-Erzeuge-Zustand. Der Knoten 6 bleibt in dem Verriegel-Lese-Erzeuge-Zustand und Knoten 2 bleibt in dem Verriegel-Lese-Warte-Zustand.
  • Bei der Transaktion Nr. 7 erhält der Knoten 7 Zugriff auf den Bus 25 und führt eine Entsperre-Schreibtransaktion aus und beendet dadurch diese Folge. Keine Antwortmeldung wird zurückgegeben. Da der Knoten 6 die Verriegel-Lesetransaktion immer noch nicht erfolgreich beendet hat, fährt Knoten 6 damit fort, die Sperr- Anzeige 240 zu aktivieren. Der Knoten 15 bleibt in dem Verriegel-Lese-Warte- Zustand und der Knoten 7, der erfolgreich alle Phasen der Lese-Modifizier- Schreib-Operation beendet hat, geht in den Ruhezustand über. Der Knoten 6 bleibt in dem Verriegel-Lese-Erzeuge-Zustand und Knoten 2 bleibt in dem Verriegel- Lese-Warte-Zustand. Das Sperr-Bit der spezifizierten Speicherstelle im Speicher 39 wird zurückgesetzt.
  • Bei der Transaktion Nr. 8 der Fig. 10 erhält der Knoten 6 Zugriff auf den Bus 25 und leitet eine Verriegel-Lesetransaktion ein. Da die spezifizierte Stelle im Speicher wegen der Entsperre-Schreibtransaktion des Knotens 7 in der vorangegangenen Transaktion nun entsperrt ist, erhält der Knoten 6 erfolgreich Zugriff auf die spezifizierte Speicherstelle und der Speicher 39 schickt eine gültige Lesedaten- Antwortmeldung zurück. Da alle Knoten, die Verriegel-Lesetransaktionen versucht haben, diese Transaktionen nun erfolgreich beendet haben, aktivieren keine Knoten die Sperr-Anzeige 240. Die Knoten 15 und 2 können deshalb von dem Verriegel-Lese-Warte-Zustand in den Verriegel-Lese-Erzeuge-Zustand übergehen. Der Knoten 6 tritt dann den Verriegel-Lese-Erzeuge-Zustand ein.
  • Bei der Transaktion Nr. 9 in Fig. 10 erhält der Knoten 6 Zugriff zum Bus 25 und führt eine Verriegel-Schreibtransaktion aus und kehrt in den Ruhezustand zurück. Keine Antwortmeldung wird zurückgeschickt. Da kein Knoten eine gesperrte Antwort erhalten hat, aktiviert zur Zeit kein Knoten die Sperr-Anzeige 240. Die Knoten 15, 7 und 2 bleiben alle in demselben Zustand wie in der vorangegangenen Transaktion.
  • Obwohl die vorliegende Erfindung in Bezug auf die Verriegel-Lese-/Entsperre- Schreibtransaktionen detailliert beschrieben worden ist, in denen ein Speicherknoten eine Betriebsmittel-Verweigerungs-Anzeige aufgrund der Sperr-Operationen zurückschickt, ist die Erfindung nicht auf diese Transaktionen beschränkt. Vielmehr kann die Erfindung dazu verwendet werden, adäquaten Zugriff auf andere Arten von Betriebsmitteln sicherzustellen. Zum Beispiel kann die Erfindung dazu verwendet werden, adäquaten Zugriff auf die Eingangswarteschlange eines Speicherknotens sicherzustellen. Da eine "Nicht-Anerkennungs-Anzeige an einen Prozessorknoten zurückgeschickt wird, dessen Zugriffsbefehl auf den Speicher wegen der vollen Speicher-Eingangswarteschlange zurückgewiesen wurde, bildet solch eine "Nicht-Anerkennungs-"Meldung eine Betriebsmittel-Verweigerungsanzeige. Die Sperr-Anzeige 240 kann deshalb in Kombination mit einer Sperr- Prüfungseinrichtung und einer Einrichtung zum Übermitteln und Empfangen von "Nicht-Anerkennungs-"Anzeigen benutzt werden, so daß die Prozessorknoten unter geeigneten Umständen an der Erzeugung weiterer Zugriffsbefehle gehindert werden können, die eine Verarbeitung durch eine Eingangswarteschlange im Speicher erfordern würde. Deshalb können die Anfragen an den Speicher so lange reduziert werden, bis der Speicherknoten in der Lage ist, den Rückstand in seiner Eingangswarteschlange zu reduzieren.
  • Auf gleiche Art und Weise wie oben bezüglich der Verriegel-Lese-/Entsperre- Schreiboperationen detailliert beschrieben, kann die vorliegende Erfindung deshalb allen Knoten adäquaten Zugriff auf das Speicherknoten-Eingangswarteschlangen-Betriebsmittel gewährleisten. Genauso kann im Adapter 41 (Fig. 1) ein adäquater Zugriff auf eine Eingangswarteschlange sichergestellt werden, und zwar unter Verwendung der die Prinzipien der vorliegenden Erfindung. Auch kann die Erfindung dazu verwendet werden, adäquaten Zugriff auf Steuer-/Zustands- Register in Knoten, wie z. B. I/O-Steuerungen und Prozessoren sicherzustellen.

Claims (14)

1. Mehrfachknoten-Datenverarbeitungssystem zur Sicherung von adäquatem Zugriff auf einen Betriebsmittel-Knoten (39) durch andere Knoten (31), die Zugriffsbefehle erzeugen, um Zugriff auf die Betriebsmittel- Knoten zu erreichen, wobei das System folgendes umfaßt:
einen Hängebus (25);
einen Betriebsmittel-Knoten (39), der mit dem Bus verbunden ist und als ein Beantworter-Knoten arbeitet, wobei der Betriebsmittel- Knoten folgendes umfaßt:
eine Verarbeitungs-Einrichtung (310, 312) zur Verarbeitung der Zugriffsbefehle, und eine Kennzeichnungs-Übertragungs-Einrichtung (316, 318) zur Übertragung einer Betriebsmittel-Ablehnungsmeldung, wenn die Verarbeitungseinrichtung davon abgehalten wird, auf die Zugriffsbefehle zu antworten;
eine Vielzahl von zweiten Knoten (31), wobei jeder mit dem Bus verbunden ist und als ein Befehls-Knoten arbeitet und jeder eine Befehls-Übertragungs-Einrichtung (214) zur Übertragung der Zugriffsbefehle über den Bus an den Betriebsmittel-Knoten umfaßt;
eine Sperranzeige-Leitung (240), die mit mindestens einem ersten der zweiten Knoten verbunden ist und, auf die Betriebsmittel-Ablehnungsmeldung hin, von einem nicht aktivierten in einen aktivierten Zustand nach Erhalt von mindestens einer Betriebsmittel-Ablehnungsmeldung entsprechend einem vorbestimmten Sperraktivierungs-Kriterium übergeht;
und das System dadurch gekennzeichnet ist, daß es weiterhin folgendes umfaßt:
eine Sperr-Kontrolleinrichtung (250), die auf die Sperranzeige-Leitung (240) anspricht, Ur(L die Erzeugung der Zugriffsbefehle von mindestens einem zweiten der zweiten Knoten (31) entsprechend einem vorbestimmten Zugriffs-Steuer-Kriterium zu sperren, wenn der zweite der zweiten Knoten (31) versucht, die Erzeugung von Zugriffsbefehlen zu beginnen, wenn die Sperranzeige-Leitung (240) in dem aktivierten Zustand ist.
2. Mehrfachknoten-Datenverarbeitungssystem nach Anspruch 1, das weiterhin folgendes umfaßt:
eine Aktivierungs-Einrichtung (213) in einem der zweiten Knoten, die auf die Betriebsmittel-Ablehnungsmeldung anspricht, um einen Sperr- Aktivator (215) entsprechend einem vorbestimmten Sperraktivierungs- Kriterium zu aktivieren, wenn Zugriffsbefehle von dem zweiten Knoten keine adäquate Antwort von dem Betriebsmittel-Knoten empfangen haben;
die Sperranzeige, die auf die Aktivierung des Sperr-Aktivators hin, von einem nicht aktivierten in einen aktivierten Zustand übergeht, wenn der Sperr-Aktivator aktiviert ist.
3. System nach Anspruch 1, wobei die Sperranzeige (240) eine Signalleitung umfaßt.
4. System nach Anspruch 3, wobei die SPerranzeige-Signalleitung (240) mit jedem der zweiten Knoten über eine ODER-Funktions-Verbindung verbunden ist.
5. System nach Anspruch 2, wobei das vorbestimmte Sperraktivierungs- Kriterium der Empfang einer einzigen Betriebsmittel-Ablehnungsmeldung ist.
6. System nach Anspruch 2, wobei das vorbestimmte Sperr-Kriterium der Empfang einer Vielzahl von Betriebsmittel-Ablehnungsmeldungen ist.
7. System nach Anspruch 2, wobei das vorbestimmte Sperr-Kriterium der Empfang von Betriebsmittel-Ablehnungsmeldungen für länger als eine vorbestimmte Zeitdauer ist.
8. System nach Anspruch 2, wobei das vorbestimmte Sperr-Kriterium ein Fehlschlag beim Erreichen des Zugriffs auf das Betriebsmittel (39) von einem der zweiten Knoten (31) für länger als eine vorbestimmte Zeitdauer ist.
9 System nach Anspruch 1, wobei die Verarbeitungseinrichtung (310, 312) zum Verarbeiten von Zugriffsbefehlen eine Einrichtung zur Verarbeitung von ausschließlichen Zugriffsbefehlen umfaßt, und die Kennzeichnungs-Übertragungseinrichtung (316, 318) für die Übertragung von Zugriffsbefehlen eine Einrichtung zur Übertragung von ausschließlichen Zugriffsbefehlen umfaßt.
10. System nach Anspruch 9, wobei die ausschließlichen Zugriffsbefehle Sperr-Lese-Befehle umfassen und die Betriebsmittel-Ablehnungsmeldung eine gesperrte Antwort umfaßt.
11. System nach Anspruch 9, wobei die Sperr-Kontrolleinrichtung (250) eine Einrichtung umfaßt, um einen der zweiten Knoten davon abzuhalten, einen Zugriff zu dem Bus entsprechend dem vorbestimmten Zugriffs- Steuer-Kriterium anzufordern.
12. System nach Anspruch 11, wobei die Abhalte-Einrichtung auf die Sperranzeige (240) anspricht, ein Sperr-Aktivator auf den Empfang einer Betriebsmittel-Ablehnungsmeldung anspricht und ein Signal für die Anzeige eines Sperr-Lese-Befehls erzeugt werden muß.
13. Verfahren zur Sicherung eines adäquaten Zugriffs von einer Vielzahl von Befehlsknoten (31) auf einen Beantworter-Knoten (39) in einem Mehrfachknoten-Datenverarbeitungssystem, wobei die Befehlsknoten je eine Einrichtung umfassen, um Zugriffsbefehle auf die Beantworter- Knoten zu erzeugen und das Verfahren folgende Verfahrensschritte umfaßt:
Empfangen eines ersten Zugriffsbefehls an dem Beantworter-Knoten (39) von einem ersten der Befehlsknoten (31);
Empfangen eines zweiten Zugriffsbefehls an dem Beantworter-Knoten (39) von einem zweiten der Befehlsknoten (31);
Übertragung einer Betriebsmittel-Ablehnungsmeldung von dem Beantworter-Knoten zu dem zweiten Befehlsknoten entsprechend dem zweiten empfangenen Zugriffsbefehls;
Betreiben einer Sperranzeige (240) durch den zweiten Befehlsknoten von einem nicht aktivierten Zustand, der anzeigt, daß alle Befehlsknoten den Zugriff auf den Beantworter-Knoten aufrechterhalten, entsprechend dem vorbestimmten Sperraktivierungs-Kriterium, zu einem aktivierten Zustand nach Empfang der Betriebsmittel-Ablehnungsmeldung, entsprechend einem vorbestimmten Sperraktivierungs-Kriterium;
wobei das Verfahren dadurch gekennzeichnet ist, daß es weiterhin folgende Verfahrensschritte umfaßt:
Überwachung der Sperranzeige durch mindestens einen dritten der Befehlsknoten;
Sperren der Erzeugung der Zugriffsbefehle durch den dritten Befehlsknoten entsprechend einem Zugriffs-Steuer-Kriterium, wenn der dritte Befehlsknoten versucht, die Erzeugung von Zugriffsbefehlen zu beginnen, wenn die Sperranzeige (240) in dem aktivierten Zustand ist; und
Zurücksetzen der Sperranzeige, nachdem der zweite Befehlsknoten Zugriff auf den Beantworter-Knoten erhalten hat.
14. Verfahren nach Anspruch 13, bei dem die Zugriffsbefehle ausschließliche Zugriffsbefehle sind, die den Zugriff auf den Beantworter- Knoten durch andere Befehlsknoten ausschließen, die nachfolgende ausschließliche Zugriffsbefehle erzeugen.
DE3887886T 1987-05-01 1988-04-27 Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem. Expired - Fee Related DE3887886T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/044,952 US4937733A (en) 1987-05-01 1987-05-01 Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
PCT/US1988/001298 WO1988008570A1 (en) 1987-05-01 1988-04-27 Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system

Publications (2)

Publication Number Publication Date
DE3887886D1 DE3887886D1 (de) 1994-03-24
DE3887886T2 true DE3887886T2 (de) 1994-09-29

Family

ID=21935208

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3887886T Expired - Fee Related DE3887886T2 (de) 1987-05-01 1988-04-27 Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem.

Country Status (8)

Country Link
US (1) US4937733A (de)
EP (1) EP0357685B1 (de)
JP (1) JPH0625985B2 (de)
KR (1) KR930000634B1 (de)
AU (1) AU1721388A (de)
CA (1) CA1309504C (de)
DE (1) DE3887886T2 (de)
WO (1) WO1988008570A1 (de)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129089A (en) * 1987-12-18 1992-07-07 Digital Equipment Corporation Distributed interlock apparatus and distributed interlock management method
US5003464A (en) * 1988-05-23 1991-03-26 Bell Communications Research, Inc. Methods and apparatus for efficient resource allocation
US5175861A (en) * 1988-10-14 1992-12-29 Nec Corporation Lock processing system
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
JPH0394321A (ja) * 1989-06-21 1991-04-19 Hitachi Ltd アクセス制御方法
US5377332A (en) * 1989-10-02 1994-12-27 Data General Corporation Bus arbitration algorithm and apparatus
JPH0664567B2 (ja) * 1989-12-25 1994-08-22 株式会社日立製作所 多重プロセッサシステム
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5239629A (en) * 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
DE4009685C2 (de) * 1990-03-26 1994-10-20 Siemens Nixdorf Inf Syst Verfahren für einen Initialisierungsvorgang in einem Multiprozessorsystem
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
JPH0451335A (ja) * 1990-06-20 1992-02-19 Oki Electric Ind Co Ltd データベース処理装置
AU633724B2 (en) * 1990-06-29 1993-02-04 Digital Equipment Corporation Interlock queueing
US5191653A (en) * 1990-12-28 1993-03-02 Apple Computer, Inc. Io adapter for system and io buses having different protocols and speeds
JPH0827755B2 (ja) * 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5319785A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Polling of I/O device status comparison performed in the polled I/O device
US5454082A (en) * 1991-09-18 1995-09-26 Ncr Corporation System for preventing an unselected controller from transferring data via a first bus while concurrently permitting it to transfer data via a second bus
JPH05257851A (ja) * 1991-12-30 1993-10-08 Apple Computer Inc データの転送の順序を制御させる装置
US5887196A (en) * 1991-12-30 1999-03-23 Apple Computer, Inc. System for receiving a control signal from a device for selecting its associated clock signal for controlling the transferring of information via a buffer
US5848297A (en) * 1991-12-30 1998-12-08 Apple Computer, Inc. Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect
US5410677A (en) * 1991-12-30 1995-04-25 Apple Computer, Inc. Apparatus for translating data formats starting at an arbitrary byte position
US5640599A (en) * 1991-12-30 1997-06-17 Apple Computer, Inc. Interconnect system initiating data transfer over launch bus at source's clock speed and transfering data over data path at receiver's clock speed
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
US5301283A (en) * 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
US5428796A (en) * 1992-08-26 1995-06-27 International Business Machines Corporation System and method for regulating access to direct access storage devices in data processing systems
US5469575A (en) * 1992-10-16 1995-11-21 International Business Machines Corporation Determining a winner of a race in a data processing system
DE69330646D1 (de) * 1992-11-25 2001-09-27 Samsung Electronics Co Ltd Datenfliessbandordnungssystem
US5666515A (en) * 1993-02-18 1997-09-09 Unisys Corporation Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
US5613139A (en) * 1994-05-11 1997-03-18 International Business Machines Corporation Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message
US5630140A (en) * 1995-01-23 1997-05-13 Tandem Computers Incorporated Ordered and reliable signal delivery in a distributed multiprocessor
US5577261A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Ordered and reliable maintenance of inter-process relationships in a distributed multiprocessor
US5761670A (en) * 1995-12-08 1998-06-02 Sun Microsystems, Inc. System and method for space efficient object locking using global and local locks
US5732226A (en) * 1996-04-08 1998-03-24 Vlsi Technology, Inc. Apparatus for granting either a CPU data bus or a memory data bus or a memory data bus access to a PCI bus
US6560682B1 (en) * 1997-10-03 2003-05-06 Intel Corporation System and method for terminating lock-step sequences in a multiprocessor system
US6078981A (en) * 1997-12-29 2000-06-20 Intel Corporation Transaction stall technique to prevent livelock in multiple-processor systems
US6115770A (en) * 1998-03-25 2000-09-05 Lsi Logic Corporation System and method for coordinating competing register accesses by multiple buses
US6151655A (en) * 1998-04-30 2000-11-21 International Business Machines Corporation Computer system deadlock request resolution using timed pulses
US6073182A (en) * 1998-04-30 2000-06-06 International Business Machines Corporation Method of resolving deadlocks between competing requests in a multiprocessor using global hang pulse logic
US6490662B1 (en) * 2000-04-29 2002-12-03 Hewlett-Packard Company System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module
US6587963B1 (en) * 2000-05-12 2003-07-01 International Business Machines Corporation Method for performing hierarchical hang detection in a computer system
US8122297B2 (en) * 2007-10-18 2012-02-21 International Business Machines Corporation Method and apparatus for parallel and serial data transfer
EP2449849A4 (de) * 2009-06-29 2013-01-16 Nokia Corp Betriebsmittelzuteilung
US9053227B2 (en) * 2012-03-09 2015-06-09 Microsoft Technology Licensing, Llc Concurrent assertion
US10394636B2 (en) 2017-08-02 2019-08-27 International Business Machines Corporation Techniques for managing a hang condition in a data processing system with shared memory

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3398405A (en) * 1965-06-07 1968-08-20 Burroughs Corp Digital computer with memory lock operation
FR1587102A (de) * 1967-10-03 1970-03-13
US3528061A (en) * 1968-07-05 1970-09-08 Ibm Interlock arrangement
US3701109A (en) * 1970-11-09 1972-10-24 Bell Telephone Labor Inc Priority access system
US3761883A (en) * 1972-01-20 1973-09-25 Ibm Storage protect key array for a multiprocessing system
US3997875A (en) * 1973-01-08 1976-12-14 U.S. Philips Corporation Computer configuration with claim cycles
US3916384A (en) * 1973-06-15 1975-10-28 Gte Automatic Electric Lab Inc Communication switching system computer memory control arrangement
US3947324A (en) * 1975-04-21 1976-03-30 G. D. Searle And Co. Method for isolating high purity peroxidase
GB1536853A (en) * 1975-05-01 1978-12-20 Plessey Co Ltd Data processing read and hold facility
US3993981A (en) * 1975-06-30 1976-11-23 Honeywell Information Systems, Inc. Apparatus for processing data transfer requests in a data processing system
US4000485A (en) * 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
JPS5259534A (en) * 1975-11-11 1977-05-17 Panafacom Ltd Data transfer system
US4162529A (en) * 1975-12-04 1979-07-24 Tokyo Shibaura Electric Co., Ltd. Interruption control system in a multiprocessing system
US4400771A (en) * 1975-12-04 1983-08-23 Tokyo Shibaura Electric Co., Ltd. Multi-processor system with programmable memory-access priority control
US4079454A (en) * 1976-01-02 1978-03-14 Data General Corporation Data processing system using read-only-memory arrays to provide operation in a plurality of operating states
US4055851A (en) * 1976-02-13 1977-10-25 Digital Equipment Corporation Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle
US4096561A (en) * 1976-10-04 1978-06-20 Honeywell Information Systems Inc. Apparatus for the multiple detection of interferences
US4099243A (en) * 1977-01-18 1978-07-04 Honeywell Information Systems Inc. Memory block protection apparatus
US4148011A (en) * 1977-06-06 1979-04-03 General Automation, Inc. Asynchronous priority circuit for controlling access to a bus
JPS596415B2 (ja) * 1977-10-28 1984-02-10 株式会社日立製作所 多重情報処理システム
US4296466A (en) * 1978-01-23 1981-10-20 Data General Corporation Data processing system including a separate input/output processor with micro-interrupt request apparatus
US4229791A (en) * 1978-10-25 1980-10-21 Digital Equipment Corporation Distributed arbitration circuitry for data processing system
US4488217A (en) * 1979-03-12 1984-12-11 Digital Equipment Corporation Data processing system with lock-unlock instruction facility
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
JPS56121126A (en) * 1980-02-26 1981-09-22 Toshiba Corp Priority level assigning circuit
US4373183A (en) * 1980-08-20 1983-02-08 Ibm Corporation Bus interface units sharing a common bus using distributed control for allocation of the bus
US4402040A (en) * 1980-09-24 1983-08-30 Raytheon Company Distributed bus arbitration method and apparatus
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4423384A (en) * 1981-12-21 1983-12-27 Motorola, Inc. Asynchronous multi-port arbiter
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
GB2117939A (en) * 1982-03-29 1983-10-19 Ncr Co Data communication network and method of communication
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4698753A (en) * 1982-11-09 1987-10-06 Texas Instruments Incorporated Multiprocessor interface device
US4568930A (en) * 1983-01-21 1986-02-04 E-Systems, Inc. Multinodal data communication network
US4543628A (en) * 1983-01-28 1985-09-24 Digital Equipment Corporation Bus for data processing system with fault cycle operation
JPS59173866A (ja) * 1983-03-24 1984-10-02 Nec Corp ロツク制御方式
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4660169A (en) * 1983-07-05 1987-04-21 International Business Machines Corporation Access control to a shared resource in an asynchronous system
AU564271B2 (en) * 1983-09-22 1987-08-06 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in a digital computer system
US4706190A (en) * 1983-09-22 1987-11-10 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in digital computer system
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
US4594590A (en) * 1983-11-04 1986-06-10 Control Data Corporation Demand driven access mechanism
JPS60107170A (ja) * 1983-11-15 1985-06-12 Nec Corp マルチプロセッサ制御方式

Also Published As

Publication number Publication date
US4937733A (en) 1990-06-26
EP0357685B1 (de) 1994-02-16
WO1988008570A1 (en) 1988-11-03
KR930000634B1 (ko) 1993-01-28
JPH02501097A (ja) 1990-04-12
KR890702119A (ko) 1989-12-22
AU1721388A (en) 1988-12-02
CA1309504C (en) 1992-10-27
DE3887886D1 (de) 1994-03-24
EP0357685A1 (de) 1990-03-14
JPH0625985B2 (ja) 1994-04-06

Similar Documents

Publication Publication Date Title
DE3887886T2 (de) Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem.
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE2854485C2 (de) Datenverarbeitungsanlage
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE68922261T2 (de) Verfahren und Vorrichtung für die Datenübertragung zwischen mehreren Aufgaben in Datenverarbeitungssystemen.
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE2856483C2 (de)
DE3687426T2 (de) Mehrprozessorsystem-architektur.
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69424272T2 (de) Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus
DE3606211A1 (de) Multiprozessor-computersystem
DE102013004542A1 (de) Verfahren und system zur timeout-überwachung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN

8339 Ceased/non-payment of the annual fee