DE3882989T2 - Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem. - Google Patents

Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.

Info

Publication number
DE3882989T2
DE3882989T2 DE88904801T DE3882989T DE3882989T2 DE 3882989 T2 DE3882989 T2 DE 3882989T2 DE 88904801 T DE88904801 T DE 88904801T DE 3882989 T DE3882989 T DE 3882989T DE 3882989 T2 DE3882989 T2 DE 3882989T2
Authority
DE
Germany
Prior art keywords
lock
command
node
read
bus
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
DE88904801T
Other languages
English (en)
Other versions
DE3882989D1 (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 DE3882989D1 publication Critical patent/DE3882989D1/de
Publication of DE3882989T2 publication Critical patent/DE3882989T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions

Landscapes

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

Description

    HINTERGRUND DER ERFINDUNG
  • Die Erfindung betrifft Computersysteme und insbesondere Computersysteme mit mehreren Prozessoren, die durch einen Hängebus zusammengeschaltet sind.
  • Moderne Computersysteme können mehrere Prozessoren, Speichermittel und Eingabe/Ausgabe-(I/O)-Einrichtungen aufweisen, die mittels eines gemeinsamen Bus zusammengeschaltet sind, um eine hohe Gesamtrechenleistung zu erzielen. Derartige Konstruktionen können sehr leistungsfähige Systeme bilden, die in der Lage sind, viele Millionen von Anweisungen pro Sekunde auszuführen. Allerdings kann die Zusammenschaltung mehrerer Prozessoren Schwierigkeiten hervorrufen, wenn es erforderlich ist, eine Anweisungsfolge durchzuführen, die als Lese-Änder-Schreib-(RMW)-Operation bekannt ist. Bei einer RMW-Operation findet ein Prozessor Daten von einer Speicherstelle wieder auf, führt eine Operation an den Daten aus und schreibt die geänderten Daten an die ursprüngliche Speicherstelle zurück. Es können unvorhersagbare Ergebnisse auftreten, welche die Vollständigkeit der Daten beeinträchtigen, falls ein Prozessor eine RMW-Operation für eine Speicherstelle begonnen hat und ein zweiter Prozessor in dem Zeitabschnitt zwischen der "Lese"-Operation der RMW-Operation des ersten Prozessors und dem "Schreib"-Teil dieser RMW-Operation eine RMW-Operation für die gleiche Speicherstelle versucht.
  • Ein Weg, mehrere Prozessoren davon abzuhalten, RMW-Operationen an den gleichen Speicherstellen durchzuführen, ist es, eine "Verriegelungslese"-Fähigkeit vorzusehen. Dies schließt die Verwendung eines "Verriegelungs"-Anzeigers ein, etwa eines Verriegelungsbits, welches gesetzt wird, wenn der "Lese"-Teil einer RMW-Operation durchgefuhrt wird, und welches zuruckgesetzt wird, nachdem der "Schreib"-Teil der RMW-Operation abgeschlossen ist. Ein zweiter Prozessor, der den Versuch unternimmt, eine RMW-Operation an einer Stelle im Speicher zu starten, wenn das Verriegelungsbit gesetzt ist, wird den Speicher veranlassen, mittels einer "Beschäftigt"- oder "Wiederversuch"-Bestätigung nach einer vorbestimmten Anzahl von Buszyklen, nachdem der zweite Prozessor seinen Verriegelungslesebefehl erzeugt hat, eine Verriegelungsstatusinformation zurückzugeben. Die Beschäftigt-Bestätigung zeigt dem Prozessor an, daß der zweite Verriegelungslesebefehl nicht vom Speicher angenommen wurde.
  • Die Verriegelungsleseoperation mildert die Probleme, die von mehreren Prozessoren verursacht werden, von denen jeder versucht, eine RMW-Operation durchzuführen. Den Prozessoren wird für derartige Verriegelungsleseoperationen mittels eines Entscheidungsprozesses, beispielsweise eines Rundlaufalgorithmus, ein gleichwertiger Zugang zu dem Bus gewährt. Jedoch können trotzdem Funktionsengpässe auftreten. Beispielsweise kann unter gewissen Busverkehrsbedingungen ein bestimmter Prozessor wiederholt auf verriegelte Speicherstellen treffen und nicht in der Lage sein, den nötigen Zugriff auf die Speicherhilfsmittel rechtzeitig zu gewinnen. Solche Probleme könnten vermindert werden, indem mehrere Verriegelungsbits für einen Speicherknoten vorgesehen werden, wobei jedes Verriegelungsbit besser einem Teil des Speicherknotens als dem gesamten Speicherknoten zugeordnet ist. Solche Mehrfach-Verriegelungsbits würden eine feinere "Abstufung" von Verriegelungsleseoperationen an einem Speicherknoten ermöglichen, wobei sie nach einer Verriegelungsleseoperation einen kleineren Teil des Speichers in Beschlag nehmen. Diese Lösung würde außerdem eine höhere Erfolgsquote von RMW-Operationen ermöglichen, was den Systemdurchsatz verbessert. Allerdings würde ein Einsatz mehrerer Verriegelungsbits bei bekannten Hängebus-Mehrprozessorsystemen einen unannehmbar komplizierten Schaltungsteil zum Nachweisen und Übertragen der Verriegelungsstatusinformationen nach sich ziehen.
  • Obwohl die vorstehende Diskussion den Betrieb eines Computersystems hervorgehoben hat, welches Prozessorknoten, Speicherknoten und I/O-Knoten einsetzt, liegt eine allgemeinere Diskussion eines solchen Systems in den Begriffen von Befehlsknoten, nämlich Knoten, die eine Transaktion auf einem Bus starten, und Antwortknoten, nämlich Knoten, die auf eine mittels eines Befehlsknotens gestartete Transaktion antworten. Zu verschiedenen Zeiten kann eine einzelne Einrichtung entweder als Befehlsknoten oder als Antwortknoten arbeiten.
  • Es ist wünschenswert, ein Computersystem zu schaffen, dessen Einrichtungen über mehrere Busse zusammengeschaltet sind, welche jeweils verschiedene Eigenschaften haben. Allerdings war dies bei bekannten Hängebussystemen, die Verriegelungsleseoperationen verwenden, bei denen Verriegelungsstatusinformationen mit einem festen Zeitverhältnis zu dem anfänglichen Verriegelungslesebefehl übertragen wurden, äußerst schwierig zu erreichen.
  • Es wird hiermit auf das Dokument EP-0 138 676 des Stands der Technik aufmerksam gemacht, in dem ein System offenbart ist, bei dem mehrere Einrichtungen, die einen gemeinsamen Kommunikationsweg benutzen, mit Mitteln versehen sind, mittels derer Einrichtungen, die unfähig sind, eine angeforderte Antwort auf eine Transaktion zu liefern, eine Beendigung der Transaktion bewirken und sie zu einem späteren Zeitpunkt wiederholen können.
  • ABRISS DER ERFINDUNG
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Mehrprozessorsystem mit mehreren Verriegelungsbits und einem vereinfachten Schaltungsteil zur Übertragung von Verriegelungsstatusinformationen zu schaffen.
  • Es ist ferner eine Aufgabe der vorliegenden Erfindung, ein Mehrprozessor-Hängebus-Computersystem mit Verriegelungsleseoperationen zu schaffen, bei denen Verriegelungsstatusinformationen nicht mit einem festen Zeitverhältnis zu dem anfänglichen Verriegelungslesebefehl übertragen werden.
  • Weitere Aufgaben und Vorteile der Erfindung werden zum Teil in der nachfolgenden Beschreibung dargelegt, und sie ergeben sich teils aus der Beschreibung oder können bei der Anwendung der Erfindung erfahren werden. Die Aufgaben und Vorteile der Erfindung können mittels der Hilfsmittel und Kombinationen erfüllt und erzielt werden, auf die insbesondere in den beigefügten Ansprüchen hingewiesen wird.
  • Die vorliegende Erfindung überwindet die Probleme und Nachteile des Stands der Technik, indem zu einer vorbestimmten Zeit nach einem Verriegelungslesebefehl eine Empfangsbestätigung und zu einer nicht genau bestimmten Zeit nach der Verriegelungslesenachricht eine Verriegelungsstatusnachricht vorgesehen werden.
  • Gemäß der vorliegenden Erfindung werden eine Vorrichtung (dargestellt in Anspruch 1) und ein Verfahren (dargestellt in Anspruch 9) geschaffen.
  • Die anliegenden Zeichnungen, die in diese Beschreibung eingeschlossen sind und einen Teil von ihr bilden, veranschaulichen eine Ausführungsform der Erfindung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der vorliegenden Erfindung zu erläutern.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, das von der vorliegenden Erfindung Gebrauch macht;
  • Fig. 2 ist ein Blockdiagramm eines Knotens in dem Datenverarbeitungssystem der Fig. 1;
  • Fig. 3 ist ein Zeitablaufdiagramm, das die bei dem Datenverarbeitungssystem der Fig. 1 verwendeten Taktsignale zeigt;
  • Fig. 4 ist ein Blockdiagramm der Datenschnittstelle 61 in dem Knoten der Fig. 2;
  • Fig. 5 ist ein Blockdiagramm der Entscheidungseinrichtung in dem Datenverarbeitungssystem der Fig. 1;
  • Fig. 6 ist ein Zeitablaufdiagramm, das Signale zeigt die während einer Verriegelungslesetransaktion auf dem Systembus der Fig. 1 erscheinen;
  • Fig. 7 ist ein Blockdiagramm eines Prozessorknotens in dem Datenverarbeitungssystem der Fig. 1;
  • Fig. 8 ist ein Blockdiagramm eines Speicherknotens in dem Datenverarbeitungssystem der Fig. 1; und
  • Fig. 9 ist ein Blockdiagramm einer Verriegelungssteuereinrichtung in dem Speicherknoten der Fig. 8.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM A. Systemübersicht
  • Fig. 1 zeigt ein Beispiel eines Datenverarbeitungssystems 20, das die vorliegende Erfindung verkörpert. Das Herz des Systems 20 ist ein Systembus 25, welcher ein synchroner Bus ist, der eine Kommunikation zwischen mehreren Prozessoren, Speichersubsystemen und I/O-Systemen gestattet. Die Kommunikation über den Systembus 25 geschieht synchron unter Verwendung periodischer Buszyklen. Eine typische Buszyklus-Zeit für den Systembus 25 ist 64 nsek.
  • In Fig. 1 ist der Systembus 25 an zwei Prozessoren 31 und 35, einen Speicher 39, eine I/O-Schnittstelle 41 und eine I/O-Einheit 51 angeschlossen. Eine I/O-Einheit 53 ist mittels eines I/O-Bus 45 und einer I/O-Schnittstelleneinheit 41 an den Systembus 25 angeschlossen.
  • Bei der bevorzugten Ausführungsform des Datenverarbeitungssystems 20 ist außerdem eine zentrale Entscheidungseinrichtung 28 an den Systembus 25 angeschlossen. Die Entscheidungseinrichtung 28 liefert bestimmte Zeitsteuerungs- und Busentscheidungssignale direkt an die anderen Einrichtungen am Systembus 25 und benutzt einige Signale mit diesen Einrichtungen gemeinsam.
  • Die in Fig. 1 gezeigte Ausführung ist eine gegenwärtig bevorzugte und sollte nicht notwendigerweise so verstanden werden, daß sie die vorliegende Erfindung beschränkt. Beispielsweise könnte die I/O-Einheit 53 direkt an den Systembus 25 angeschlossen sein, und die Entscheidungseinrichtung 28 braucht für die vorliegende Erfindung nicht in der beschriebenen Art und Weise zu arbeiten.
  • In der zur Beschreibung der vorliegenden Erfindung verwendeten Nomenklatur werden die Prozessoren 31 und 35, der Speicher 39, die I/O-Schnittstelle 41 und die I/O-Einrichtung 51 sämtlich Knoten genannt. Ein "Knoten" ist als Hardware-Einrichtung definiert, die an den Systembus 25 angeschlossen ist.
  • Gemäß der zur Beschreibung der vorliegenden Erfindung verwendeten Nomenklatur werden die Begriffe "Signale" oder "Leitungen" austauschbar verwendet, um die Namen der physischen Drähte zu bezeichnen. Die Begriffe "Daten" oder "Pegel" werden verwendet, um die Werte zu bezeichnen, welche die Signale oder Leitungen annehmen können.
  • Knoten führen Transfers mit anderen Knoten über den Systembus 25 durch. Ein "Transfer" ist ein Zyklus oder mehrere benachbarte Zyklen, die sich eine gemeinsame Übertragungseinrichtung und eine gemeinsame Entscheidungseinrichtung teilen. Beispielsweise erfordert eine Leseoperation, die mittels eines Knotens gestartet wird, um von einem anderen Knoten am Systembus 25 Informationen zu gewinnen, einen Befehlstransfer von dem ersten zu dem zweiten Knoten, gefolgt von einem oder mehreren Datenrückkehrtransfers von dem zweiten Knoten zu dem ersten Knoten zu einem etwas späteren Zeitpunkt.
  • Eine "Transaktion" ist als die vollständige logische Arbeitseinheit definiert, die auf dem Systembus 25 durchgeführt wird, und kann mehr als einen Transfer umfassen. Beispielsweise ist eine Leseoperation, die aus einem Befehlstransfer besteht, dem später einer oder mehrere Datenrückkehrtransfers folgen, eine Transaktion. Bei der bevorzugten Ausführungsform des Systembus 25 unterstützen die zulässigen Transaktionen den Transfer verschiedener Datenlängen und umfassen Lese-, Schreib- (maskiert), Verriegelungslese-, Entriegelungsschreib- und Interruptoperationen. Der Unterschied zwischen einem Verriegelungslesen und einem regulären oder Nichtverriegelungslesen ist, daß ein Verriegelungslesen an einer bestimmten Steile die an dieser Stelle gespeicherten Informationen wiederauffindet und den Zugriff auf die gespeicherten Informationen mittels nachfolgender Verriegelungslesebefehle beschränkt. Die Zugriffsbeschränkung wird durch Setzen eines Verriegelungsmechanismus durchgefuhrt. Ein nachfolgender Entriegelungsschreibbefehl speichert Informationen an der bestimmten Stelle und stellt den Zugriff auf die gespeicherten Informationen wieder her, indem der Verriegelungsmechanismus an dieser Stelle zurückgesetzt wird. Daher sind die Verriegelungslese-/Entriegelungsschreib- Operationen eine Form einer Lese-Änder-Schreib-Operation.
  • Da der Systembus 25 ein "Hänge"-Bus ist, fördert er die wirkungsvolle Ausnutzung von Busbetriebsmitteln, indem es anderen Knoten gestattet wird, Buszyklen zu verwenden, die anderenfalls vergeudet würden, um auf Antworten zu warten. Bei einem Hängebus können, nachdem ein Knoten eine Transaktion startet, andere Knoten Zugang zu dem Bus haben, ehe diese Transaktion abgeschlossen ist. Daher nimmt der Knoten, der diese Transaktion startet, den Bus nicht für die gesamte Transaktionszeit in Beschlag. Dies steht im Gegensatz zu einem Nicht-Hängebus, bei dem der Bus für eine gesamte Transaktion in Beschlag genommen wird. Beispielsweise kann in dem Systembus 25, nachdem ein Knoten eine Lesetransaktion startet und einen Befehlstransfer vornimmt, der Knoten, an den dieser Befehlstransfer gerichtet ist, nicht fähig sein, die angeforderten Daten sofort zurückzugeben. Zwischen dem Befehlstransfer und dem Datenrückkehrtransfer der Lesetransaktion würden dann Zyklen auf dem Bus 25 verfügbar sein. Der Systembus 25 gestattet es anderen Knoten, diese Zyklen zu benutzen.
  • Bei der Benutzung des Systembus 25 kann jeder Knoten verschiedene Rollen annehmen, um den Transfer von Informationen zu bewirken. Eine dieser Rollen ist ein "Befehler", welcher definiert ist als Knoten, der eine Transaktion gestartet hat, die gegenwärtig im Gange ist. Beispielsweise ist bei einer Schreib- oder Leseoperation der Befehler derjenige Knoten, der die Schreib- oder Leseoperation angefordert hat, er ist nicht notwendigerweise der Knoten, der die Daten sendet oder empfängt. Bei dem bevorzugten Protokoll für den Systembus 25 bleibt ein Knoten während einer vollständigen Transaktion als Befehler bestehen, obwohl ein anderer Knoten während bestimmter Zyklen der Transaktion die Herrschaft über den Systembus 25 ergreifen kann. Obwohl beispielsweise ein Knoten die Steuerung des Systembus 25 während des Transfers von Daten ansprechend auf den Befehlstransfer einer Lesetransaktion innehat, wird dieser eine Knoten nicht der Befehler des Bus. Stattdessen wird dieser Knoten "Antworter" genannt.
  • Ein Antworter antwortet dem Befehler. Falls beispielsweise ein Befehler eine Schreiboperation gestartet hat, um Daten von einem Knoten A zu einem Knoten B zu schreiben, würde der Knoten B der Antworter sein. Zusätzlich kann im Datenverarbeitungssystem 20 ein Knoten gleichzeitig ein Befehler und ein Antworter sein.
  • Sender und Empfänger sind Rollen, welche die Knoten in einem einzelnen Transfer annehmen. Ein "Sender" ist definiert als ein Knoten, der die Quelle von während eines Transfers auf den Systembus 25 gegebenen Informationen ist. Ein "Empfänger" ist das Gegenstück des Senders und ist definiert als derjenige Knoten, welcher die während eines Transfers auf den Systembus 25 gegebenen Informationen empfängt. Während einer Lesetransaktion kann beispielsweise ein Befehler zuerst während des Befehlstransfers ein Sender sein und dann während des Datenrückkehrtransfers ein Empfänger sein.
  • Wenn ein an dem Systembus 25 angeschlossener Knoten ein Sender auf dem Systembus 25 zu werden wünscht, beansprucht dieser Knoten eine von zwei Anforderungsleitungen CMD REQ (Befehleranforderung) und RES REQ (Antworteranforderung), welche zwischen einer zentralen Entscheidungseinrichtung 28 und dem speziellen Knoten angeschlossen sind. Im allgemeinen verwendet ein Knoten seine CMD REQ-Leitung, um anzufordern, Befehler zu werden und Transaktionen auf dem Systembus 25 zu starten, und ein Knoten verwendet seine RES REQ-Leitung, um ein Antworter zu werden, um Daten oder eine Nachricht an einen Befehler zurückzugeben. Im allgemeinen stellt die zentrale Entscheidungseinrichtung 28 fest, welcher Knoten Zugang zu dem Bus wünscht (d.h., welche angeforderten Leitungen beansprucht werden). Die Entscheidungseinrichtung antwortet dann einer der beanspruchten Anforderungsleitungen um dem entsprechenden Knoten gemäß eines Prioritätsalgorithmus Zugang zu dem Bus 25 zu gewähren. Bei der bevorzugten Ausführungsform hält die Entscheidungseinrichtung 28 zwei unabhängige, ringförmige Warteschlangen aufrecht: Eine für die Befehleranforderungen und eine für die Antworteranforderungen. Vorzugsweise haben die Antworteranforderungen eine höhere Priorität als die Befehleranforderungen und werden vor den Befehleranforderungen behandelt.
  • Die Befehler-Anforderungsleitungen und die Antworter-Anforderungsleitungen werden als Entscheidungssignale betrachtet. Wie in Fig. 1 dargestellt, umfassen Entscheidungssignale ferner Punkt-zu-Punkt bedingte Gewährungssignale von der zentralen Entscheidungseinrichtung 28 zu jedem Knoten, Systembus-Erweiterungssignale zur Durchführung von Mehr-Bus- Zyklus-Transfers und Systembus-Unterdrückungssignale, um den Start von neuen Bustransaktionen zu steuern, wenn beispielsweise ein Knoten, etwa 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 einsetzen können, umfassen Informationstransfersignale, Antwortsignale, Steuersignale, Bedienungsplatz-/Frontplattensignale und einige vermischte Signale. Informationstransfersignale umfassen Datensignale, Funktionssignale, welche die während eines laufenden Zyklus auf dem Systembus durchgeführte Funktion repräsentieren, Identifiziersignale, die den Befehler identifizieren, und Paritätssignale. Die Antwortsignale umfassen im allgemeinen Empfangs- oder Bestätigungssignale von einem Empfänger, um den Sender von dem Status des Datentransfers zu unterrichten.
  • Steuersignale umfassen Taktsignale, Warnsignale wie solche, die niedrige Leitungsspannungen oder niedrige Gleichspannungen identifizieren, Zurücksetz-Signale, die während einer Initialisierung verwendet werden, Knotenausfallsignale, Voreinstellungssignale, die während Warte-Buszyklen verwendet werden, und Fehlervoreinstellungssignale. Die Bedienungsplatz-/Frontplattensignale umfassen Signale, um serielle Daten zu einem Systembedienungsplatz zu übertragen und von diesem zu empfangen, Hochfahr-Signale, um das Verhalten eines Hochfahr-Prozessors während des Einschaltens zu steuern, Signale, um eine Änderung der löschbaren PROMs von Prozessoren am Systembus 25 zu ermöglichen, ein Signal, um ein EIN- Licht an der Frontplatte zu steuern, und Signale, die einer Takt-Logikschaltung an bestimmten Knoten Batterieleistung zuführen. Die vermischten Signale umfassen neben Reservesignalen Identifikationssignale, welche es jedem Knoten gestatten, seinen Identifikationscode zu bestimmen.
  • Fig. 2 zeigt ein Beispiel eines Knotens 60, der am Systembus 25 angeschlossen ist. Der Knoten 60 könnte ein Prozessor, ein Speicher, eine I/O-Einheit oder eine I/O-Schnittstelle sein. In dem in Fig. 2 gezeigten Beispiel umfaßt der Knoten 60 eine knotenspezifische Logikschaltung 65, einen Knotenbus 67 und eine Systembusschnittstelle 64, die eine Datenschnittstelle 61 und einen Taktdecodierer 63 enthält. Vorzugsweise sind die Datenschnittstelle 61, der Taktdecodierer 63 und der Knotenbus 67 Standardelemente für am Systembus 25 angeschlossene Knoten. Die knotenspezifische Logikschaltung 65, die verschiedene integrierte Schaltungen aus der Systembusschnittstelle 64 verwendet, enthält vorzugsweise neben dem von einem Anwender zur Durchführung der besonderen Funktion eines Knotens gestalteten Schaltungsteil einen Standardschaltungsteil, um mit dem Knotenbus 67 in Schnittstellenverbindung zu stehen. Im allgemeinen ist die Datenschnittstelle 61 die primäre logische und elektrische Schnittstelle zwischen dem Knoten 60 und dem Systembus 25, liefert der Taktdecodierer 63 basierend auf zentral erzeugten Taktsignalen Zeitsteuersignale an den Knoten 60 und bildet der Knotenbus 67 eine Hochgeschwindigkeits-Schnittstelle zwischen der Datenschnittstelle 61 und der knotenspezifischen Logikschaltung 65.
  • Bei der in Fig. 2 gezeigten bevorzugten Ausführungsform des Knotens 60 und der Systembusschnittstelle 64 enthält der Taktdecodierer 63 einen Steuerschaltungsteil, um auf den Systembus 25 zu gebende Signale zu bilden, und verarbeitet von der zentralen Entscheidungseinrichtung 28 empfangene Taktsignale, um Zeitsteuersignale für die knotenspezifische Logikschaltung 65 und die Datenschnittstelle 61 zu gewinnen. Da die mittels des Taktdecodierers 63 gewonnenen Zeitsteuersignale die zentral erzeugten Taktsignale verwenden, arbeitet der Knoten 60 synchron mit dem Systembus 25.
  • Fig. 3 ist ein Zeitablaufdiagramm, das einen Buszyklus, die mittels des Taktdecodierers 63 empfangenen Taktsignale und bestimmte mittels des Taktdecodierers 63 erzeugte Zeitsteuersignale zeigt. Die mittels des Taktdecodierers 63 empfangenen Taktsignale umfassen ein Signal Zeit H, ein Signal Zeit L und ein Phasensignal L, wie in Fig. 3 gezeigt. Die Zeit H und die Zeit L sind Inverse der grundlegenden Taktsignale, und das Phasensignal wird durch Teilen des grundlegenden Taktsignals durch drei gewonnen. Die mittels des Taktdecodierers 63 erzeugten Zeitsteuersignale sind C12, C23, C34, C45, C56 und C61, die sämtlich in Fig. 3 gezeigt sind. Diese Zeitsteuersignale, die von der Datenschnittstelle 61 angefordert werden, was einmal pro Buszyklus geschieht, werden der Datenschnittstelle 61 zugeführt, und ein vollständiger Satz von Zeitsteuersignalen, welcher Zeitsteuersignale einschließt, die der Datenschnittstelle 61 zugeführten Zeitsteuersignalen äquivalent sind, wird gepuffert und der knotenspezifischen Logikschaltung 65 zugeführt. Der Zweck des Pufferns ist es, sicherzustellen, daß die knotenspezifische Logikschaltung 65 den Betrieb der Systembusschnittstelle 64 nicht ungünstig beeinflussen kann, indem sie die Zeitsteuersignale unpassend lädt. Der Taktdecodierer 63 verwendet die Taktsignale, um sechs Subzyklen für jeden Buszyklus zu erzeugen, und verwendet dann die Subzyklen, um die sechs Zeitsteuersignale CXY zu erzeugen, wobei X und Y zwei benachbarte Subzyklen repräsentieren, welche kombiniert werden, um ein Zeitsteuersignal zu bilden.
  • Jeder Knoten im Systembus weist seinen eigenen entsprechenden Satz von mittels seines Taktdecodierers 63 erzeugten Zeitsteuersignalen auf. Während namentlich die entsprechenden Signale überall im System in jedem Knoten zu genau der gleichen Zeit erscheinen, führen Abweichungen zwischen dem Taktdecodierer 63 und anderen Schaltungsteilen in mehreren Knoten Zeitabweichungen zwischen entsprechenden Signalen ein. Diese Zeitabweichungen sind allgemein als "Taktasymetrie" bekannt.
  • Fig. 4 zeigt eine bevorzugte Ausführungsform der Datenschnittstelle 61. Die Datenschnittstelle 61 enthält sowohl einen Zwischenspeicher-Schaltungsteil als auch einen Bustreiber-Schaltungsteil, um eine Zweirichtungs- und Hochgeschwindigkeits-Schnittstelle zwischen jeder der Leitungen des Knotenbus 67 und jeder der Leitungen des Systembus 25 bereitzustellen. Wie in Fig. 4 gezeigt, umfaßt die Datenschnittstelle 61 vorzugsweise Speicherelemente 70 und 72 und einen Systembustreiber 74, um einen Kommunikationsweg von dem Knotenbus 67 zu dem Systembus 25 bereitzustellen. Die Datenschnittstelle 61 umfaßt ferner ein Speicherelement 80 und einen Knotenbustreiber 82, um einen Kommunikationsweg von dem Systembus 25 zu dem Knotenbus 67 bereitzustellen. So, wie er in der Beschreibung der Datenschnittstelle 61 verwendet wird, bezieht sich der Begriff "Speicherelement" allgemein auf bistabile Speichereinrichtungen wie einen transparenten Auffangspeicher oder ein Master-Slave-Speicherelement und nicht auf eine bestimmte Ausführung. Der Fachmann weiß, welche Arten von Speicherelementen zweckmäßig sind.
  • Wie in Fig. 4 gezeigt weist das Speicherelement 70 einen Eingang, der angeschlossen ist, um Daten von dem Knotenbus 67 zu empfangen, und einen an dem Eingang des Speicherelements 72 angeschlossenen Ausgang auf. Der Ausgang des Speicherelements 72 ist an einen Eingang des Systembustreibers 74 angeschlossen, dessen Ausgang an den Systembus 25 angeschlossen ist. Flip-Flops 70 und 72 werden jeweils mittels Knotenbus-Steuersignalen 76 und 78 gesteuert, welche aus den mittels des Taktdecodierers 63 erzeugten Zeitsteuersignalen erhalten werden. Die Flip-Flops 70 und 72 bilden einen zweistufigen Zwischenspeicher, durch den Daten von dem Knotenbus 67 zu dem Systembus 25 hindurchgeleitet werden. Außerdem können verschiedene Anzahlen von Speicherstufen verwendet werden.
  • Der Systembustreiber 74 wird mittels einer Systembustreiber- Freigabe 79 gesteuert. Je nach dem Zustand der Systembustreiber-Freigabe 79 ist der Eingang des Systembustreibers 74 entweder elektrisch mit seinem Ausgang verbunden, wodurch die Daten am Ausgang des Speicherelements 72 an den Systembus 75 übertragen werden, oder ist von diesem Ausgang abgekoppelt. Wenn die Systembustreiber-Freigabe 79 den Eingang und den Ausgang des Systembustreibers 74 entkoppelt, stellt der Systembustreiber 74 für den Systembus 25 eine hohe Impedanz daß. Die Systembustreiber-Freigabe 79 wird außerdem gemäß von dem Systembus 25 empfangener Taktsignale und von der knotenspezifischen Logikschaltung 65 empfangener Steuersignale mittels des Taktdecodierers 63 erzeugt.
  • Das Speicherelement 80 weist einen mit dem Systembus 25 verbundenen Eingangsanschluß und einen mit dem Eingang des Knotenbustreibers 82 verbundenen Ausgangsanschluß auf. Der Ausgang des Knotenbustreibers 82 ist wieder mit dem Knotenbus 67 verbunden. Das Speicherelement 80, vorzugsweise ein transparenter Auffangspeicher, wird mittels eines Systembusauffangspeicher-Steuersignals 85 gesteuert, welches aus den mittels des Taktdecodierers 63 erzeugten Zeitsteuersignalen gewonnen wird. Ein Knotenbus-Treibsignal 87 steuert den Knotenbustreiber 82 in ähnlicher Art und Weise, wie das Systembus-Treibsignal 79 den Systembustreiber 74 steuert. Somit koppelt der Knotenbustreiber 82 ansprechend auf das Knotenbus-Treibsignal 87 entweder seinen Eingang mit seinem Ausgang, oder er entkoppelt seinen Eingang von seinem Ausgang und bildet eine hohe Impedanz für den Knotenbus 67.
  • Um zu erläutern, wie Daten über den Systembus 25 übertragen werden, ist es wichtig, die Beziehung zwischen dem Systembus-Treibfreigabesignal und dem Steuersignal 85 zu verstehen. Bei der bevorzugten Ausführungsform ist diese Beziehung in Fig. 3 gezeigt. Das Systembus-Treibfreigabesignal 79 zieht sich namentlich vom Beginn bis zum Ende eines Buszyklus hin. Die neuen Daten werden etwas später im Buszyklus, nachdem die Treiberübertragung erfolgt und die Busabsetzzeit abgelaufen ist, zum Empfang vom Systembus 25 verfügbar. Bei der vorliegenden Ausführungsform ist das Speicherelement 30 ein transparenter Auffangspeicher. Das Steuersignal 35 ist dem Takt C45 logisch äquivalent. Die Bus-Zeitsteuerung gewährleistet, daß die Daten des Systembus 25 irgendwann vor der Nicht-Mehr-Beanspruchung des Steuersignals 25 für einen Empfang verfügbar sind. Das Speicherelement 80 speichert Busdaten, die wenigstens in einer Einschaltzeit vor der Nicht-Mehr-Beanspruchung des Steuersignals 85 stabil sind und eine Haltezeit lang nach der Nicht-Mehr-Beanspruchung des Steuersignals 85 stabil bleiben.
  • Der Knotenbus 67 ist vorzugsweise ein Datenbus sehr hoher Geschwindigkeit, der mit Hilfe der Datenschnittstelle 61 einen Zweirichtungs-Datentransfer zwischen der knotenspezifischen Logikschaltung 65 und dem Systembus 25 erlaubt. Bei der in Fig. 2 gezeigten bevorzugten Ausführungsform des Knotens 60 ist der Knotenbus 67 ein Zwei-Anwender-System, das aus Punkt-zu-Punkt-Verbindungen zwischen der Systembusschnittstelle 64 und der knotenspezifischen Logikschaltung 65 besteht. Gemäß der vorliegenden Erfindung ist solch eine Verbindung nicht Bedingung, und der Knotenbus 67 könnte mehr als zwei Zyklen unterstützen.
  • Fig. 5 zeigt eine bevorzugte Ausführungsform der zentralen Entscheidungseinrichtung 26, die weiterhin mit dem Systembus 25 verbunden ist. Die zentrale Entscheidungseinrichtung 28 liefert die Taktsignale für den Systembus 25 und gewährt den Knoten am Systembus 25 Herrschaft über den Bus. Die zentrale Entscheidungseinrichtung 28 umfaßt vorzugsweise eine Entscheidungsschaltung 90, eine Taktschaltung 95 und einen Oszillator 97. Der Oszillator 97 erzeugt die grundlegenden Taktsignale. Die Taktschaltung 95 liefert Zeitsteuersignale für die Entscheidungsschaltung 90 sowie die grundlegenden Taktsignale Zeit H, Zeit L und Phase für die Zeitsteuerung auf dem Systembus 25. Die Entscheidungsschaltung 90 empfängt die Befehler- und Antworter-Anforderungssignale, entscheidet Konflikte zwischen Knoten, die Zugang zum Systembus 25 wünschen, und hält die oben erwähnten Warteschlangen für die Befehler- und Antworter-Anforderungen aufrecht. Die Entscheidungsschaltung 90 liefert außerdem bestimmte Steuersignale an die Taktschaltung 95.
  • B. Erörterung der Verriegelungsoperationen
  • Wie oben kurz erörtert, ist auf dem Bus 25 eine Anzahl verschiedener Arten von Transaktionen erlaubt. In jedem Fall ist die Transaktion aus einem oder mehreren einzelnen Transfers von einem Knoten zu einem anderen zusammengesetzt. Wenn der Antwortknoten während eines Buszyklus oder mehrerer Buszyklen einen Befehlstransfer erfolgreich empfängt, erzeugt er nach jedem Zyklus des Transfers am Anfang des zweiten Buszyklus eine Empfangsbestätigung. Solche Bestätigungssignale zeigen nicht die erfolgreiche Ausführung des in dem ursprünglichen Transfer enthaltenen Befehls an, sondern zeigen nur an, daß der Transfer erfolgreich in einer Eingabewarteschlange in dem erwünschten Antwortknoten abgelegt wurde. Die für die vorliegende Erfindung wesentlichen Transaktionen werden nachstehend kurz beschrieben.
  • Eine Lesetransaktion wird verwendet, um Daten in Blöcken von vier Byte, acht Byte, sechzehn Byte oder zweiunddreißig Byte von einer bestimmten Stelle in einem Antwortknoten, der einen Adressenraumbereich verwaltet, zu einem Befehlsknoten zu bewegen. Bei der bevorzugten Ausführungsform beziehen sich Speicher- und I/O-Operationen auf einen gemeinsamen Adressenraum. Ein Antwortknoten kann entweder ein Speicherknoten, ein Prozessorknoten oder ein I/O-Knoten sein.
  • Verriegelungslesetransaktionen sind Lesetransaktionen ähnlich. Jedoch hängt die genaue Auswirkung einer Verriegelungslesetransaktion in einer später detaillierter zu beschreibenden Weise von dem Zustand von Verriegelungskennzeichen im Antwortknoten ab. Verriegelungskennzeichen verhindern einen Zugriff auf Stellen oder Gruppen von Stellen im Adressenraum. Die Auswirkung von Verriegelungskennzeichen kann verstanden werden, indem man sich dem Adressenraum des Systems 20 als quer über einer metallischen "Wandtafel" erscheinend vorstellt. Verriegelungskennzeichen wirken wie magnetische Kennzeichen, die abnehmbar an die Spitze von Stellen oder Gruppen von Stellen an der Adressenraum- "Wandtafel" gesetzt sind. Falls die in einer Verriegelungslesetransaktion bestimmte Stelle im Adressenraum bereits von einem Verriegelungskennzeichen besetzt ist, d.h., falls der bestimmte Adressenraum "verriegelt" ist, antwortet der Antwortknoten auf die Verriegelungsleseanforderung mit einer "Verriegelt"-Antwortnachricht, und es werden keine Daten zurückgegeben. Dies zeigt dem Befehler an, daß die im Verriegelungslesebefehl bestimmte Stelle im Adressenraum nicht zugänglich ist. Die Verriegelt-Antwortnachricht wird an den Befehler übertragen, nachdem der Antwortknoten den Verriegelungslesebefehl bedient und nachdem der Antwortknoten Zugang zum Bus 25 gewinnen kann Daher empfängt der Befehler die Verriegelt-Antwortnachricht zu einer nicht genau bestimmten Zeit nach dem Befehlstransfer der Verriegelungslesetransaktion.
  • Falls die bestimmte Stelle nicht verriegelt ist, d.h., nicht mit einem Verriegelungskennzeichen verbunden, werden die Informationen, die in der im Verriegelungslesebefehl bestimmten Adresse gespeichert sind, in einer Antwortnachricht an den Befehlsknoten zurückgegeben, welcher den Verriegelungslesebefehl erzeugte. Der Antwortknoten heftet der im Verriegelungslesebefehl bestimmten Stelle im Adressenraum weiterhin ein Verriegelungskennzeichen an, so daß nachfolgenden Verriegelungslesebefehlen der Zugriff auf die bestimmte Stelle im Adressenraum versagt wird.
  • Die Entriegelungsschreibtransaktion ist das Gegenstück zu der Verriegelungslesetransaktion. Wenn ein Befehlsknoten in einer Lese-Änder-Schreib-Operation die Lese- und Änderstelle erfolgreich vervollständigt, muß er die Stelle im Adressenraum entriegeln, welche gegenwärtig mittels eines Verriegelungslesebefehls verriegelt ist. Der Befehler führt diese Operation durch, indem er eine Entriegelungsschreibtransaktion an der bestimmten Stelle im Adressenraum durchführt, um die geeignet geänderten Daten an die bestimmte Stelle zu schreiben. Der Antwortknoten verarbeitet den Entriegelungsschreibbefehl, indem er den Adressenraum entriegelt und die Daten wie angefordert schreibt. Das Verriegelungskennzeichen wird dann in einer detaillierter zu beschreibenden Weise gelöscht.
  • Während eines Verriegelungslesebefehls-Transfers über den Bus 25 übertragene Nachrichten umfassen Daten auf vierundsechzig Datenleitungen. Diese Daten enthalten ein Vier-Bit- Befehlsfeld, ein zwei Bit langes Feld, welches die Anzahl von Worten angibt, die beispielsweise vom Speicher 39 zu dem Prozessorknoten 31 zu übertragen sind, und ein 30-Bit-Adressenfeld, welches die Adressenstelle im Speicher 39 angibt, von der Daten zu lesen gewünscht werden. Andere Leitungen des Systembus 25, die während eines Verriegelungslesebefehls Informationen tragen, umfassen vier Funktionsleitungen, die einen Vier-Bit-Funktionscode tragen, der einen Befehlstransfer anzeigt, sechs ID-Leitungen, die einen Sechs-Bit-Code tragen, der den Befehlsknoten identifiziert, welcher den Verriegelungslesebefehl gestartet hat, und drei Paritätsleitungen.
  • Wie oben kurz erörtert, umfaßt der Systembus 25 Antwortsignale, welche von einem Empfänger verwendet werden, um den erfolgreichen Empfang von mittels eines Senders auf den Bus gegebenen Informationen anzuzeigen. Bei der bevorzugten Ausführungsform umfassen die Antwortsignale drei identische Draht-ORot-Bestätigungs(CNF)-Leitungen. Es sind drei Leitungen vorgesehen, da es für die Vollständigkeit der Bustransaktionen äußerst wichtig ist, daß ein Befehler genau weiß, was ein Antworter ansprechend auf jeden Befehl getan hat, insbesondere im Falle eines Verriegelungsbefehls oder eines Schreibens in ein I/O-Register. Daher sendet ein Empfänger entweder eine Empfangsbestätigung (ACK), indem er alle drei CNF-Leitungen beansprucht, oder eine Nicht-Empfangsbestatigung (NACK), indem er nicht alle drei CNF-Leitungen beansprucht. Im Empfänger ist eine Fehlerberichtigungs-Logikschaltung vorgesehen, um den wahren CNF-Zustand festzustellen, falls nicht alle drei CNF-Leitungen auf dem gleichen logischen Pegel vom Empfänger empfangen werden.
  • Eine ACK-Bestätigung zeigt an, daß ein Antworter Informationen von einem Zyklus eines Befehlstransfers angenommen hat oder daß ein Befehler Informationen von einem Zyklus einer Antwortnachricht angenommen hat. Ein Lesebefehls-Transferzyklus, der zu einer ACK-Bestätigungsanzeige führt, zeigt an, daß der Antworter etwas später eine Lese-Antwortnachricht zurückgeben wird.
  • Eine auf den CNF-Leitungen zurückgegebene NACK-Bestätigung zeigt an, daß kein Empfänger die Informationen aus dem Buszyklus des Befehlstransfers angenommen hat. Dieses könnte drei Ursachen haben: (1) Auf dem Systembus 25 ist ein Paritätsfehler aufgetreten, (2) der Empfänger war zeitweise nicht in der Lage, den Befehl anzunehmen, beispielsweise wenn die Eingabewarteschlange des Empfängers voll ist, oder (3) es gibt keinen der bestimmten Adresse entsprechenden Antwortknoten.
  • Die einem Buszyklus entsprechenden Bestätigungsanzeigen werden mittels des Empfängerknotens am Beginn des zweiten Zyklus nach dem Durchlaufen des Buszyklus auf die CNF- Leitungen gegeben.
  • Ein Beispiel einer Verriegelungslesetransaktion wird im Zusammenhang mit Fig. 6 beschrieben. Die Horizontalachse an der Oberseite der Fig. 6 gibt aufeinanderfolgende Buszyklen auf dem Bus 25 an. Die senkrecht entlang der linken Seite der Fig. 6 erscheinenden Aufschriften geben Gruppen von im Bus 25 enthaltenen Leitungen an, und zwar Funktionsleitungen, Datenleitungen, ID-Leitungen, Bestätigungsleitungen und Entscheidungsleitungen. Die Einträge in der Matrix, die mittels der horizontalen und der vertikalen Achse der Fig. 6 gebildet ist, beschreiben die Art von Daten, die während der bestimmten Buszyklen an den bestimmten Busleitungen auftreten.
  • In einem Buszyklus 0 beansprucht ein erster Befehlsknoten, beispielsweise der Knoten 31 der Fig. 1, seine CMD REQ-Entscheidungsanforderungsleitung (eine der Punkt-zu-Punkt- Leitungen, die an die Entscheidungseinrichtung 28 angeschlossen und in Fig. 1 gezeigt sind) zu der Entscheidungseinrichtung 28. Fig. 6 zeigt daher eine "CMDR # 1"-Anforderung an, die im Zyklus 1 auf Entscheidungsleitungen des Systembus 25 vorhanden ist. Unter der Annahme, daß kein anderer Knoten höherer Priorität gleichzeitig Zugang zum Bus verlangt, gewinnt der Prozessor 31 im Zyklus 1 Buszugang und überträgt eine Nachricht in den Systembus 25.
  • Während des Zyklus 1 zeigen auf die Funktionsleitungen des Bus 25 gegebene Informationen an, daß die Informationen auf dem Bus Befehls-(CMD)-Informationen sind. Die auf Datenleitungen des Bus 25 gegebenen Daten bestehen aus Befehls- und Adressen-(C/A)-Daten, die die gegenwärtige Transaktion als Verriegelungslesetransaktion identifizieren und die Adresse im Speicher 39 angeben, von der Daten zu dem Prozessor 31 zurückzugeben sind. Die ID-Leitungen enthalten während des Buszyklus 1 den Identifikationscode des Prozessor(Befehler/CMDR)-Knotens 31, der gegenwärtig auf dem Bus 25 übertragen wird.
  • Während eines Buszyklus 2 werden im Zusammenhang mit der gegenwärtigen Verriegelungslesetransaktion keine Informationen auf den Bus 25 gegeben.
  • Zu Beginn eines Buszyklus 3, welcher zwei Zyklen (d.h. eine vorbestimmte Zeit) nach dem Start der Verriegelungslesetransaktion liegt, überträgt der Speicherknoten 39 eine ACK- Bestätigung auf den Bestätigungsleitungen des Bus 25, falls der Speicher 39 den während des Buszyklus 1 übertragenen Befehlstransfer erfolgreich empfangen hat. Der Speicher 39 gibt dann die Befehlsnachricht in die Eingabewarteschlange des Speichers 39.
  • Das Ende des Buszyklus 3 bildet das Ende des ersten Transfers in der Verriegelungslesetransaktion. Gemäß der "Hänge"-Eigenschaft von Transaktionen auf dem Bus 25 ist die Zeit, zu der die angeforderten Informationen vom Speicher 39 zu dem Prozessor 31 zurückgegeben werden, nicht genau bestimmt. Die Antwortzeit hängt von der Länge der Zeit ab, die von dem Speicher 39 benötigt wird, um die Anforderung zu verarbeiten, und von dem Umfang an Zeit, die der Systembus 25 benötigt, um zusätzlichen Verkehr auf dem Bus 25 abzuwikkeln, der durch andere Knoten erzeugt wird. Die unbestimmte Eigenschaft der Zeit zwischen den beiden Transfers einer Verriegelungslesetransaktion ist mittels der punktierten Linie in Fig. 6 zwischen den Buszyklen 3 und 4 angegeben. Somit versteht es sich, daß, obwohl nachfolgende Informationen mittels Fig. 6 so angegeben sind, daß sie sich während Buszyklen 4 bis 7 ereignen, dies lediglich ein bestimmtes Beispiel des in eine Verriegelungslesetransaktion einbezogenen Zeitablaufs ist, und daß sich der zweite Transfer einer solchen Transaktion in irgendeinem nachfolgenden Zyklus des Bus 25 ereignen könnte.
  • Der Speicher 39 verarbeitet den Verriegelungslesebefehl, indem er der Reihe nach die Verriegelungslesetransfer-Nachricht aus seiner Eingabewarteschlange entfernt und die im Transfer enthaltenen Adresseninformationen prüft. Die Informationen werden mit Adressenwerten verglichen, die in Verriegelungskennzeichen gespeichert sind, die noch vollständiger zu beschreiben sind. Falls die gespeicherten Adressenwerte und die Adresseninformationen des Verriegelungslesetransfers zueinander passen, ist dies eine Anzeige dafür, daß die gewünschte Adressenstelle mittels eines vorangegangenen Verriegelungslesebefehls verriegelt wurde. Der Speicher 39 erzeugt dann zusammen mit anderen für eine Antwortnachricht angeforderten Informationen eine Verriegelt-Antwortnachricht, die einen "Verriegelt"-Funktionscode enthält, in einer Ausgabewarteschlange des Speicherknotens 39.
  • Falls der Vergleich von in Verriegelungskennzeichen gespeicherten Adressenwerten mit den Verriegelungslesetransfer- Adresseninformationen keinen "Treffer" hervorbringt d.h., falls die übertragene Adresse nicht irgendeiner gespeicherten Adresse entspricht, bildet der Speicherknoten 39 eine Antwortnachricht, die aus einem Gültiges-Lesen-Antwortknoten, etwa einem "Gutes-Datenlesen"(GRDO)-Code für Funktionsleitungen, dem Inhalt der bestimmten Adressenstelle für die Datenleitungen und dem Befehleridentifikationscode des Befehlsknotens, welcher den Verriegelungslesebefehl für die ID-Leitungen gestartet hat, besteht. Diese Antwortnachricht wird in die Ausgabewarteschlange des Speicherknotens 39 geladen.
  • Wenn der Speicher 39 in einer noch vollständiger zu beschreibenden Weise die Verriegelungslesetransaktion verarbeitet und eine Antwortnachricht innerhalb seiner Ausgabewarteschlange erzeugt hat, beansprucht der Speicher 39 seine RES REQ-Anforderungsleitung (eine andere in Fig. 1 gezeigte Punkt-zu-Punkt-Leitung) an die Entscheidungseinrichtung 28. Die Entscheidungsleitungen führen somit eine Antwortanforderungs(RESP)-Anzeige, wie in Fig. 6 im Buszyklus 4 gezeigt. Unter der Annahme, daß zu diesem Zeitpunkt keine anderen Knoten eine höhere Priorität aufweisen, gewährt die Entscheidungseinrichtung 28 dem Speicher 39 während eines Buszyklus 5 Zugang zu dem Bus 25. Der Speicher 39 überträgt die Antwortnachricht einschließlich des "Gutes-Datenlesen"(GRDO)- Signals auf Funktionsleitungen des Systembus 25, acht Bytes (d.h. 64 Bits) von Daten über die Datenleitungen des Systembus 25 von den mittels des Adressenfeldes des Starttransfers bestimmten Speicherstellen vom Prozessor 31 zum Speicher 39 sowie die ID des Prozessors 31 auf die ID-Leitungen des Bus 25, um die zurückkehrenden Daten dem Befehler (d.h. dem Prozessor 31) zuzuordnen, welcher die Verriegelungsleseanforderung anfänglich herausgab.
  • Während eines Buszyklus 6 findet bezogen auf diese Verriegelungslesetransaktion kein Verkehr auf dem Systembus 25 statt. Schließlich endet die Verriegelungslesetransaktion in einem Buszyklus 7, wenn der Prozessor 31 eine ACK-Bestätigung auf die Bestätigungsleitungen des Bus 25 überträgt.
  • Eine zweite Verriegelungslesetransaktion zu der gleichen bestimmten Stelle im Speicher führt zu auf dem Bus 25 erscheinenden Daten, die in Zyklen 8 bis 15 in Fig. 6 gezeigt sind. Im Zyklus 8 startet ein zweiter Befehler (CMDR #2) eine Befehleranforderung an die Entscheidungseinrichtung 28. Buszyklen 9 bis 12 führen zu mit den Zyklen 1 bis 4 übereinstimmendem Verkehr auf dem Bus 25. Allerdings findet der Speicher 39 beim Verarbeiten des empfangenen Verriegelungslesebefehls, daß die in Verriegelungskennzeichen gespeicherten Adressenwerte und die mit dem Verriegelungslesebefehl übertragenen Adressen zusammenpassen. Demgemäß wird beispielsweise im Zyklus 13 eine LOC-Antwort auf den Funktionsleitungen des Bus 25 dargeboten. Buszyklen 14 und 15 stimmen mit den Zyklen 6 und 7 überein.
  • C. Beschreibung des Prozessors 31
  • Es wird nun auf Fig. 7 Bezug genommen, in der ein detaillierteres Blockdiagramm bestimmter Elemente der knotenspezifischen Logikschaltung 65 im Prozessor 31 gezeigt ist. Der Prozessorknoten 31 umfaßt wie alle Knoten eine Busschnittstellenschaltung 64. Der Prozessorknoten 31 enthält ferner eine Prozessorlogikschaltung 202. Wie in Fig. 7 gezeigt, enthält die Prozessorlogikschaltung 202 einen zentralen Verarbeitungseinheits-(CPU)-Schaltungsteil, welcher erforderlich ist, um in einer dem Fachmann gut bekannten Weise Software auszuführen. Die Prozessorlogikschaltung 202 erzeugt ferner Befehls- und Adresseninformationen, wie sie von dem System 20 benötigt werden, um die notwendigen Anwendungsfunktionen auszuführen sowie Transfers über den Systembus 25 zu steuern.
  • Der Prozessorknoten 31 enthält ferner eine Paritätsfehler- Prüfschaltung 204, welche Informationen über die Funktions-, Daten-, ID- und Paritätsleitungen des Systembus 25, welche von der Busschnittstellenschaltung 64 empfangen werden, überwacht, um in einer in der Technik bekannten Art und Weise eine Paritätsprüfung an diesen Signalen durchzuführen. Ein nachgewiesener Paritätsfehler führt zu der Erzeugung einer Paritätsfehleranzeige auf einer Signalleitung 206.
  • Die Informationen auf den ID-Leitungen werden mittels einer Vergleichsschaltung 207 überwacht, welche außerdem von einem festverdrahteten Anschluß 210 an der Rückwandplatine, welcher durch die Lage des Prozessors 31 in einem Montagegehäuse bestimmt ist, mit dem Identifikationscode des Prozessors 31 versorgt wird. Das Vergleichsergebnis aus der Vergleichsschaltung 207 wird zusammen mit Informationen auf der Paritätsfehler-Signalleitung 206 einem Empfangsbestätigungs- Generator 208 zugeführt. Falls kein Paritätsfehler nachgewiesen wurde und falls der für eine Antwortnachricht über den Bus 25 empfangene ID-Code zu dem ID-Code des Prozessors 31 paßt werden am Anfang des zweiten Buszyklus nach jedem Zyklus eines zum Prozessor 31 hingerichteten Antworttransfers mittels eines Empfangsbestätigungs-Generators 208 ACK- Bestätigungen über die CNF-Leitungen des Bus 25 übertragen.
  • Informationen auf den Funktions- und Datenleitungen des Bus 25 werden über die Busschnittstelle 64 einem Antwortdecodierer 212 zugeführt. Der Decodierer 212 wird mittels der Vergleichsschaltung 207 freigegeben, wenn eine Nachricht auf dem Bus 25 für den Prozessor 31 bestimmt ist. Dies wird mittels eines positiven Vergleichsergebnisses von der Vergleichsschaltung 207 festgestellt. Falls der Decodierer 212 mittels der Vergleichsschaltung 207 freigegeben ist, entnimmt der Decodierer 212 den Funktionsleitungen des Systembus 25 Funktionscodes und führt für gewisse Funktionscodes Befehls- und Dateninformationen aus den Datenleitungen des Bus 25 der Prozessorlogikschaltung 202 zu, damit sie geeignet tätig wird.
  • Gemäß der vorliegenden Erfindung wird eine Einrichtung zur Übertragung von Befehlsnachrichten, die Verriegelungslese- und Entriegelungsschreibbefehle umfassen, geschaffen. Wie hierin verkörpert, weist die Übertragungseinrichtung einen Befehlsgenerator 214 auf. Wenn der Prozessor 31 wünscht, eine Transaktion auf den Bus 25 zu starten, werden dem Befehlsgenerator 214 zusammen mit dem von dem Anschluß 212 zugeführten ID dieses Knotens Befehls-, Adressen- und Dateninformationen zugeführt. Der Befehlsgenerator 214 bereitet eine Befehlstransfernachricht vor und beansprucht die CMD REQ-Entscheidungsleitung 216 des Knotens, um der Entscheidungseinrichtung 28 (in Fig. 7 nicht gezeigt) anzuzeigen, daß der Prozessor 31 Zugang zum Bus 25 wünscht, um eine Befehlsnachricht zu übertragen. Unter Verwendung eines Entscheidungssystems gewährt die Entscheidungseinrichtung 28 dem Prozessor 31 zu einer nicht genau bestimmten Zeit nach dem ursprünglichen Verriegelungslesetransfer Buszugang.
  • Bei gewährtem Zugang veranlaßt der Befehlsgenerator 214 die Busschnittstelle 64, die Befehlsnachricht von dem Befehlsgenerator 214 an den Systembus 25 zu übertragen.
  • Der Antwortknoten, an den der Verriegelungslesebefehl gerichtet ist, erzeugt zwei Zyklen nach dem Verriegelungslese- Befehlstransfer eine Empfangsbestätigung. Wie insbesondere in Fig. 7 gezeigt überwacht der Befehlsgenerator 212 CNF- Leitungen, um die Gegenwart einer ACK-Bestätigung auf den CNF-Busleitungen zwei Buszyklen nach jedem Zyklus eines mittels eines Prozessors 31 über den Systembus 25 übertragenen Befehlstransfers nachzuweisen. Ein Ausbleiben des Nachweises der Gegenwart einer ACK-Bestätigung führt zu einer geeigneten Berichtigungshandlung, welche bei der bevorzugten Ausführungsform in einer Rückübertragung des vorangegangenen Befehls besteht. Wenn der Transfer abgeschlossen ist, verarbeitet der Antwortknoten den Verriegelungslesebefehl und gibt eine Antwortnachricht auf den Systembus 25 zurück. Aufgrund von Ungewißheiten bezüglich des Verkehrs auf dem Systembus 25 und der Warteschlangenlängen erzeugt der Antwortknoten eine Antwortnachricht zu einer nicht genau bestimmten Zeit nach dem Befehlstransfer.
  • Gemäß der vorliegenden Erfindung enthält der Befehlsknoten eine Einrichtung, um zu vorbestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeiten Bestätigungsanzeigen, die den Empfang der mittels des Prozessorknotens gestarteten Verriegelungslesebefehle anzeigen, zu empfangen, und um zu nicht genau bestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeiten Verriegelungsstatusnachrichten zu empfangen, die anzeigen, ob die Verriegelungslesebefehle ausgeführt worden sind. Wie in dem in Fig. 7 gezeigten System verkörpert, bilden die Busschnittstelle 64, die Prozessorlogikschaltung 202, die CNF-Leitungen, welche die Busschnittstelle 64 und die Prozessorlogikschaltung 202 miteinander verbinden, und der Antwortdecodierer 212 eine solche Einrichtung.
  • D. Beschreibung des Speichers 39
  • Fig. 8 zeigt ein Blockdiagramm eines Speichers 39, der als Antwortknoten wirken kann. Wie in Fig. 8 zu sehen ist, enthält der Speicher 39 eine Befehlsdecodier-, Adressen- und Paritätsprüfschaltung 300. Die Schaltung 300 ist mit den Busfunktions-, Adressen- und ID-Leitungen verbunden und führt in einer wohlbekannten Weise eine Paritätsprüfung durch. Die Schaltung 300 vergleicht ferner die Informationen auf den Busadressenleitungen mit den aus einem Register 302 zugeführten Grenzen des Adressenraumes, der vom Speicher 39 zur Verfügung gestellt wird, und liefert die Ergebnisse dieses Vergleichs auf einer Adressenanpaßleitung 301. Falls die über den Bus 25 empfangenen Adresseninformationen innerhalb des Bereichs des mittels des Speichers 39 zur Verfügung gestellten Adressenraumes liegt und falls kein Paritätsfehler aufge-treten ist, erzeugt ein Bestätigungsgenerator 304, der mit der Schaltung 300 verbunden ist, eine ACK-Bestätigung, indem er alle drei CNF-Leitungen am Anfang des zweiten Zyklus nach dem Übertragungszyklus eines für den Speicher 39 bestimmten Transfers beansprucht.
  • Gemäß der vorliegenden Erfindung enthält der Speicher eine Einrichtung zum Empfangen von Verriegelungslesebefehlen von den Prozessorknoten. Wie hierin verkörpert, enthält eine derartige Einrichtung eine Eingabewarteschlange 306 zum Speichern von Nachrichten (bestehend aus Befehls-, Adressen- und Dateninformationen), die von Transfers über den Bus 25 via der Busschnittstelle 64 empfangen werden. Die Eingabewarteschlange 306 gestattet es solchen Nachrichten, die mit hoher Geschwindigkeit über den Bus 25 empfangen werden, gespeichert zu werden, bis es die relativ langsamere Logikschaltung des Speichers 39 solchen Nachrichten erlaubt, behandelt zu werden. Die Eingabewarteschlange 306 wird befähigt, eine Nachricht von dem Bus 25 zu speichern, wenn in einer Nachricht auf dem Bus 25 erscheinende Adresseninformationen innerhalb der Grenzen des mittels des Adressenanpaßsignals 301 bestimmten Adressenraums für den Speicher 39 liegen.
  • Gemäß der vorliegenden Erfindung enthält der Antwortknoten eine Einrichtung zum Empfangen von Verriegelungslesebefehlen von Befehlsknoten und zum Übertragen von Empfangsbestätigungen an die Befehlsknoten zu auf den Start der Verriegelungslesebefehle folgenden vorbestimmten Zeiten. Wie in Fig. 8 gezeigt bilden die Busschnittstelle 64, die Eingabewarteschlange 306, die Schaltung 300, die Adressenregisterschaltung 302 und der Empfangsbestätigungsgenerator 304 und CNF- Leitungen innerhalb des Speichers 39 eine derartige Einrichtung.
  • Gemäß der vorliegenden Erfindung weist der Speicher eine Befehlsdecodiereinrichtung zum Entfernen gespeicherter Nachrichten aus der Eingabewarteschlange und zum Erzeugen von Verriegelungslese- und Entriegelungsschreibbefehls- und Adressendaten aus den Nachrichten auf. Wie hierin verkörpert, weist eine solche Einrichtung einen Decodierer 308 auf. Die Ausgabe der Eingabewarteschlange 306 wird einem Decodierer 308 zugeführt, welcher in der Eingabewarteschlange 306 gespeicherten Nachrichten Adressen- und Befehlsinformationen entnimmt. Obwohl der Decodierer 308 mehrere Anzeigen liefert, um die verschiedenen Befehle zu decodieren, und Adresseninformationen auf einem Satz paralleler Signalleitungen bereitstellt, sind die Adressen- und Befehlsausgaben des Decodierers 306 der Ubersichtlichkeit halber in Fig. 8 jeweils als gebündelte Leitungen 309 und 311 dargestellt.
  • Gemäß der vorliegenden Erfindung enthält der Speicher 39 eine Speichereinrichtung zum Speichern von Informationen. Wie hierin verkörpert, enthält die Speichereinrichtung eine Speicheranordnung 312. Wie es in der Technik wohlbekannt ist, werden Informationen an mehreren getrennten Stellen in der Speicheranordnung 312 gespeichert, die mittels Adressen identifiziert werden, welche mittels der Anordnung 312 zugeführter Lese- und Schreibbefehle im einzelnen bestimmt werden können.
  • Gemäß der vorliegenden Erfindung enthält der Speicher 39 eine Verriegelungseinrichtung, die der Speichereinrichtung zugeordnet und zwischen einem entriegelten Zustand und einem verriegelten Zustand betreibbar ist, um den Zugriff auf die Speichereinrichtung zu gestatten, wenn sie sich in einem entriegelten Zustand befindet, und um den Zugriff auf die Speichereinrichtung zu versagen, wenn sie sich in einem verriegelten Zustand befindet. Wie hierin verkörpert, weist die Verriegelungseinrichtung eine Verriegelungssteuerung 310 auf.
  • Gemäß der Erfindung enthält der Speicher ferner eine Befehlseinrichtung, die auf einen Verriegelungslesebefehl von einem der Prozessorknoten anspricht, um eine Verriegelungsstatusanzeige zu erzeugen, die den Zustand der Verriegelungseinrichtung anzeigt, und um die Verriegelungseinrichtung von einem entriegelten Zustand in einen verriegelten Zustand umzuschalten, und die auf einen Entriegelungsschreibbefehl anspricht, um geänderte Informationen an der bestimmten Stelle zu speichern und um die Verriegelungseinrichtung aus dem verriegelten Zustand in den entriegelten Zustand umzuschalten. Wie hierin verkörpert, weist die Befehlseinrichtung die Verriegelungssteuerung 310 und die Speicheranordnung 312 auf.
  • Die Adressen- und Befehlsinformationen werden der Verriegelungssteuerung 310 zugeführt, welche ein Verriegelungsschema ausführt, das später detaillierter zu beschreiben ist. Adressen- und Befehlsinformationen von dem Decodierer 308 werden weiterhin einer Speicheranordnung 312 zugeführt. Die Speicheranordnung 312 spricht auf Lese- und Schreibbefehle an, um Daten von Stellen in der Anordnung 312 zu lesen und Daten an diese Stellen, welche mittels vom Decodierer 308 empfangener Adresseninformationen bestimmt sind, zu schreiben.
  • Gemäß der Erfindung enthält der Speicher 39 eine Statusantworteinrichtung zum Übertragen der Verriegelungsstatusnachricht, die die Verriegelungsstatusanzeige enthält, zu einer nicht genau bestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeit an einen Prozessorknoten, welcher einen Verriegelungslesebefehl erzeugt hat. Vorzugsweise weist der Antwortgenerator eine Antworteinrichtung zum Erzeugen einer ersten Nachrichtenart, die den Inhalt der bestimmten Stelle enthält, wenn sich die Verriegelungseinrichtung im entriegelten Zustand befindet, und einer zweiten Nachrichtenart, die die Unzugänglichkeit der bestimmten Stelle anzeigt wenn sich die Verriegelungseinrichtung im verriegelten Zustand befindet, auf. Wie hierin verkörpert, weist die Statusantworteinrichtung einen Antwortgenerator 316 und eine Ausgabewarteschlange 318 auf.
  • Ein Verriegelungsstatussignal 314 aus der Steuerung 310 und Speicherdaten aus der Speicheranordnung 312 werden dem Antwortgenerator 316 zugeführt, welcher eine Ausgabeantwortnachricht erzeugt, die später detaillierter zu beschreiben ist. Antwortnachrichten aus dem Generator 316 werden einer Ausgabewarteschlange 318 zugeführt, um gespeichert zu werden, bis der Speicher 39 durch den zuvor beschriebenen Entscheidungsprozeß Zugang zum Bus gewinnt.
  • Der Antwortgenerator 360 bereitet aufgrund der vom Speicher 312 empfangenen Daten, des von der Steuerung 310 empfangenen Verriegelungsstatussignals 314 und der vom Decodierer 308 empfangenen Befehls- und ID-Informationen eine Antwortnachricht vor. Die mittels des Generators 316 vorbereitete Antwortnachricht ist von einer von zwei Arten, was davon abhängt, ob es dem Speicher 39 gestattet ist, die angeforderten Daten zuzuführen. Falls der zu beantwortende Befehl ein Nicht-Verriegelungslesebefehl ist, oder falls der Befehl ein Verriegelungslesebefehl ist und das Verriegelungsstatussignal 314 nicht beansprucht ist, bereitet der Antwortgenerator 316 eine erste Art von Nachricht vor, die den angeforderten Inhalt der bestimmten Stelle im Speicher 312 enthält. Falls jedoch der Befehl ein Verriegelungslesebefehl ist und die Verriegelungsstatusleitung 312 beansprucht ist, bereitet der Antwortgenerator 316 die zweite Art von Nachricht mit einem "Verriegelt"-Code auf den Funktionsleitungen vor, der anzeigt, daß die bestimmte Adresse des Verriegelungslesebefehls in einem verriegelten Zustand war und daß die angeforderten Daten nicht in der Antwortnachricht vorgesehen sind, die in Reaktion auf den empfangenen Verriegelungslesebefehl mittels des Speichers 39 übertragen wird.
  • Gemäß der vorliegenden Erfindung enthält der Speicher 39 eine Ausgabewarteschlangeneinrichtung zum Speichern von Antwortnachrichten vom Antwortgenerator 316 und zum Übertragen gespeicherter Antwortnachrichten an den Prozessorknoten 31, nachdem zu nicht genau bestimmten, auf den Start eines entsprechenden Befehls mittels des Prozessors 31 folgenden Zeiten Zugang zum Bus 25 erhalten wurde. Wie hierin verkörpert, enthält eine derartige Einrichtung eine Ausgabewarteschlange 318. Wenn der Generator 316 die Antwortnachricht übersetzt hat, wird sie der Ausgabewarteschlange 318 zugeführt. Die Ausgabewarteschlange 318 signalisiert der Busschnittstelle 64, daß der Speicher 39 Zugang zum Bus 25 wünscht. Die Antwortnachricht wird für eine nicht genau bestimmte Zeit, bis ein solcher Zugang erhalten wird, in der Ausgabewarteschlange 318 gespeichert.
  • Wenn dem Speicher 39 Zugang zum Bus 25 gewährt wird, wird die in der Ausgabewarteschlange 318 enthaltene Antwortnachricht zur Übertragung an den Befehlsknoten, der den Befehl ursprünglich erzeugt hat, auf den Systembus 25 gegeben. Da es nicht bekannt ist, zu welchem Zeitpunkt der Speicher 39 die Ausführung des ursprünglich mittels des Befehlsknotens übertragenen Befehls abgeschlossen haben wird, und da es ferner ungewiß ist, zu welchem Zeitpunkt der Speicher 39 Zugang zum Bus 25 gewinnen wird, um entweder die angeforderten Daten oder die Verriegelungsstatusinformation zu liefern, erscheint die dem Verriegelungslesebefehl entsprechende Verriegelungsstatusinformation zu einer nicht genau bestimmten, auf den Start des ursprünglichen Verriegelungslesebefehls folgenden Zeit auf den Funktionsleitungen des Bus 25 am Befehlsknoten.
  • Falls es einem Befehlsknoten mißlingt, die nach einem erfolgreichen Verriegelungslesebefehl mittels des Antwortknotens erzeugte Antwortnachricht zu empfangen, erzeugt der Befehlsknoten keine Bestätigungsanzeige. Falls es dem Antwortknoten mißlingt, eine Empfangsbestätigung von seiner Antwortnachricht zu empfangen, löscht er das mittels des Verriegelungslesebefehls gesetzte Verriegelungsbit.
  • Gemäß der vorliegenden Erfindung enthält der Speicher 39 eine Einrichtung zum Erzeugen einer ersten Nachrichtenart, die den Inhalt einer bestimmten Stelle enthält, wenn sich die Verriegelungseinrichtung im entriegelten Zustand befindet, und einer zweiten Nachrichtenart, die die Unzugänglichkeit der bestimmten Stelle anzeigt, wenn sich die Verriegelungseinrichtung im verriegelten Zustand befindet. Wie hierin verkörpert, enthält eine solche Einrichtung die Verriegelungsstatusleitung 314, den Antwortgenerator 316, den Decodierer 308 und die Verriegelungssteuerung 310.
  • E. Beschreibung der Verriegelungssteuerung 310.
  • Es wird nun auf Fig. 9 Bezug genommen, in der ein detaillierteres Diagramm der Verriegelungssteuerung 310 gezeigt ist. Gemäß der Erfindung enthält die Verriegelungseinrichtung eine Verriegelungskennzeichnungseinrichtung, um eine ausgewählte Adresse zu empfangen, die einer Adresse in der Speicheranordnung 39 entspricht, von der ein Verriegelungslesebefehl abzuhalten ist. Wie hierin verkörpert, enthält die Verriegelungskennzeichnungseinrichtung vier Verriegelungskennzeichner 352a, 352b, 352c und 352d, welche zusammen mit einer Logiksteuerung 350 die Verriegelungssteuerung 310 bilden. Es versteht sich, daß abhängig von der einzelnen Anwendung mehr oder weniger Verriegelungskennzeichner vorgesehen werden könnten. Die Verriegelungskennzeichner 352a - d stimmen im Aufbau und in der Arbeitsweise überein. Zum Zwecke der Klarheit wird ein detaillierter Schaltungsaufbau lediglich für den Verriegelungskennzeichner 352a gezeigt.
  • Jeder Verriegelungskennzeichner 352a - d enthält ein Speicherregister 354 zum Speichern eines Werts, der einer Stelle im Adressenraum des Systems 20 entspricht. Das Register 354 enthält einen Ausgangsanschluß 356, an dem der im Register 354 gespeicherte Wert erscheint. Das Register 354 enthält einen Freigabeanschluß 358 und einen Eingangsanschluß 360, der mit der Adressenleitung 309 verbunden ist. Die Aktivierung des Freigabeanschlusses 358 veranlaßt das Register 354, die auf den Adressenleitungen 309 vorhandenen Signale zu laden.
  • Der Registerausgangsanschluß 356 ist mit einem Eingangsanschluß 366 eines Vergleichers 368 verbunden. Der Vergleicher 368 weist einen weiteren Eingangsanschluß 370 auf, der mit den Adressenleitungen 309 verbunden ist. Ein Ausgangsanschluß 372 des Vergleichers 368 bildet ein "Passungs"-Signal, das einem Eingangsanschluß einer Zwei-Eingangs-UND- Torschaltung 374 zugeführt wird. Der andere Eingangsanschluß der UND-Torschaltung 374 ist mit einer Entriegelungsschreibleitung 380 der Befehlsleitungen 311 verbunden. Der Ausgangsanschluß der UND-Torschaltung 374 ist mit dem Zurücksetzanschluß eines Auffangspeichers 382 verbunden. Der Ausgangsanschluß des Auffangspeichers 382 bringt ein VERRIEGELT-Signal hervor, das einem Eingangsanschluß 387 einer Zwei-Eingangs-UND-Torschaltung 386 zugeführt wird. Der andere Eingangsanschluß der UND-Torschaltung 386 ist mit dem Passungssignalausgang des Vergleichers 368 verbunden. Der Ausgang der UND-Torschaltung 386 bringt ein "Treffer"-Signal hervor, das anzeigt, daß eine auf Adressenleitungen erscheinende Adresse mittels des Verriegelungskennzeichners 352a "verriegelt" ist.
  • Der letzte Bestandteil des Verriegelungskennzeichners 352a ist eine Vier-Eingangs-UND-Torschaltung 388. Ein Eingang der UND-Torschaltung 388 ist mit einer Leitung 390 der Befehlsleitungen 311 verbunden, die anzeigt daß der gegenwärtig mittels des Speicherknotens 39 verarbeitete Befehl ein Verriegelungslesebefehl ist. Ein zweiter Eingang der UND-Torschaltung 388 ist mit einem Taktsignal 389 verbunden, um die Tätigkeit des Verriegelungskennzeichners 352a geeignet zu steuern und Wettlaufsituationen zu verhindern. Ein dritter Eingang der UND-Torschaltung 388 ist mit einem später zu beschreibenden "Zuweisungs"-Anschluß der Logiksteuerung 350 verbunden. Der vierte Eingangsanschluß der UND-Torschaltung 388 ist mit einem invertierten Verriegelungsstatussignal 314 verbunden. Der Ausgangsanschluß der UND-Torschaltung 388 ist mit dem Freigabeeingang 358 des Registers 354 und dem Setzanschluß des Auffangspeichers 382 verbunden.
  • Die Logiksteuereinrichtung 350 enthält eine Verriegelungskennzeichnungs-Zuweisungsschaltung 392, die als Auswahlcodierer wirkt um einen freien Verriegelungskennzeichner auszuwählen. Die Zuweisungsschaltung 392 ermittelt aufgrund des Status der Verriegelungsbits aus den Verriegelungskennzeichnern 352a - d, welche Verriegelungskennzeichner frei sind, und weist einen der verfügbaren Verriegelungskennzeichner zu, um die Verriegelt-Funktion zu erzeugen, in dem ein "Zuweisungs"-Signal für den ausgewählten Verriegelungskennzeichner aufgestellt wird. Falls gegenwärtig sämtliche Verriegelungskennzeichner zugewiesen sind, wird einem Eingang einer Fünf-Eingangs-ODER-Torschaltung 394 ein "Alle beschäftigt"-Ausgangssignal zugeführt. Den anderen Eingängen der ODER-Torschaltung 394 werden jeweilige "Treffer"-Signale der Verriegelungskennzeichner 352a - d zugeführt.
  • Es wird nun die Wirkung der Verriegelungssteuerung 310 beim Verarbeiten eines Verriegelungslesebefehls beschrieben. Adressenwerte auf Adressenleitungen 309 werden ständig mit gespeicherten Adressenwerten in den Registern 354 verglichen. Falls keiner der in den Registern 354 gespeicherten Adressenwerte gleich den auf den Adressenleitungen 309 erscheinenden Adressenwerten ist, wird kein Passungssignal beansprucht, und es wird kein "Treffer"-Signal beansprucht. Unter der Voraussetzung, daß das "Alle beschäftigt"-Signal der Schaltung 392 ebenfalls nicht beansprucht wird, ist kein Eingang der ODER-Torschaltung 374 aktiv, und die Verriegelungsstatusleitung 314 ist nicht gesetzt. Die Speicheranordnung 312 (Fig. 8) führt dann den Inhalt der bestimmten Stelle dem Antwortgenerator 316 zu. Die Nichtbeanspruchung der Verriegelungsstatusleitung 314 veranlaßt den Antwortgenerator 316, die erste Art einer Antwortnachricht zu erzeugen, bei der ein "gutes Datenlesen"-Code in die Bits der Antwortnachricht gesetzt wird, welche möglicherweise über Funktionsleitungen des Bus 25 an den Befehlsknoten, der sie angefordert hat, übertragen wird.
  • Der invertierte Wert der Verriegelungsstatusleitung 314 wird nun der UND-Torschaltung 388 zugeführt. Die Schaltung 392 liefert eines der Zuweisungssignale der Verriegelungskennzeichner 352a - d. Da ein Verriegelungslesen verarbeitet wird, wird die Verriegelungsleseleitung 390 mittels des Decodierers 308 (Fig. 8) gesetzt. Wenn somit das Taktsignal 389 aktiviert ist, wird die UND-Torschaltung 388 des Verriegelungskennzeichners 352a aktiviert, um das Register 354 freizugeben. Die auf den Adressenleitungen 309 erscheinenden Adressenwerte werden im Register 354 des Verriegelungskennzeichners 352a gespeichert. Eine Aktivierung der UND-Torschaltung 388 setzt ferner den Auffangspeicher 382, was das Verriegelungsbit von 384 des Verriegelungskennzeichners 352a beansprucht. Nachfolgenden Verriegelungslesebefehlen wird nun der Zugriff auf die bestimmte, im Register 354 des Verriegelungskennzeichners 352 enthaltene Stelle versagt.
  • Ein nachfolgender Verriegelungslesebefehl an die verriegelte Stelle führt zu der folgenden Operation. Auf den Adressenleitungen 309 erscheinende Adressenwerte sind den im Register 354 des Verriegelungskennzeichners 352a gespeicherten Werten gleich. Das Anpassungssignal am Anschluß 372 des Verriegelungskennzeichners 352a wird somit gesetzt. Da das Verriegelungsbit am Anschluß 384 für den Verriegelungskennzeichner 352a von der vorangegangenen Verriegelungsleseoperation her gesetzt, sind nun beide Eingänge der UND-Torschaltung 386 aktiv, was das Treffersignal des Verriegelungskennzeichners 352a veranlaßt beansprucht zu werden. Dies wiederum aktiviert die ODER-Torschaltung 394, die Verriegelungsstatusleitung 314 zu aktivieren. Die Aktivierung der Verriegelungsstatusleitung 314 veranlaßt den Antwortgenerator 316 (Fig. 8), eine Antwortnachricht einer zweiten Art zu erzeugen, in der ein VERRIEGELT-Antwortcode auf Funktionsbits der Nachricht gesetzt wird.
  • Es wird nun die Operation eines Entriegelungsschreibbefehls, ein Verriegelungsbit zu löschen, beschrieben. Ein Entriegelungsschreibbefehl zu einer vorher verriegelten Stelle führt dazu, daß die auf den Adressenleitungen 309 vorhandenen Werte einem in einem Register 354 eines Verriegelungskennzeichners gespeicherten Wert gleich sind. Beispielsweise wird angenommen, daß ein Entriegelungsschreibbefehl übertragen worden ist, um eine mittels des Verriegelungskennzeichners 352a verriegelte Stelle zu entriegeln. Wenn der Adressenwert auf den Adressenleitungen 309 erscheint, bewirkt die Ausgabe des Vergleichers 368, daß ein Passungssignal gesetzt wird. Da die Entriegelungsschreibleitung 391 zu diesem Zeitpunkt ebenfalls hoch ist, wird die UND-Torschaltung 374 aktiviert, was den Auffangspeicher 382 veranlaßt das Verriegelungsbit- Signal am Ausgangsanschluß 384 zurückzusetzen. Die UND-Torschaltung 386 ist dann deaktiviert und entfernt das aktive Treffersignal für den Verriegelungskennzeichner 352a aus dem Eingangsanschluß der ODER-Torschaltung 354. Die mit dem Entriegelungsschreibbefehl übertragenen Daten werden dann an die bestimmte Stelle im Speicher geschrieben.
  • Indem vorgesehen wird, daß eine Verriegelungsstatusnachricht zu einer nicht genau bestimmten Zeit nach einem Verriegelungslesebefehl einem Prozessor als Datentransfer über den Systembus zugeführt wird, gestattet es die vorliegende Erfindung, daß die Funktionen der Transferbestätigung und der Verriegelungsstatusübertragung getrennt werden, wodurch für die Anwendung mehrerer Verriegelungsbits ohne den Aufwand und die Komplexität gesorgt ist, welche erforderlich wären, falls Verriegelungsstatusinformationen angefordert würden, um zu einer vorbestimmten Zeit oder über fest überlassene Verriegelungsstatusleitungen übertragen zu werden. Dies erlaubt es ferner, daß Verriegelungsstatusinformationen aus Knoten erhalten werden, die über vom Bussystem getrennte Adapter und Busse an den Systembus angeschlossen sind.
  • Überall in der vorangegangenen Erörterung wurde gesagt, daß verriegelter Speicher oder Adressenraum im einzelnen mittels einer "Stelle" angegeben wird. Es versteht sich, daß jede in einem Register gespeicherte Adresse einen Bereich von Adressen darstellen kann, so daß ein einzelner Verriegelungslesebefehl oder Entriegelungsschreibbefehl einen Bereich von Stellen in der Adresse und nicht nur eine einzelne Stelle verriegeln bzw. entriegeln kann.

Claims (10)

1. System zur Ausführung ausgewählter Lese-Änder-Schreib- Operationen, wobei diese Operationen einen Satz verschiedener Transaktionen aufweisen, die einen Verriegelungslesebefehl, um an einer bestimmten Stelle gespeicherte Informationen wieder aufzufinden und den Zugriff auf die gespeicherten Informationen mittels nachfolgender Verriegelungslesebefehle zu beschränken, und einen Entriegelungsschreibbefehl, Informationen an der bestimmten Stelle zu speichern und den Zugriff auf die gespeicherten Informationen wiederherzustellen, umfassen, wobei das System aufweist:
einen synchronen Hängebus (25);
mehrere mit dem Hängebus verbundene erste Knoten (31), von denen jeder als Befehlsknoten arbeitet und eine Einrichtung zum Starten einer Verriegelungslesebefehls-Nachricht, um an einer bestimmten Stelle Informationen wieder aufzufinden, und einer Entriegelungsschreibbefehls-Nachricht, um geänderte Informationen an die bestimmte Stelle zu schreiben, aufweist; und
einen mit dem Hängebus verbundenen zweiten Knoten (39), der als Antwortknoten arbeitet, wobei der zweite Knoten aufweist:
eine Speichereinrichtung (312), die die bestimmte Stelle enthält, zum Speichern von Informationen;
eine Verriegelungseinrichtung (310), die mit der Speichereinrichtung (312) verbunden und zwischen einem entriegelten Zustand und einem verriegelten Zustand betreibbar ist und die den Zugriff auf die Speichereinrichtung gestattet, wenn sie sich in einem entriegelten Zustand befindet, und die den Zugriff auf die Speichereinrichtung versagt, wenn sie sich in einem verriegelten Zustand befindet;
eine Befehlseinrichtung (310, 312) zum Erzeugen einer Verriegelungsstatusanzeige, die den Zustand der Verriegelungseinrichtung anzeigt und zum Umschalten der Verriegelungseinrichtung aus einem entriegelten Zustand in einen verriegelten Zustand, wenn der Verriegelungslesebefehl empfangen wird, und zum Speichern geänderter Informationen an der bestimmten Speicherstelle und zum Umschalten der Verriegelungseinrichtung aus dem verriegelten Zustand in den entriegelten Zustand, wenn ein Entriegelungsschreibbefehl empfangen wird, und dadurch gekennzeichnet ist, daß:
die ersten Knoten eine Einrichtung (64, 202, 212) aufweisen, mit der zu vorbestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeiten Empfangsbestätigungen, die den erfolgreichen Empfang der mittels der ersten Knoten gestarteten Verriegelungslesebefehle anzeigen, empfangen werden können, und mit der zu nicht genau bestimmten, auf den Start der Verriegelungslesebefehle folgenden Zeiten eine Verriegelungsstatus-Antwortnachricht, die anzeigt, ob die Verriegelungslesebefehle ausgeführt wurden, empfangen werden kann, wodurch der synchrone Hängebus in Zeitabschnitten zwischen dem Befehlsnachrichtentransfer und dem Antwortnachrichtentransfer für andere Knoten als den Befehlsknoten (31) und den Antwortknoten (39) zugänglich gemacht wird, und dadurch, daß der zweite Knoten weiterhin aufweist:
eine Einrichtung (64, 306, 300, 302, 304) zum Empfangen der Verriegelungslesebefehle von den ersten Knoten (31) und zum übertragen der Empfangsbestätigungen an die ersten Knoten zu den auf den Start der Verriegelungslesebefehle folgenden vorbestimmten Zeiten;
eine Statusantworteinrichtung (316, 318) zum Übertragen der Verriegelungsstatusnachricht, die die Verriegelungsstatusanzeige enthält, an einen ersten Knoten (31), welcher zu einer nicht genau bestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeit einen Verriegelungslesebefehl erzeugte, wobei die Verriegelungslesetransaktion einen Befehlstransfer umfaßt der eine mittels eines Befehlsknotens gestartete Verriegelungslesebefehls-Entscheidung, Buszyklen auf dem synchronen Hängebus zu reservieren, eine Verriegelungslesebefehls-Nachricht, die einen Verriegelungslesebefehl umfaßt der während mittels der Befehlsentscheidung reservierter Buszyklen an den Antwortknoten übertragen wird, und eine Befehlsbestätigung, die während mittels der Befehlsentscheidung reservierter Buszyklen von dem Antwortknoten über den synchronen Hängebus übertragen wird, aufweist; wobei die Verriegelungslesetransaktion weiterhin einen Antworttransfer umfaßt der eine mittels des Antwortknotens gestartete Antwortentscheidung, Buszyklen auf dem synchronen Hängebus zu reservieren, eine Verriegelungs-Antwortnachricht, die während mittels der Antwortentscheidung reservierter Buszyklen von dem Antwortknoten über den synchronen Hängebus übertragen wird, und eine Antwortbestätigung die während mittels der Antwortentscheidung reservierter Buszyklen über den synchronen Hängebus an den Antwortknoten übertragen wird, aufweist.
2. System nach Anspruch 1, bei dem die Statusantworteinrichtung (316, 318) eine Einrichtung (316) zum Erzeugen einer ersten Nachrichtenart, die den Inhalt der bestimmten Stelle enthält, wenn sich die Verriegelungseinrichtung im entriegelten Zustand befindet, und einer zweiten Nachrichtenart, die die Unzugänglichkeit der bestimmten Stelle anzeigt wenn sich die Verriegelungseinrichtung im verriegelten Zustand befindet, aufweist.
3. System nach Anspruch 1, bei dem die Speichereinrichtung (312) eine Speicheranordnung aufweist.
4. System nach Anspruch 1, bei dem die Verriegelungseinrichtung (310) eine Verriegelungs-Kennzeichnungseinrichtung (352) zum Empfangen einer ausgewählten Adresse, die einer Adresse im Speichermodul entspricht, zu der ein Verriegelungslesebefehl zurückzuhalten ist, aufweist.
5. System nach Anspruch 4, bei dem die Verriegelungseinrichtung (310) mehrere Verriegelungs-Kennzeichnungseinrichtungen (352) jeweils zum Empfangen einer ausgewählten Adresse aufweist, wodurch Verriegelungslesebefehle zu mehreren Adressenstellen im Speichermodul getrennt zurückgehalten werden können.
6. System nach Anspruch 4, bei dem die Verriegelungs-Kennzeichnungseinrichtung (352) eine ausgewählte Adresse empfängt, die mehreren Adressenstellen in dem Speichermodul (312) entspricht.
7. System nach Anspruch 1, wobei die mehreren ersten Knoten (31) weiterhin eine Einrichtung (214) zum Übertragen von Befehlsnachrichten, die die Verriegelungslese- und Entriegelungsschreibbefehle umfassen, aufweist; und wobei
die Verriegelungsstatusnachrichten Informationen enthalten, wenn sich die bestimmte Stelle in einem entriegelten Zustand befindet, und eine Verriegelt-Antwort enthalten, wenn sich die bestimmte Stelle in einem verriegelten Zustand befindet;
wobei die Vorrichtung weiterhin enthält:
eine Eingabewarteschlangeneinrichtung (306) zum Empfangen dor Verriegelungslesebefehle und Entriegelungsschreibbefehle von den Prozessorknoten (31);
eine Befehlsdecodiereinrichtung (308) zum Entfernen gespeicherter Befehle aus der Eingabewarteschlangeneinrichtung (306) und zum Erzeugen von Vorriegelungslese- und Entriegelungsschreib-Steuer- und Adresseninformationen aus den Befehlen;
eine Speicheranordnung (312), die mehrere Adressenstellen aufweist, die die bestimmte Stelle umfassen und auf die Steuer- und Adresseninformationen aus der Decodiereinrichtung (308) ansprechen, um die gespeicherten Informationen zu speichern und wieder aufzufinden;
wobei die Verriegelungseinrichtung (310) ein Verriegelungsspeicherregister (354) zum Speichern eines Speicheradressenwerts, der Adressenstellen in der Speicheranordnung (312) entspricht, enthält;
wobei die Verriegelungseinrichtung (310) eine Verriegelungssteuereinrichtung enthält, die auf die Verriegelungslese- Steuer- und Adresseninformation aus der Decodiereinrichtung (308) anspricht, um die Verriegelungslese-Adressendaten in dem Verriegelungsspeicherregister (354) unterzubringen, falls die Verriegelungsleseadresse nicht schon im Verriegelungsspeicherregister erscheint, und um eine Speicheranordnungs-Adressenstelle, die den in dem Verriegelungsspeicherregister (354) gespeicherten Adressendaten entspricht, in einen verriegelten Zustand zu versetzen, wobei die Verriegelungssteuereinrichtung (310) auf Entriegelungsschreib-Steuer- und Adressendaten aus der Decodiereinrichtung (308) anspricht, um eine Speicheranordnungs-Adressenstelle, die in dem Verriegelungsspeicherregister (354) gespeicherten Entriegelungsschreibdaten entspricht, in einen entriegelten Zustand zu versetzen, und wobei die Verriegelungssteuereinrichtung (310) auf die Verriegelungslese-Steuerdaten anspricht, um ein Verriegelungsstatussignal zu erzeugen, das dem Zustand einer mittels der Verriegelungslese-Adressendaten bestimmten Speicheranordnungs-Adressenstelle entspricht;
eine auf das Verriegelungsstatussignal ansprechende Generatoreinrichtung (316), mit der eine Antwortnachricht erzeugt wird, die den Inhalt einer mittels Adressendaten eines aus der Eingabewarteschlange (306) abgerufenen Befehls bestimmten Speicheradresse enthält, falls sich die bestimmte Adresse in einem entriegelten Zustand befindet, und mit der eine Antwortnachricht erzeugt wird, die eine Verriegelt-Antwort enthält, falls sich die bestimmte Adresse in einem verriegelten Zustand befindet; und
eine Ausgabewarteschlangeneinrichtung (318) zum Speichern von Antwortnachrichten aus der Generatoreinrichtung (316) und zum Übertragen der gespeicherten Antwortnachrichten zu den Prozessorknoten (31), nachdem zu nicht genau bestimmten Zeiten nachfolgend auf den Start eines entsprechenden Befehls mittels der Prozessorknoten Zugriff auf den Bus (25) erhalten wurde.
8. System nach Anspruch 7, bei dem die Verriegelungssteuereinrichtung die Speicheranordnungs-Adressenstelle in einen entriegelten Zustand zurückversetzt, falls die Anwortnachricht nicht erfolgreich mittels des Prozessorknotens empfangen wird.
9. Verfahren zur Ausführung ausgewählter Lese-Änder-Schreib- Operationen an einem System mit mehreren Befehlsknoten (31) und einem Antwortknoten (39), die mit einem synchronen Hängebus (25) verbunden sind, wobei die Operationen einen Satz verschiedener Transaktionen an dem Hängebus aufweisen, die eine Verriegelungslesetransaktion, an einer bestimmten Stelle gospeicherte Informationen wieder aufzufinden und den Zugriff auf die gespeicherten Informationen mittels nachfolgender Verriegelungslesebefehle zu beschränken, und eine Entriegelungsschreibtransaktion, Informationen an der bestimmten Stelle zu speichern und den Zugriff auf die gespeicherten Informationen wiederherzustellen, umfassen, dadurch gekennzeichnet, daß die Verriegelungslesetransaktion einen Befehlstransfer umfaßt der eine mittels eines Befehlsknotens gestartete Verriegelungslosebefehls-Entscheidung, Buszyklen auf dem synchronen Hängebus zu reservieren, eine Verriegelungslesebefehls-Nachricht, die einen Verriegelungslesebefehl umfaßt der während mittels der Befehlsentscheidung reservierter Buszyklen an den Antwortknoten übertragen wird, und eine Befehlsbestätigung, die während mittels der Befehlsentscheidung reservierter Buszyklen von dem Antwortknoten über den synchronen Hängebus übertragen wird, aufweist; wobei die Verriegelungslesetransaktion weiterhin einen Antworttransfer umfaßt, der eine mittels des Antwortknotens gestartete Antwortentscheidung, Buszyklen auf dem synchronen Hängebus zu reservieren, eine Verriegelungs-Antwortnachricht, die während mittels der Antwortentscheidung reservierter Buszyklen von dem Antwortknoten über den synchronen Hängebus übertragen wird, und eine Antwortbestätigung, die während mittels der Antwortentscheidung reservierter Buszyklen über den synchronen Hängebus an den Antwortknoten übertragen wird, aufweist;
und dadurch, daß das Verfahren die Schritte aufweist:
Starten einer Verriegelungslesebefehls-Nachricht, an der bestimmten Stelle Informationen wieder aufzufinden, mittels des Befehlsknotens (31) über den synchronen Hängebus (25) zu dem Antwortknoten (39), der die bestimmte Stelle enthält;
Übertragen einer Empfangsbestätigung, die den erfolgreichen Empfang des Verriegelungslesebefehls vom Antwortknoten beim Befehlsknoten zu einer vorbestimmten, auf den Start der Verriegelungslesebefehls-Nachricht folgenden Zeit anzeigt;
Freigeben der Steuerung des synchronen Hängebus, um es anderen Knoten als dem Befehlsknoten (31) und dem Antwortknoten (39) zu gestatten, Zugriff auf den synchronen Hängebus (25) zu erhalten;
Überprüfen eines Verriegelungsanzeigers (354) am Antwortknoten und, falls sich der Verriegelungsanzeiger in einem entriegelten Zustand befindet, Umschalten des Verriegelungsanzeigers aus einem entriegelten Zustand in einen verriegelten Zustand;
Übertragen einer Verriegelungsstatus-Antwortnachricht, die dem Zustand des Verriegelungsanzeigers entspricht, zu einer nicht genau bestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeit an den Befehlsknoten; und
Speichern von am Antwortknoten geänderten Informationen an der bestimmten Stelle und Umschalten des Verriegelungsanzeigers aus dem verriegelten Zustand in den entriegelten Zustand beim Empfang eines Entriegelungsschreibbefehls von dem Befehlsknoten.
10. Verfahren nach Anspruch 9, wobei das Verfahren weiterhin die Schritte aufweist:
Empfangen der Verriegelungslesebefehle und Entriegelungsschreibbefehle von dem Prozessorknoten in einer Eingabewarteschlange im Antwortknoten;
Entfernen gespeicherter Befehle aus der Eingabewarteschlange und Erzeugen von Verriegelungslese- und Entriegelungsschreib- Steuer- und Adresseninformationen aus den Befehlen;
Ansprechen auf Verriegelungslese-Steuerinformationen durch Unterbringen der Verriegelungslese-Adresseninformationen in einem Verriegelungsspeicherregister, Setzen eines Verriegelungsbits und Speichern des Inhalts einer Speicheranordnungsstelle, die den Verriegelungslese-Adresseninformationen in einer ersten Art von Antwortnachricht entspricht, in einer Ausgabewarteschlange, falls die Verriegelungslese-Adresseninformationen nicht vorher in dem Verriegelungsspeicherregister gespeichert wurden;
Ansprechen auf Verriegelungslese-Steuerinformationen durch Unterbringen eines Verriegelt-Codes in einer zweiten Art von Antwortnachricht in der Ausgabewarteschlange, falls die Verriegelungslese-Adresseninformationen vorher in dem Verriegelungsspeicherregister gespeichert wurden;
Ansprechen auf Entriegelungsschreib-Steuerinformationen durch Schreiben von Daten in die Speicheranordnung und, falls die Entriegelungsschreib-Adresseninformationen vorher in dem Verriegelungsspeicherregister gespeichert wurden, Zurücksetzen des Verriegelungsbits; und
Übertragen der ersten und der zweiten Art von in der Ausgabewarteschlange gespeicherten Nachrichten zu einer nicht genau bestimmten, auf den Start des Verriegelungslesebefehls folgenden Zeit an den Befehlsknoten.
DE88904801T 1987-05-01 1988-04-27 Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem. Expired - Fee Related DE3882989T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/044,954 US4858116A (en) 1987-05-01 1987-05-01 Method and apparatus for managing multiple lock indicators in a multiprocessor computer system

Publications (2)

Publication Number Publication Date
DE3882989D1 DE3882989D1 (de) 1993-09-09
DE3882989T2 true DE3882989T2 (de) 1994-01-13

Family

ID=21935220

Family Applications (1)

Application Number Title Priority Date Filing Date
DE88904801T Expired - Fee Related DE3882989T2 (de) 1987-05-01 1988-04-27 Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.

Country Status (8)

Country Link
US (2) US4858116A (de)
EP (1) EP0358703B1 (de)
JP (1) JPH02500550A (de)
KR (1) KR920010915B1 (de)
AU (1) AU601590B2 (de)
CA (1) CA1304167C (de)
DE (1) DE3882989T2 (de)
WO (1) WO1988008569A1 (de)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US5006982A (en) * 1988-10-21 1991-04-09 Siemens Ak. Method of increasing the bandwidth of a packet bus by reordering reply packets
US5081572A (en) * 1988-10-28 1992-01-14 Arnold Michael E Manipulation of time-ordered lists and instructions therefor
IT1227711B (it) * 1988-11-18 1991-05-06 Caluso Torino Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo.
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
JP3038781B2 (ja) * 1989-04-21 2000-05-08 日本電気株式会社 メモリアクセス制御回路
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US5669002A (en) * 1990-06-28 1997-09-16 Digital Equipment Corp. Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
AU633724B2 (en) * 1990-06-29 1993-02-04 Digital Equipment Corporation Interlock queueing
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
GB9019023D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station having multiplexing and burst mode capabilities
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5269005A (en) * 1991-09-17 1993-12-07 Ncr Corporation Method and apparatus for transferring data within a computer system
US5359715A (en) * 1991-09-16 1994-10-25 Ncr Corporation Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces
US5430860A (en) * 1991-09-17 1995-07-04 International Business Machines Inc. Mechanism for efficiently releasing memory lock, after allowing completion of current atomic sequence
JPH05210640A (ja) * 1992-01-31 1993-08-20 Hitachi Ltd マルチプロセッサシステム
CA2086691C (en) * 1992-03-30 1997-04-08 David A. Elko Communicating messages between processors and a coupling facility
JP3730252B2 (ja) 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
WO1993022722A1 (en) 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
JPH05324544A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バス制御方法
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US5469575A (en) * 1992-10-16 1995-11-21 International Business Machines Corporation Determining a winner of a race in a data processing system
US5301332A (en) * 1992-12-23 1994-04-05 Ncr Corporation Method and apparatus for a dynamic, timed-loop arbitration
US5506968A (en) * 1992-12-28 1996-04-09 At&T Global Information Solutions Company Terminating access of an agent to a shared resource when a timer, started after a low latency agent requests access, reaches a predetermined value
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp., Tokio/Tokyo System und Verfahren zur Änderung der Namen von Registern
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
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
EP0665501A1 (de) * 1994-01-28 1995-08-02 Compaq Computer Corporation Bus-Master-Arbitrierungsschaltung mit Wiederholungsmechanismus
US5550988A (en) * 1994-03-01 1996-08-27 Intel Corporation Apparatus and method for performing error correction in a multi-processor system
JPH07262140A (ja) * 1994-03-16 1995-10-13 Nec Corp 排他制御装置
US5764995A (en) * 1994-03-25 1998-06-09 Packard Bell Nec Write once read only registers
DE19510068A1 (de) * 1995-03-20 1996-10-02 Siemens Ag Flüssigmetall-Gleitlager
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US6173306B1 (en) 1995-07-21 2001-01-09 Emc Corporation Dynamic load balancing
US5701422A (en) * 1995-12-13 1997-12-23 Ncr Corporation Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US5780828A (en) * 1996-02-15 1998-07-14 Dh Technology, Inc. Interactive video systems
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
US5894562A (en) * 1996-10-28 1999-04-13 Motorola, Inc. Method and apparatus for controlling bus arbitration in a data processing system
JPH10134008A (ja) * 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5735219A (en) * 1996-11-27 1998-04-07 Odawara Automation, Inc. Open base adjustable pallet for supporting work pieces
US5968157A (en) * 1997-01-23 1999-10-19 Sun Microsystems, Inc. Locking of computer resources
DE69733011T2 (de) * 1997-06-27 2005-09-29 Bull S.A. Schnittstellenbrücke zwischen einem Systembus und einem lokalen Bus zur Steuerung wenigstens eines Slave-Gerätes, wie ein ROM-Speicher
US6209073B1 (en) 1998-04-27 2001-03-27 International Business Machines Corp. System and method for interlocking barrier operations in load and store queues
US6374285B1 (en) * 1998-05-15 2002-04-16 Compaq Computer Corporation Method for mutual exclusion of locks in a remote-write globally ordered network of processors
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6421751B1 (en) * 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
US6230230B1 (en) * 1998-12-03 2001-05-08 Sun Microsystems, Inc. Elimination of traps and atomics in thread synchronization
US6745273B1 (en) * 2001-01-12 2004-06-01 Lsi Logic Corporation Automatic deadlock prevention via arbitration switching
US7412572B1 (en) * 2004-03-17 2008-08-12 Sun Microsystems, Inc. Multiple-location read, single-location write operations using transient blocking synchronization support
US8219762B1 (en) * 2004-08-13 2012-07-10 Oracle America, Inc. Computer system and method for leasing memory location to allow predictable access to memory location
US8516035B2 (en) * 2006-06-21 2013-08-20 Apple Inc. Browsing and searching of podcasts
US8412763B2 (en) * 2006-06-21 2013-04-02 Apple Inc. Podcast organization and usage at a computing device
JP4336613B2 (ja) * 2004-04-28 2009-09-30 キヤノン株式会社 画像形成装置およびデータ処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US7496726B1 (en) * 2005-04-18 2009-02-24 Sun Microsystems, Inc. Controlling contention via transactional timers among conflicting transactions issued by processors operating in insistent or polite mode
US8285784B2 (en) * 2005-11-08 2012-10-09 Alcatel Lucent Service creation via presence messaging
US7966362B2 (en) * 2006-06-21 2011-06-21 Apple Inc. Management of podcasts
US7836372B2 (en) * 2007-06-08 2010-11-16 Apple Inc. Memory controller with loopback test interface
US8001328B2 (en) * 2008-01-29 2011-08-16 International Business Machines Corporation Method and process for expediting the return of line exclusivity to a given processor through enhanced inter-node communications
US8479166B2 (en) * 2008-08-25 2013-07-02 International Business Machines Corporation Detecting locking discipline violations on shared resources
US8589603B2 (en) * 2010-08-30 2013-11-19 International Business Machines Corporation Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation
US9032163B2 (en) * 2010-09-22 2015-05-12 Novell, Inc. Data access management
US9560134B1 (en) * 2012-06-27 2017-01-31 Netapp, Inc. Storage array side write locking

Family Cites Families (40)

* 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
US3528061A (en) * 1968-07-05 1970-09-08 Ibm Interlock arrangement
GB1273794A (en) * 1969-07-30 1972-05-10 Int Computers Ltd Improvements in or relating to magnetic recording systems
FR2056894A1 (de) * 1969-07-31 1971-05-07 Cii
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
JPS5319501B2 (de) * 1973-11-21 1978-06-21
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
US4075692A (en) * 1976-01-02 1978-02-21 Data General Corporation Data path configuration for a data processing system
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
US4099243A (en) * 1977-01-18 1978-07-04 Honeywell Information Systems Inc. Memory block protection apparatus
JPS53105139A (en) * 1977-02-24 1978-09-13 Nec Corp Dynamic main memory controller
US4115854A (en) * 1977-03-28 1978-09-19 International Business Machines Corporation Channel bus controller
US4161778A (en) * 1977-07-19 1979-07-17 Honeywell Information Systems, Inc. Synchronization control system for firmware access of high data rate transfer 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
US4384322A (en) * 1978-10-31 1983-05-17 Honeywell Information Systems Inc. Asynchronous multi-communication bus sequence
JPS55134470A (en) * 1979-03-12 1980-10-20 Digital Equipment Corp Data processing system
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4407016A (en) * 1981-02-18 1983-09-27 Intel Corporation Microprocessor providing an interface between a peripheral subsystem and an object-oriented data processor
JPS58107977A (ja) * 1981-12-22 1983-06-27 Toshiba Corp 記憶装置へのアクセス方式
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 相互排他方式
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
JPS59106021A (ja) * 1982-12-10 1984-06-19 Oki Electric Ind Co Ltd バス構成方式
US4543628A (en) * 1983-01-28 1985-09-24 Digital Equipment Corporation Bus for data processing system with fault cycle operation
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
JPS6010384A (ja) * 1983-06-29 1985-01-19 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
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
JPS60107170A (ja) * 1983-11-15 1985-06-12 Nec Corp マルチプロセッサ制御方式
US4709326A (en) * 1984-06-29 1987-11-24 International Business Machines Corporation General locking/synchronization facility with canonical states and mapping of processors

Also Published As

Publication number Publication date
AU601590B2 (en) 1990-09-13
US4858116A (en) 1989-08-15
US5068781A (en) 1991-11-26
JPH02500550A (ja) 1990-02-22
EP0358703A1 (de) 1990-03-21
CA1304167C (en) 1992-06-23
KR920010915B1 (ko) 1992-12-24
EP0358703B1 (de) 1993-08-04
JPH0587855B2 (de) 1993-12-20
AU1728588A (en) 1988-12-02
WO1988008569A1 (en) 1988-11-03
KR890702116A (ko) 1989-12-22
DE3882989D1 (de) 1993-09-09

Similar Documents

Publication Publication Date Title
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3887886T2 (de) Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem.
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE3687426T2 (de) Mehrprozessorsystem-architektur.
DE3114961C2 (de)
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE2854485C2 (de) Datenverarbeitungsanlage
DE2702090C3 (de) Datenverarbeitungssystem mit einem zentralen Prozessor
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
DE69223303T2 (de) Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE69429279T2 (de) Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern
DE69426447T2 (de) Verfahren zur Durchführung von Bustransaktionen in einem Rechnersystem und Rechnersystem
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE3587167T2 (de) Geraet zur vektorverarbeitung.

Legal Events

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