DE3882977T2 - Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem. - Google Patents

Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.

Info

Publication number
DE3882977T2
DE3882977T2 DE88904314T DE3882977T DE3882977T2 DE 3882977 T2 DE3882977 T2 DE 3882977T2 DE 88904314 T DE88904314 T DE 88904314T DE 3882977 T DE3882977 T DE 3882977T DE 3882977 T2 DE3882977 T2 DE 3882977T2
Authority
DE
Germany
Prior art keywords
command
lock
bus
node
response
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
DE88904314T
Other languages
English (en)
Other versions
DE3882977D1 (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
Publication of DE3882977D1 publication Critical patent/DE3882977D1/de
Application granted granted Critical
Publication of DE3882977T2 publication Critical patent/DE3882977T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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

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)
  • Memory System (AREA)
  • Hardware Redundancy (AREA)
  • Control By Computers (AREA)
  • Vehicle Body Suspensions (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die Erfindung betrifft Computersysteme und insbesondere Computersysteme mit Mehrfachprozessoren, die durch einen Hängebus miteinander verbunden sind.
  • Moderne Computersysteme können Mehrfachprozessoren, Speicherbetriebsmittel und Eingangs/Ausgangs(I/O)-Einrichtungen haben, die durch einen allgemeinen Bus miteinander verbunden sind, um eine hohe Gesamtrechenleistung zu erzielen. Derartige Anordnungen können sehr leistungsfähige Systeme ergeben, die fähig sind, viele Millionen von Instruktionen pro Sekunde durchzuführen. Jedoch kann die Zwischenverbindung von Vielfachprozessoren Schwierigkeiten bereiten, wenn es notwendig ist, eine Instruktionssequenz durchzuführen, die als eine Lese-Modifizier-Schreib-Operation (RMW) bekannt ist. In einer RMW-Operation findet ein Prozessor Daten von einem Speicherort wieder, führt eine Operation mit diesen Daten durch und schreibt die modifizierten Daten in den ursprünglichen Speicherort zurück. Unvorhersehbare Ergebnisse können auftreten, die die Datenintegrität berühren, falls ein Prozessor eine RMW-Operation für einen Speicherort gestartet hat und ein zweiter Prozessor versucht, eine RMW-Operation für den gleichen Speicherort während der Zeitperiode zwischen der "Lese"- Operation der RMW-Operation des ersten Prozessors und des "Schreib"-Abschnitts dieser RMW-Operation durchzuführen.
  • Eine Möglichkeit zur Verhinderung der Durchführung von RMW- Operationen an gleichen Speicherorten in Vielfachprozessoren ist es, eine "Verriegelungslese"-Fähigkeit bereitzustellen. Dies beinhaltet den Gebrauch einer "Verriegelungs"-Anzeige, wie beispielsweise einem Verriegelungsbit, das gesetzt wird, wenn der "Lese"-Abschnitt einer RMW-Operation durchgeführt wird, und das nach der Beendigung des "Schreib"-Abschnitts der RMW-Operation zurückgesetzt wird. Ein zweiter Prozessor, der versucht, eine RMW-Operation an einem Speicherort zu initiieren, wenn das Verriegelungsbit gesetzt ist, veranlaßt den Speicher, Verriegelungsstatungsinformationen mittels einer "Besetzt"- oder "Wiederhole"-Bestätigung eine vorbestimmte Anzahl von Buszyklen zurückzusenden, nachdem der zweite Prozessor sein Verriegelungslesekommando generiert hat. Die Besetzt- Bestätigung zeigt dem Prozessor an, daß das zweite Verriegelungs-Lesekommando durch den Speicher nicht akzeptiert worden ist.
  • Die Verriegelungsleseoperation verringert die durch die Vielfachprozessoren verursachten Probleme, von denen jeder versucht eine RMW-Operation durchzuführen. Den Prozessoren wird ein ausgewogener Zugriff auf den Bus für derartige Verriegelungslese-Operationen durch Entscheidungsprozesse gewährt, die beispielsweise einen Round-Robin-Algorithmus verwenden. Es können jedoch immer noch Leistungsengpässe auftreten. Beispielsweise kann unter bestimmten Busverkehrsbedingungen ein bestimmter Prozessor wiederholt auf verriegelte Speicherorte treffen und wird nicht in der Lage sein, den benötigten Zugriff auf die Speicherbetriebsmittel in einer rechtzeitigen Weise zu erhalten. Derartige Probleme können durch das Vorsehen von Vielfachverriegelungsbits für einen Speicherknoten vermindert werden, wobei jedes Verriegelungsbit mit einem Abschnitt des Speicherknotens anstatt mit dem gesamten Speicherknoten verbunden ist. Derartige Vielfachverriegelungsbits stellen eine feinere "Auflösung" der Verriegelungslese-Operationen auf einem Speicherknoten dar, wobei nur ein kleinerer Abschnitt des Speichers nach einer Verriegelungsleseoperation belegt ist. Diese Lösung würde ebenfalls eine höhere Erfolgsrate für die RMW-Operationen erlauben, wodurch der Systemdurchsatz verbessert wird. Jedoch würde die Implementation von Vielfachverriegelungsbits auf bekannten Hängebusvielfachprozessorsystemen in einer nicht akzeptablen komplexen Schalttechnik zum Detektieren und zur Übertragung der Verriegelungsstatusfnformation resultieren.
  • Obwohl die Betonung der vorangegangenen Diskussion auf der Arbeitsweise eines Computersystems lag, das Prozessorknoten, Speicherknoten und I/O-Knoten verwendet, ist eine allgemeinere Diskussion eines derartigen Systems in den Begriffen Befehlsknoten, d. h. Knoten, die eine Transaktion auf einen Bus initiieren, und Antwortknoten, d. h. Knoten, die auf einen durch einen Befehlsknoten initiierte Transaktion antworten, zu führen. Zu verschiedenen Zeiten kann eine einzelne Einrichtung sowohl als ein Befehlsknoten als auch als ein Antwortknoten funktionieren.
  • Es ist wünschenswert, ein Computersystem zu schaffen, in dem die Vorrichtungen über mehrere Busse zwischenverbunden sind, von denen jeder verschiedene Charakteristiken hat. Dies war jedoch in bekannten Hängebussystemen, die Verriegelungslese- Operationen verwenden, in denen Verriegelungsstatusinformation mit einer festen Zeitbeziehung zu dem ursprünglichen Verriegelungslesekommando übertragen wurden, extrem schwierig durchzuführen.
  • Die Aufmerksamkeit wird daher auf zwei bekannte Veröffentlichungen gerichtet. Die EP-0 138 676 offenbart ein System, in dem vielfache Vorrichtungen einen gemeinsamen Kommunikationsweg teilen, der durch eine Einrichtung bereitgestellt wird, in der Vorrichtungen, die nicht in der Lage sind, eine angeforderte Antwort auf eine Transaktion zu liefern, die Beendigung dieser Transaktion bewirken können und diese zu einer nachfolgenden Zeit wiederholen können. Die US-4115854 offenbart einen Kanalbuscontroller zur Übertragung von Informationen zwischen Gruppen von Eingangs/Ausgangskanälen und dem Prozessorspeicher, der auf die Zunahme von Kapazität und Informationen gerichtet ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, einen Antwortknoten in einem Mehrfachprozessorensystem bereitzustellen, der Mehrfachverriegelungsbits und eine vereinfachte Schalttechnik zur Übertragung der Verriegelungsstatusinformation hat.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Antwortknoten in einem Mehrfachprozessorencomputersystem mit Hängebus bereitzustellen, der Verriegelungslese-Operationen aufweist, in denen die Verriegelungsstatusinformation nicht in einer festen Zeitbeziehung zu dem ursprünglichen Verriegelungslese-Kommando übertragen wird.
  • Zusätzliche Aufgaben und Vorteile der Erfindung werden teilweise in der folgenden Beschreibung dargelegt und werden teilweise aus der Beschreibung offensichtlich werden, oder können durch die Verwendung der Erfindung entnommen werden. Die Aufgaben und Vorteile der Erfindung können mittels der Instrumentalisierung und Kombinationen realisiert und erreicht werden, die insbesondere in den beigefügten Ansprüchen dargelegt sind.
  • Die vorliegende Erfindung überwindet die Probleme und Nachteile des Standes der Technik durch das Schaffen eines Antwortknotens, der eine Bestätigung eine vorbestimmte Zeit nach einem Verriegelungslesekommando und eine Verriegelungsstatusnachricht nach einer unspezifizierten Zeit nach der Verriegelungslesenachricht generiert.
  • In Übereinstimmung mit der vorliegenden Erfindung wird eine in dem Anspruch 1 beschrieben Einrichtung und ein in dem Anspruch 5 beschriebenes Verfahren geschaffen.
  • Die beigefügten Zeichnungen, die in der Beschreibung enthalten sind und ein Teil dieser bilden, illustrieren eine Ausführungsform der Erfindung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der vorliegenden Erfindung zu erklären.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm des die vorliegende Erfindung verwendenden datenverarbeitenden Systems;
  • Fig. 2 ist ein Blockdiagramm eines Knotens im datenverarbeitenden System der Fig. 1;
  • Fig. 3 ist ein Zeitdiagramm, das die im datenverarbeitenden System der Fig. 1 verwendeten Taktsignale zeigt;
  • Fig. 4 ist ein Blockdiagramm der Datenschnittstelle 61 im Knoten der Fig. 2;
  • Fig. 5 ist ein Blockdiagramm des Entscheiders im datenverarbeitenden System der Fig. 1;
  • Fig. 6 ist ein Zeitdiagramm, das die auf dem Systembus der Fig. 1 auftretenden Signale während einer Verriegelungslesetransaktion zeigt;
  • Fig. 7 ist ein Blockdiagramm eines Prozessorknotens im datenverarbeitenden System der Fig. 1;
  • Fig. 8 ist ein Blockdiagramm eines Speicherknotens im datenverarbeitenden System der Fig. 1; und
  • Fig. 9 ist ein Blockdiagramm eines Verriegelungscontrollers im Speicherknoten der Fig. 8.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM A. Systemüberblick
  • Fig. 1 zeigt ein Beispiel eines datenverarbeitenden Systems 20, das die vorliegende Erfindung enthält. Das Herz des Systems 20 ist ein Systembus 25, der ein synchroner Bus ist, der die Kommunikation zwischen verschiedenen Prozessoren, Speichersubsystemen und I/O-Systemen erlaubt. Kommunikation über den Systembus 25 wird synchron unter der Verwendung von periodischen Buszyklen durchgeführt. Eine typische Buszykluszeit des Systembus 25 ist 64 ns.
  • In der Fig. 1 wird der Systembus 25 mit zwei Prozessoren 31 und 35, einem Speicher 39, einer I/O-Schnittstelle 41 und einer I/O-Einheit 51 verbunden. Die I/O-Einheit 53 wird mittels des I/O-Bus 45 und der I/O-Einheitsschnittstelle 41 mit dem Systembus 25 verbunden.
  • Ein zentraler Entscheider 28 ist weiterhin in der bevorzugten Ausführungsform des datenverarbeitenden Systems 20 mit dem Systembus 25 verbunden. Der Entscheider 28 liefert verschiedene Takt- und Busentscheidungssignale direkt an die anderen Einrichtungen auf dem Systembus 25 und teilt einige Signale mit diesen Einrichtungen.
  • Die in der Fig. 1 dargestellte Implementation ist die, die gegenwärtig bevorzugt wird und soll nicht notwendigerweise als die vorliegende Erfindung begrenzend interpretiert werden. Beispielsweise kann die I/O-Einheit 53 direkt mit dem Systembus 25 verbunden werden, und der Entscheider 28 muß nicht in der für die vorliegende Erfindung beschriebenen Weise arbeiten.
  • In der zur Beschreibung der vorliegenden Erfindung verwendeten Nomenklatur werden die Prozessoren 31 und 35, der Speicher 39, und die I/O-Schnittstelle 41 und die I/O-Einrichtung 51 alle als Knoten bezeichnet. Ein "Knoten" wird definiert als eine Hardware-Einrichtung, die mit dem Systembus 25 verbunden ist.
  • Entsprechend der zur Beschreibung der vorliegenden Erfindung verwendeten Nomenklatur werden die Ausdrücke "Signale" oder "Leitungen" austauschbar verwendet, um sich auf Namen von physikalischen Drähten zu beziehen. Die Ausdrücke "Daten" oder "Pegel" werden benutzt, um sich auf Werte zu beziehen, die die Signale oder Leitungen annehmen können.
  • Die Knoten führen Übertragungen mit anderen Knoten über den Systembus 25 durch. Eine "Übertragung" stellt eine oder mehrere nacheinander folgende Zyklen dar, die sich einen gemeinsamen Übertrager und gemeinsamen Entscheider teilen. Beispielsweise benötigt eine von einem Knoten initiierte Leseoperation, um Informationen eines anderen Knotens über den Systembus 25 zu erhalten, eine Befehlsübertragung von dem ersten zu dem zweiten Knoten, gefolgt von einer oder mehreren Rückdatenübertragungen von dem zweiten Knoten an den ersten Knoten zu einer etwas späteren Zeit.
  • Eine "Transaktion" wird als die gesamte logische Anforderung definiert, die auf dem Systembus 25 durchgeführt wird und kann mehr als eine Übertragung beinhalten. Beispielsweise ist eine Leseoperation, die aus einer Befehlsübertragung gefolgt von einer oder mehrerer späteren Rückdatenübertragungen, eine Transaktion. In der bevorzugten Ausführungsform des Systembus 25 unterstützen die zulässigen Transaktionen die Übertragung von verschiedenen Datenlängen, und umfassen Lesen, Schreiben (maskiert), Verriegelungslesen, Entriegelungsschreiben, und Unterbrechungsoperationen. Der Unterschied zwischen einem Verriegelungslesen und einem regulären oder Nicht-Verriegelungslesen ist, daß ein Verriegelungslesen auf einen spezifischen Ort die an diesem Ort gespeicherte Information wiederfindet und beschränkt den Zugriff auf die gespeicherte Information durch nachfolgende Verriegelungslesebefehle. Die Zugriffsbeschränkung wird durch das Setzen eines Verriegelungsmechanismus durchgeführt. Ein nachfolgender Entriegelungsschreibebefehl speichert Informationen in dem spezifizierten Ort und stellt den Zugriff auf die gespeicherte Information durch das Rücksetzen des Sperrmechanismus an diesem Ort wieder her. Daher sind die Verriegelungslese/Entriegelungsschreib- Operationen eine Form einer Lese-Modifizier-Schreib-Operation.
  • Da der Systembus 25 ein "Hängebus" ist, fördert er die effiziente Verwendung von Busbetriebsmitteln, indem er anderen Knoten erlaubt, die Buszyklen zu verwenden, die sonst durch das Warten auf Antworten vergeudet werden würden. In einem Hängebus können andere Knoten Zugriffe auf den Bus haben, nachdem ein Knoten eine Transaktion initiiert hat, bevor diese Transaktion vollendet ist. Daher bindet der diese Transaktion initiierte Knoten den Bus nicht für die ganze Transaktionszeit.
  • Dies ist im Gegensatz mit einem Nichthängebus, in dem der Bus für die gesamte Transaktion gebunden ist. Beispielsweise kann in dem Systembus 25, nachdem ein Knoten eine Lesetransaktion initiiert und eine Befehlsübertragung durchgeführt hat, der Knoten, an den diese Befehlsübertragung gerichtet ist, nicht in der Lage sein, die angeforderten Daten sofort zurückzusenden. Zyklen auf dem Bus 25 würden dann zwischen der Befehlsübertragung und der Rückdatenübertragung der Lesetransaktion verfügbar sein. Der Systembus 25 erlaubt anderen Knoten, diese Zyklen zu gebrauchen.
  • Beim Gebrauch des Systembus 25 kann jeder der Knoten verschiedene Rollen annehmen, um die Übertragung von Information zu bewerkstelligen. Eine dieser Rolle ist ein "Befehlsknoten", der als ein Knoten definiert ist, der eine gegenwärtige Transaktion initiiert hat. Beispielsweise ist in einer Schreib- oder Leseoperation der Befehlsknoten der Knoten, der die Schreib- oder Leseoperation anfordert; er ist nicht notwendigerweise der Knoten, der die Daten sendet oder empfängt. In dem bevorzugten Protokoll für den Systembus 25 bleibt ein Knoten als der Befehlsknoten während einer ganzen Transaktion, selbst wenn ein anderer Knoten die Verfügung über den Systembus während bestimmter Zyklen der Transaktion übernimmt. Beispielsweise wird ein Knoten nicht der Befehlsknoten des Bus, obwohl dieser Knoten die Verfügung über den Systembus 25 während der Übertragung von Daten als Antwort auf die Befehlsübertragung einer Lesetransaktion. Dieser Knoten wird dagegen als "Antwortknoten" bezeichnet.
  • Ein Antwortknoten antwortet auf den Befehlsknoten. Beispielsweise würde der Knoten B ein Antwortknoten sein, wenn ein Befehlsknoten eine Schreibeoperation zum Schreiben von Daten vom Knoten A zu dem Knoten B initiiert hat. Zusätzlich kann in einem datenverarbeitenden System 20 ein Knoten gleichzeitig ein Befehlsknoten und ein Antwortknoten sein.
  • Übertrager und Empfänger sind Rollen, die die Knoten bei einer individuellen Übertragungen annehmen können. Ein "Übertrager" wird als ein Knoten definiert, der die Quelle von Informationen ist, die auf dem Systembus 25 während einer Übertragung gegeben werden. Ein "Empfänger" ist das Gegenstück des Übertragers und ist als der Knoten definiert, der die auf den Systembus 25 während einer Übertragung gegebenen Informationen empfängt. Während einer Lesetransaktion kann beispielsweise ein Befehlsknoten zuerst ein Übertrager während der Befehlsübertragung und anschließend ein Empfänger während der Rückdatenübertragung sein.
  • Wenn ein mit dem Systembus 25 verbundener Knoten wünscht, auf dem Systembus 25 ein Übertrager zu werden, aktiviert dieser Knoten eine der zwei Anforderungsleitungen, CMD REQ (Befehlsknotenanforderung) und RES REQ (Antwortknotenanforderung), die zwischen dem zentralen Entscheider 28 und diesem speziellen Knoten verbunden sind. Im allgemeinen benutzt ein Knoten seine CMD-REQ-Leitung, um anzufordern, Befehlsknoten zu werden, und initiiert Transaktionen auf dem Systembus 25, und ein Knoten benutzt seine RES-REQ-Leitung, um ein Antwortknoten zu werden, um Daten oder Nachrichten zu einem Befehlsknoten zurückzusenden. Im allgemeinen stellt der zentrale Entscheider 28 fest, welcher Knoten Zugriff auf den Bus wünscht (d. h. welche Anforderungsleitungen aktiviert sind). Der Entscheider spricht auf eine der aktivierten Anforderungsleitungen an, um dem entsprechenden Knoten Zugriff auf den Bus 25 entsprechend einem Prioritätsalgorithmus zu gewähren. In der bevorzugten Ausführungsform unterhält der Entscheider 28 zwei unabhängige, kreisförmige Warteschlangen: eine für die Befehlsknotenanforderungen und eine für die Antwortknotenanforderungen. Bevorzugterweise haben die Antwortknotenanforderungen eine höhere Priorität als die Befehlsknotenanforderungen und werden vor den Befehlsknotenanforderungen ausgeführt.
  • Die Befehlsknotenanforderungsleitungen und Antwortknotenanforderungsleitungen werden als Entscheidungssignale betrachtet. Wie in der Fig. 1 dargestellt, umfassen die Entscheidungssignale ebenfalls Punkt-zu-Punkt-Bedingte-Gewährsignale vom zentralen Entscheiders 28 an jeden Knoten, Systembuserweiterungssignale zum Implementieren einer Multibuszyklusübertragung und Systembusunterdrückungssignale zum Steuern der Initiierung einer neuen Bustransaktion, wenn beispielsweise ein Knoten, beispielsweise ein Speicher, gegenwärtig nicht in der Lage ist, mit dem Verkehr auf dem Systembus mitzuhalten.
  • Andere Arten von Signalen, die den Systembus 25 bilden können, umfassen Informationsübertragungssignale, Antwortsignale, Steuersignale, Konsole/Bedienpultsignale und einige verschiedene Signale. Die Informationsübertragungssignale umfassen Datensignale, Funktionssignale, die die auf den Systembus 25 während eines gegenwärtigen Zyklus durchzuführende Funktion darstellen, Identifiziersignale, die den Befehlsknoten identifizieren, und Paritätssignale. Die Antwortsignale umfassen im allgemeinen Quittungs- oder Bestätigungssignale von einem Empfänger, um den Übertrager vom Status des Datentransfers zu benachrichtigen.
  • Die Steuersignale umfassen Taktsignale, Warnsignale, wie diejenigen, die zu niedrige Leitungsspannungen oder niedrige DC- Spannungen identifizieren, während der Initialisierung verwendete Rücksetzsignale, Knotenfehlersignale, Voreinstellungssignale, die während leer laufender Buszyklen verwendet werden und Fehlervoreinstellungssignale. Die Konsole/Bedienplatzsignale umfassen Signale zum Übertragen und Empfangen serieller Daten an eine Systemkonsole, Bootsignale zur Steuerung des Verhaltens eines Bootsprozessors während des Anfahrens, Signale zum Freigeben der Modifizierung eines löschbaren PROMs des Prozessors auf dem Systembus 25, ein Signal zur Steuerung einer Betriebslampe an dem Bedienplatz und Signale, die Batterieleistung an die Taktlogik bestimmter Knoten liefern. Die verschiedenen Signale, zusätzlich zu den unbelegten Signalen, umfassen Identifikationssignale, die es jedem Knoten erlauben, seinen Identifikationscode zu definieren.
  • Fig. 2 zeigt ein Beispiel eines mit dem Systembus 25 verbundenen Knotens 60. Der Knoten 60 kann ein Prozessor, ein Speicher, eine I/O-Einheit oder eine I/O-Schnittstelle sein. In dem in der Fig. 2 gezeigten Beispiel umfaßt der Knoten 60 eine knotenspezifische Logik 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 die mit dem Systembus 25 verbundene Knoten. Die knotenspezifische Logik 65, die verschiedene integrierte Schaltungen der Systembusschnittstelle 64 verwendet, umfaßt vorzugsweise zusätzlich zu den von einem Anwender entworfenen Schaltungen zur Ausführung der spezifischen Funktionen eines Knotens, Standardschaltungen, um mit dem Knotenbus 67 über eine Schnittstelle verbunden zu sein. Im allgemeinen ist die Datenschnittstelle 61 die primäre logische und elektrische Schnittstelle zwischen dem Knoten 60 und dem Systembus 25. Der Taktdecodierer 63 liefert Taktsignale an den Knoten 69, die auf den zentral generierten Taktsignalen basieren, und der Knotenbus 67 liefert eine Hochgeschwindigkeitsschnittstelle zwischen der Datenschnittstelle 61 und der knotenspezifischen Logik 65.
  • In der bevorzugten Ausführungsform des Knotens 60 und der Systembusschnittstelle 64, dargestellt in der Fig. 2, enthält der Taktdecodierer 63 Steuerschaltungen zum Bilden von Signalen, um diese auf den Systembus 25 zu geben und verarbeitet von dem zentralen Entscheider 28 empfangene Taktsignale, um Taktsignale für die knotenspezifische Logik 65 und die Datenschnittstelle 61 zu erhalten. Da die von dem Taktdecodierer 63 erhaltenen Taktsignale die zentral generierten Taktsignale verwendet, wird der Knoten 60 synchron mit dem Systembus 25 arbeiten.
  • Fig. 3 ist ein Zeitdiagramm, welches einen Buszyklus, die von dem Taktdecodierer 63 empfangenen Taktsignale und bestimmte, von dem Taktdecodierer 63 generierte Taktsignale zeigt. Die von dem Taktdecodierer 63 empfangenen Taktsignale weisen ein Zeitsignal H, ein Zeitsignal L, und ein Phasensignal auf, wie es in der Fig. 3 dargestellt ist. Die Zeit H und die Zeit L sind Inverse der Grund-Taktsignale und das Phasensignal wird durch die Division des Grund-Taktsignales durch 3 erhalten. Die von dem Taktdecodierer 63 generierten Taktsignale umfassen C12, C23, C34, C45, C56 und C61-Signale, die alle in der Fig. 3 gezeigt sind. Diese von der Datenschnittstelle 61 benötigten Taktsignale, die einmal pro Buszyklus auftreten, werden der Datenschnittstelle 61 geliefert, und ein kompletter Satz von Taktsignalen, einschließlich der der Datenschnittstelle 61 gelieferten Äquivalenten der Taktsignale, werden gepuffert und der knotenspezifischen Logik 65 geliefert. Der Zweck des Pufferns ist es sicherzugehen, daß die knotenspezifische Logik 65 nicht nachteilig die Arbeitsweise der Systembusschnittstelle 64 durch ungenaues Laden der Taktsignale beeinflussen kann. Der Taktdecodierer 63 verwendet die Taktsignale, um 6 Subzyklen für jeden Buszyklus zu kreiern, und verwendet dann die Subzyklen, um 6 Taktsignale CXY zu kreiern, wobei X und Y zwei benachbarte Subzyklen repräsentieren, die kombiniert werden, um ein Zeitsignal zu bilden.
  • Jeder Knoten in dem Systembus hat seinen eigenen entsprechenden Satz von durch seinen Taktdecodierer 63 generierten Taktsignale. Während nominell die entsprechenden Signale zu exakt der gleichen Zeit in jedem Knoten durch das ganze System hindurch auftreten, führen Variationen zwischen dem Taktdecodierer 63 und anderen Schaltungen in Vielfachknoten Zeitvariationen zwischen entsprechenden Signalen ein. Diese Taktvariationen sind allgemein als "Taktschieflage" bekannt.
  • Fig. 4 zeigt eine bevorzugte Ausführungsform der Datenschnittstelle 61. Die Datenschnittstelle 61 umfaßt sowohl Zwischenspeicherschaltungen als auch eine Bustreiberschaltung, um eine bidirektionale und Hochgeschwindigkeitsschnittstelle zwischen jeder Leitungen des Knotenbus 67 und jeder Leitung des Systembus 25 bereitzustellen. Wie es in der Fig. 4 dargestellt ist, umfaßt die Datenschnittstelle 61 vorzugsweise Speicherelemente 70 und 72 und einen Systembustreiber 74, um einen Kommunikationsweg vom Knotenbus 67 zum Systembus 25 zu liefern. Wie er bereits in der Beschreibung der Datenschnittstelle 61 gebraucht wurde, bezieht sich der Ausdruck "Speicherelement" allgemein auf bistabile Speichereinrichtungen, wie beispielsweise ein transparentes Latch oder ein Master- Slave-Speicherelement, und nicht auf eine spezifische Implementation. Der Fachmann wird erkennen, welche Typen von Speicherelementen geeignet sind.
  • Nach der Fig. 4 ist der Eingang eines Speicherelements 70 zum Empfang von Daten vom Knotenbus 67 mit diesem und der Ausgang mit dem Eingang des Speicherelements 72 verbunden. Der Ausgang des Speicherelements 72 ist mit dem Eingang des Systembustreibers 74 verbunden, dessen Ausgang mit dem Systembus 25 verbunden ist. Speicherelemente 70 und 72 werden durch entsprechende Knotenbussteuersignale 76 und 78 gesteuert, die aus den von dem Taktdecodierer 63 generierten Taktsignale abgeleitet werden. Die Speicherelemente 70 und 72 bilden einen zweistufigen Zwischenspeicher zum Pipelinen von Daten von dem Knotenbus 67 zu dem Systembus 25. Verschiedene Anzahlen von Speicherstufen können ebenfalls verwendet werden.
  • Der Systembustreiber 74 wird durch das Systembustreiberfreigabesignal 79 gesteuert. Entsprechend dem Zustand des Systembustreiberfreigabesignals 79, wird der Eingang des Systembustreibers 74 entweder mit seinem Ausgang verbunden, wobei die Daten am Ausgang des Speicherelements 72 zu dem Systembus 25 übertragen werden, oder von diesem Ausgang entkoppelt. Wenn die Systembusfreigabe 79 den Eingang und Ausgang des Systembustreibers 74 entkoppelt, bildet der Systembustreiber 74 gegenüber dem Systembus 25 eine hohe Impedanz. Das Systembustreiberfreigabesignal 79 wird ebenfalls von dem Taktdecodierer 63 in Übereinstimmung mit den vom Systembus 25 empfangenen Taktsignalen und den von der knotenspezifischen Logik 65 empfangenen Steuersignale generiert.
  • Der Eingangsanschluß des Speicherelements 80 ist mit dem Systembus 25 verbunden und der Ausgangsanschluß mit dem Eingang des Knotenbustreibers 82 verbunden. Der Ausgang des Knotenbustreibers 82 wird zurück mit dem Knotenbus 67 verbunden. Das Speicherelement 80, vorzugsweise ein transparentes Latch, wird von einem Systembuslatchsteuerungssignal 85 gesteuert, welches aus den vom Taktdecodierer 63 generierten Taktsignalen abgeleitet wird. Ein Knotenbustreibersignal 87 steuert den Knotenbustreiber 82 in gleicher Weise, in der das Systembustreibersignal 79 den Systembustreiber 74 steuert. Daher, als Antwort auf das Knotenbustreibersignal 87, koppelt der Knotenbustreiber 82 entweder seinen Eingang mit seinem Ausgang oder entkoppelt seinen Eingang von seinem Ausgang und bildet gegenüber dem Knotenbus 67 eine hohe Impedanz.
  • Um zu erklären, wie Daten über den Systembus 25 übertragen werden, ist es wichtig, die Beziehung zwischen der Systembustreiberfreigabesignal 79 und dem Steuerungssignal 85 zu verstehen. In der vorliegenden Ausführungsform wird diese Beziehung in der Fig. 3 gezeigt. Die Systembustreiberfreigabe 79 wird nominell von dem Anfang des Endes eines Buszyklus getrieben. Die neuen Daten werden zum Empfang von dem Systembus 25 einige Zeit später im Buszyklus erhältlich, nachdem die Treiberfortpflanzungszeit und die Busberuhigungszeit verstrichen ist. In der vorliegenden Ausführungsform ist das Speicherelement 80 ein transparentes Latch. Das Steuerungssignal 85 ist logisch mit dem Takt C45 äquivalent. Das Bustakten stellt sicher, daß die Daten des Systembus 25 einige Zeit vor dem Deaktivieren des Steuerungssignals 85 zum Empfang erhältlich werden. Das Speicherelement 80 speichert die Busdaten, die zumindest eine Einrichtungszeit vor der Deaktivierung des Steuerungssignals 85 stabil sind und eine Haltezeit nach der Deaktivierung des Steuersignals 85 stabil bleiben.
  • Der Knotenbus 67 ist vorzugsweise ein schneller Hochgeschwindigkeitsdatenbus, der bidirektionelle Datenübertragung zwischen der knotenspezifischen Logik 65 und dem Systembus 25 über eine Datenschnittstelle 61 ermöglicht. In der bevorzugten Ausführungsform des in der Fig. 2 gezeigten Knotens 60, ist der Knotenbus 67 ein Zwischenverbindungssystem bestehend aus Punkt-zu-Punkt-Verbindungen zwischen der Systembusschnittstelle 64 und der knotenspezifischen Logik 65. In Übereinstimmung mit der vorliegenden Erfindung jedoch gibt es keine Notwendigkeit für eine derartige Punkt-zu-Punkt-Zwischenverbindung.
  • Fig. 5 zeigt eine bevorzugte Ausführungsform des zentralen Entscheiders 28, der ebenfalls mit dem Systembus 25 verbunden ist. Der zentrale Entscheider 28 liefert die Taktsignale für den Systembus 25 und gewährt den Knoten auf dem Systembus 25 Verfügungsgewalt über den Bus. Der zentrale Entscheider 28 weist vorzugsweise eine Entscheidungsschaltung 90, eine Taktschaltung 95 und einen Oszillator 97 auf. Der Oszillator 97 generiert die Grund-Taktsignale. Die Taktschaltung 95 liefert die Taktsignale für die Entscheidungsschaltung 90 und die Basiszeit H, Zeit L und die Phasentaktsignale zum Takten auf dem Systembus 25. Die Entscheidungsschaltung 90 empfängt die Befehlsknoten- und Antwortknotenanforderungssignale, entscheidet Konflikte zwischen Knoten, die Zugriff auf den Systembus 25 wünschen, und unterhält die im vorangegangenen genannten Warteschlangen für die Befehlsknoten- und Antwortknotenanforderungen. Die Entscheidungsschaltung 90 liefert ebenfalls bestimmte Taktsignale an die Taktschaltung 95.
  • B. Diskussion der Verriegelungsoperationen
  • Wie im vorangegangenen kurz diskutiert wurde, sind eine Anzahl von verschiedenen Typen von Transaktionen auf dem Bus 25 erlaubt. In jedem Falle ist eine Transaktion aus einer oder mehreren separaten Übertragungen von einem Knoten zu einem anderen zusammengesetzt. Wenn der Antwortknoten erfolgreich eine Befehlsübertragung während einer oder mehrerer Buszyklen empfangen hat, generiert er eine Bestätigungsquittung zu Beginn des zweiten Buszyklusses nach jedem Zyklus der Übertragung. Derartige Bestätigungssignale zeigen keine erfolgreiche Durchführung des in der ursprünglichen Übertragung enthaltenen Befehls an, sondern zeigen nur an, daß die Übertragung erfolgreich in einer Eingangswarteschlange im gewünschten Antwortknoten abgelegt worden ist. Die für die vorliegende Erfindung wesentlichen Transaktionen werden im folgenden kurz diskutiert.
  • Eine Lesetransaktion wird zur Bewegung von Daten in 4-Byte-, 8-Byte-, 16-Byte- oder 32-Byte-Blöcken von einem spezifischen Ort in einem Antwortknoten, der einen Bereich von Adreßraum verwaltet, zu einen Befehlsknoten verwendet. In der bevorzugten Ausführungsform beziehen sich Speicher- und I/O-Operationen auf einen gemeinsamen Adreßraum. Ein Antwortknoten kann sowohl ein Speicherknoten als auch ein Prozessorknoten oder ein I/O-Knoten sein.
  • Verriegelungslesetransaktionen sind ähnlich den Lesetransaktionen. Jedoch hängt der exakte Effekt einer Verriegelungslesetransaktion von dem Zustand der Verriegelungsmarken in dem Antwortknoten in einer Weise ab, die genauer später beschrieben wird. Verriegelungsmarken verhindern den Zugriff auf Orte oder Gruppen von Orten im Adreßraum. Der Effekt von Verriegelungsmarken kann durch die Vorstellung verstanden werden, daß der Adreßraums des Systems 20 über eine metallene "Tafel" erscheinen würde. Verriegelungsmarken wirken wie magnetische Markierungen, die an der Spitze von Orten oder Gruppen von Orten des "Tafel"-Adreßraums entfernbar plaziert sind. Falls der in einer Verriegelungslesetransaktion spezifizierte Ort im Adreßraum bereits mit einer Verriegelungsmarke versehen ist, d. h. falls der spezifizierte Adreßraum "verriegelt" ist, antwortet der Antwortknoten auf die Verriegelungsleseanforderung mit einer "Verriegelt"-Antwortnachricht und es werden keine Daten zurückgegeben. Dies signalisiert dem Befehlsknoten, daß der Ort im Adreßraum, der in dem Verriegelungslesebefehl spezifiziert wurde, nicht zugreifbar ist. Diese Verriegelungsantwortnachricht wird zu dem Befehlsknoten übertragen, nachdem der Antwortknoten den Verriegelungslesebefehl bedient hat und nachdem der Antwortknoten Zugriff auf den Bus 25 erlangt hat. Daher empfängt der Befehlsknoten die Verriegelungsantwortnachricht zu einer unspezifizierten Zeit nach der Befehlsübertragung der Verriegelungslesetransaktion.
  • Falls der spezifizierte Ort nicht verriegelt ist, d. h. nicht mit einer Verriegelungsmarke versehen ist, wird die in der durch den Verriegelungslesebefehl spezifizierte Adresse gespeicherte Information in einer Antwortnachricht an den Befehlsknoten zurückgesendet, der den Verriegelungslesebefehl generiert hat. Der Antwortknoten bringt ebenfalls eine Verriegelungsmarke an den in dem Verriegelungslesebefehl spezifizierten Ort im Adreßraum an, wodurch der Zugriff auf den spezifizierten Ort in dem Adreßraum für nachfolgende Verriegelungslesebefehle verhindert wird.
  • Die Entriegelungsschreibtransaktion ist das Komplement zu der Verriegelungslesetransaktion. Wenn ein Befehlsknoten erfolgreich die Lese-und-Modifizieroperation in einer Lese-Modifizier-Schreib-Operation vollendet hat, muß er den Ort im Adreßraum, der vorübergehend durch einen Verriegelungslesebefehl verriegelt war, entriegeln. Der Befehlsknoten bewerkstelligt diese Operation durch die Durchführung einer Entriegelungsschreibtransaktion auf den spezifizierten Ort im Adreßraum, um die entsprechend modifizierten Daten in den spezifizierten Ort zu schreiben. Der Antwortknoten verarbeitet den Entsperrschreibbefehl, wie verlangt, durch das Entsperren des Adreßraum und das Schreiben der Daten. Die Verriegelungsmarke wird dann in einer Weise gelöscht, die genauer später beschrieben wird.
  • Die über den Bus 25 während einer Verriegelungslesebefehlsübertragung übertragenen Nachrichten umfassen Daten auf 64 Datenleitungen. Diese Daten enthalten ein 4-Bit-Befehlsfeld, ein 2-Bit-Längenfeld, das die Anzahl der zu übertragenden Wörter beispielsweise vom Speicher 39 zum Prozessorknoten 31 spezifiziert, und ein 32-Bit-Adressenfeld, das den Adreßort im Speicher 39 spezifiert, von dem Daten zu lesen gewünscht werden. Andere informationstragende Leitungen des Systembus 25 während eines Verriegelungslesebefehls umfassen 4 Funktionsleitungen, die einen 4-Bit-Funktionscode tragen, der eine Befehlsübertragung anzeigt, 6 ID-Leitungen, die einen 6-Bit-Code zur Identifizierung des Befehlsknotens tragen, der den Verriegelungslesebefehl initiiert hat, und 3 Paritätsleitungen.
  • Wie im vorangegangenen kurz diskutiert wurde, umfaßt der Systembus 25 Antwortsignale, die von einem Empfänger benutzt werden, um den erfolgreichen Empfang der von dem Übertrager auf den Bus gelegten Information anzuzeigen. In der bevorzugten Ausführungsform umfassen die Antwortsignale 3 identische, ODER-verdrahtete Bestätigungsleitungen (CNF). Drei Leitungen werden vorgesehen, da es für die Integrität der Bustransaktionen ungeheuer wichtig ist, daß ein Befehlsknoten exakt weiß, was ein Empfangsknoten als Antwort auf jeden Befehl getan hat, insbesondere in dem Fall eines Verriegelungsbefehls oder eines Schreibens in ein I/O-Register. Daher wird der Empfänger entweder eine Bestätigungsanzeige (ACK) durch das Aktivieren aller drei CNF-Leitungen oder ein Nichtbestätigungssignal (NACK) durch das Nichtaktivieren aller drei CNF-Leitungen senden. Eine Fehlerkorrekturlogik ist in dem Empfänger vorgesehen, um den wahren CNF-Status zu bestimmen, falls alle drei CNF-Leitungen von dem Empfänger nicht an demselben Logikpegel empfangen werden.
  • Eine ACK-Bestätigung zeigt an, daß ein Antwortknoten die Information aus einem Zyklus der Befehlsübertragung akzeptiert hat, oder daß ein Befehlsknoten die Information aus einem Zyklus einer Antwortnachricht akzeptiert hat. Ein Lesebefehlsübertragungszyklus, der in einer ACK-Bestätigungsanzeige resultiert, zeigt an, daß der Antwortknoten eine Leseantwortnachricht einige Zeit später zurücksenden wird.
  • Eine auf den CNF-Leitungen zurückgesendete NAK-Bestätigung zeigt an, daß kein Empfänger die Information aus diesem Buszyklus der Befehlsübertragung akzeptiert hat. Dies kann drei Gründe haben: (1) ein Paritätsfehler ist auf dem Systembus 25 aufgetreten, (2) der Empfänger war vorübergehend nicht in der Lage, den Befehl zu akzeptieren, beispielsweise, wenn die Eingangswarteschlange des Empfängers voll ist, oder (3) es gibt keinen der spezifizierten Adresse entsprechenden Antwortknoten.
  • Die Bestätigungsanzeigen entsprechend einem Buszyklus werden von den CNF-Leitungen durch den Empfängerknoten auf den Bus zu Beginn des zweiten Zyklus nach dem Zyklus des Buszyklusses gegeben.
  • Ein Beispiel einer Verriegelungslesetransaktion wird im Zusammenhang mit der Fig. 6 beschrieben. Die horizontale Achse im oberen Teil der Fig. 6 zeigt nacheinander folgende Buszyklen auf dem Bus 25. Die vertikal entlang der linken Seite der Fig. 6 auftretenden Abkürzungen zeigen Gruppen von in dem Bus 25 enthaltenen Leitungen an, d. h. Funktionsleitungen, Datenleitungen, ID-Leitungen, Bestätigungsleitungen und Entscheidungsleitungen. Die Einträge in dem durch die horizontale und vertikale Achse der Fig. 6 gebildete Matrix beschreiben den Typ von Daten, die auf den spezifizierten Busleitungen während der spezifizierten Buszyklen auftreten.
  • Im Buszyklus 0 aktiviert ein erster Befehlsknoten, beispielsweise Knoten 31 der Fig. 1, seine CMD REQ-Entscheidungsanforderungsleitung (eine der Punkt-zu-Punkt-Leitungen, die mit dem Entscheider 28 verbunden und in der Fig. 1 dargestellt sind) zum Entscheider 28. Die Fig. 6 zeigt daher die Anwesenheit einer "CMDR #1"-Anforderung auf den Entscheidungsleitungen des Systembus 25 im Zyklus 1 an. Angenommen, daß kein anderer Knoten höherer Priorität gleichzeitig Zugriff auf den Bus anfordert, erhält der Prozessor 31 Buszugriff im Zyklus 1 und überträgt eine Nachricht in dem Systembus 25.
  • Während des Zyklus 1 zeigt die auf den Funktionsleitungen des Bus 25 gelegte Information an, daß die Information auf dem Bus eine Befehlsinformation (cmd) ist. Diese auf den Datenleitungen des Bus 25 gelegten Daten bestehen aus Befehls- und Adreßdaten (c/a), die die laufende Transaktion als eine Verriegelungslesetransaktion identifizieren und die Adresse im Speicher 39 spezifizieren, von der Daten zu dem Prozessor 31 zurückgesendet werden sollen. Die ID-Leitungen während des Bus-Zyklus 1 enthalten den Identifikationscode des Prozessor (Befehls-/cmdr) Knotens 31, der gegenwärtig auf dem Bus 25 sendet.0
  • Während des Buszyklus 2 wird keine Information in Zusammenhang mit der gegenwärtigen Verriegelungslesetransaktion auf den Bus 25 gelegt.
  • Mit dem Beginn des Buszyklus 3, also zwei Zyklen (d. h. eine vorbestimmte Zeit) nach der Initiierung der Verriegelungslesetransaktion, überträgt der Speicherknoten 39 eine ACK-Bestätigung auf den Bestätigungsleitungen des Bus 25, falls der Speicher 39 erfolgreich die Befehlsübertragung empfangen hat, die während des ersten Buszyklus übertragen wurde. Der Speicher 39 legt dann die Befehlsnachricht in die Eingangswarteschlange des Speichers 39.
  • Das Ende des Buszyklusses 3 bildet das Ende der ersten Übertragung in der Verriegelungslesetransaktion. Entsprechend der Hängenatur der Transaktionen auf den Bus 25 ist die Zeit, wann die angeforderte Information vom Speicher 39 zum Prozessor 31 zurückgesendet werden wird, nicht präzise definiert. 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 der Menge von Zeit, die für den Systembus 25 notwendig ist, den zusätzlichen Verkehr auf den Bus zu handhaben, der von anderen Knoten generiert wird. Die unspezifizierte Natur der Zeit zwischen den zwei Übertragungen der Verriegelungslesetransaktion wird durch die gepunktete Linie in der Fig. 6 zwischen den Buszyklen 3 und 4 angezeigt. Daher muß, obwohl in der Fig. 6 gezeigt ist, daß nachfolgende Informationen während den Buszyklen 4 und 7 auftreten, betont werden, daß dies nur ein spezifisches Beispiel der in einer Verriegelungslesetransaktion involvierten Zeiten ist, und daß die zweite Übertragung einer derartigen Transaktion in einem beliebigen nachfolgenden Zyklus des Bus 25 auftreten kann.
  • Der Speicher 39 verarbeitet den Verriegelungslesebefehl durch das Entfernen der Verriegelungsleseübertragungsnachricht von seiner Eingangswarteschlange und das Prüfen der in der Übertragung enthaltenen Adreßinformation. Die Information wird mit den in den Verriegelungsmarken gespeicherten Adreßwerten verglichen, was genauer beschrieben wird. Falls es eine Übereinstimmung zwischen den gespeicherten Adreßwerten und der Adreßinformation der Verriegelungsleseübertragung gibt, ist dies eine Anzeige dafür, daß der gewünschte Adreßort von einem vorangegangenen Verriegelungslesebefehl verriegelt wurde. Der Speicher 39 generiert darauf eine Verriegelungsantwortnachricht einschließlich eines "Verriegelt"-Funktionscodes, zusammen mit anderen Informationen, die für eine Antwortnachricht benötigt werden, in einer Ausgangswarteschlange des Speicherknotens 39.
  • Falls der Vergleich der in den Verriegelungsmarken gespeicherten Adreßwerte mit den Adreßinformationen der Verriegelungsleseübertragung keinen "Treffer" ergibt, d. h. falls die übertragene Adresse nicht zu irgendeiner gespeicherten Adresse korrespondiert, bildet der Speicherknoten 39 eine Antwortnachricht, bestehend aus einem Gültig-Leseantwortknoten wie beispielsweise einen "Erfolgreiches Datenlesen"-Code (GRD 0) für die Funktionsleitungen, die Inhalte des spezifizierten Adreßortes für die Datenleitungen und den Befehlsknotenidentifikationscode des Befehlsknotens, der die Verriegelungslesebefehle für die ID-Leitungen initiiert hat. Diese Antwortnachricht wird in die Ausgangswarteschlange des Speicherknotens geladen.
  • Wenn der Speicher 39 die Verriegelungslesetransaktion verarbeitet hat und die Antwortnachricht innerhalb seiner Ausgangswarteschlange in einer Weise, die genauer beschrieben wird, generiert hat, aktiviert der Speicher 39 seine RES REQ- Anforderungsleitung (eine weitere in der Fig. 1 gezeigte Punkt-zu-Punk-Leitung) zum Entscheider 28. Die Entscheidungsleitung trägt daher eine in der Fig. 6 gezeigte Antwortknotenanforderungsanzeige (RESP) im Buszyklus 4. Angenommen, daß keine anderen Knoten zu dieser Zeit eine höhere Priorität haben, gewährt der Entscheider 28 dem Speicher 39 Zugriff auf den Bus während des Buszyklus 5. Der Speicher 39 überträgt die Antwortnachricht einschließlich des "Erfolgreiches Datenlesen"-Signals (GRD 0) auf die Funktionsleitungen des Systembus 25, 8 Bytes (d. h. 64 Bits) von Daten über die Datenleitungen des Systembus 25 von dem durch das Adressenfeld der ursprünglichen Übertragung vom Prozessor 31 zum Speicher 39 spezifizierten Speicherorte, und die ID des Prozessors 31 auf den ID-Leitungen des Bus 25, um die Rückdaten mit dem Befehlsknoten (d. h. Prozessor 31) zu verbinden, der ursprünglich die Verriegelungsleseanfrage ausgegeben hat.
  • Während des Buszyklusses 6 erscheint kein Verkehr auf dem Systembus 25, der mit dieser Verriegelungslesetransaktion verbunden ist. Schließlich endet die Verriegelungslesetransaktion im Buszyklus 7, wenn der Prozessor 31 eine ACK-Bestätigung auf den Bestätigungsleitungen des Bus 25 überträgt.
  • Eine zweite Verriegelungslesetransaktion auf den gleichen spezifizierten Ort im Speicher wird im Erscheinen von Daten auf dem Bus 25 resultieren, wie es in den Zyklen 8-15 der Fig. 6 dargestellt ist. Im Zyklus 8 initiiert ein zweiter Befehlsknoten (cmdr #2) eine Befehlsknotenanforderung an den Entscheider 28. Die Buszyklen 9-12 resultieren in einem Verkehr auf dem Bus 25, der identisch mit den Zyklen 1 bis 4 ist. Jedoch findet der Speicher 39 während des Verarbeitens des empfangenen Verriegelungslesebefehls eine Übereinstimmung zwischen den in den Verriegelungsmarken gespeicherten Adreßwerten und der mit dem Verriegelungslesebefehl übertragenen Adresse. Entsprechend wird eine LOC-Antwort auf den Funktionsleitungen des Bus 25 während beispielsweise des Zyklusses 13 gelegt. Die Buszyklen 14 und 15 sind identisch mit den Zyklen 6 und 7.
  • C. Beschreibung des Prozessors 31
  • Die Fig. 7 zeigt ein genaueres Blockdiagramm der verschiedenen Elemente der knotenspezifischen Logik 65 im Prozessor 31. Der Prozessorknoten 31 umfaßt, wie es alle Knoten tun, eine Busschnittstellenschaltung 64. Der Prozessorknoten 31 umfaßt ebenfalls eine Prozessorlogik 202. Wie in der Fig. 7 dargestellt ist, umfaßt die Prozessorlogik 202 eine Zentralverarbeitungsschaltung (CPU), die zur Ausführung von Software in der dem Fachmann bekannten Weise benötigt wird. Die Prozessorlogik 202 generiert ebenfalls Befehls- und Adreßinformationen, wie sie vom System 20 benötigt wird, um sowohl die notwendigen Anwendungsfunktionen als auch die Steuerung der Übertragung über den Systembus 25 auszuführen.
  • Der Prozessorknoten 31 umfaßt ebenfalls eine Paritätsfehlerprüfschaltung 204, die die Information auf den Funktions-Daten-ID- und Paritätsleitungen des Systembus 25 überwacht, die von der Busschnittstellenschaltung 64 empfangen wurden, um eine Paritätsprüfung an diesen Signalen in der bekannten Weise durchzuführen. Ein detektierter Paritätsfehler wird in der Generierung einer Paritätsfehleranzeige auf der Signalleitung 206 resultieren.
  • Die Information auf den ID-Leitungen wird von einer Vergleicherschaltung 207 überwacht, die ebenfalls mit dem Identifikationscode des Prozessors 31 von einer fest verdrahteten Verbindung 210 auf der Rückwand versorgt wird, die von der Position des Prozessors 31 in dem Montageschrank bestimmt wird. Das Vergleichsergebnis des Vergleichers 207 wird, zusammen mit der Information über die Paritätsfehlersignalleitung 206, einem Bestätigungsgenerator 208 zugeführt. Falls kein Paritätsfehler detektiert worden ist und falls der von dem Bus 25 für eine Antwortnachricht empfangene ID-Code mit dem ID-Code des Prozessors 31 übereinstimmt, werden ACK-Bestätigungen über die CNF-Leitungen des Bus 25 durch einen Bestätigungsanzeigegenerator 208 zu Beginn des zweiten Buszyklus nach jedem Zyklus einer an den Prozessor 31 gerichteten Antwortübertragung, übertragen.
  • Die Information auf den Funktions- und Datenleitungen des Bus 25 wird über die Busschnittstelle 64 an einen Antwortdecodierer 212 geleitet. Der Decodierer 212 wird von dem Vergleicher 207 freigegeben, wenn eine Nachricht über den Bus 25 für den Prozessor 31 bestimmt ist. Dies wird durch ein positives Vergleichsergebnis vom Vergleicher 207 bestimmt. Falls der Decodierer 212 von dem Vergleicher 207 freigegeben wird, extrahiert der Decodierer 212 die Funktionscodes von den Funktionsleitungen des Systembus 25 und liefert für bestimmte Funktionscodes die Befehls- und Dateninformation von Datenleitungen des Bus 25 für eine entsprechende Aktion.
  • Wenn der Prozessor 31 eine Transaktion auf den Bus 25 zu initiieren wünscht, wird die Befehls-, Adreß- und Dateninformation an den Befehlsgenerator 214, zusammen mit der von der Verbindung 210 gelieferten ID dieses Knotens, an den Befehlsgenerator 214 geliefert. Der Befehlsgenerator 214 bereitet eine Befehlsübertragungsnachricht vor und aktiviert die Knoten-CMD-REQ-Entscheidungsleitung 216, um dem Entscheider 28 (nicht dargestellt in der Fig. 7) anzuzeigen, daß der Prozessor 31 Zugriff auf den Bus 25 wünscht, um eine Befehlsnachricht zu übertragen. Der Entscheider 28 gewährt dem Prozessor 31 Buszugriff zu einer nichtspezifizierten Zeit nach der ursprünglichen Verriegelungslese-Übertragung unter der Verwendung eines Entscheidungssystems.
  • Nachdem der Zugriff gewährt worden ist, veranlaßt der Befehlsgenerator 214 die Busschnittstelle 64, die Befehlsnachricht vom Befehlsgenerator 214 auf den Systembus 25 zu übertragen.
  • Der Antwortknoten, an den der Verriegelungslesebefehl gerichtet ist, wird zwei Zyklen nach der Verriegelungslesebefehlsübertragung eine Bestätigung generieren. Wie insbesondere in der Fig. 7 dargestellt ist, überwacht der Befehlsgenerator 214 die CNF-Leitungen, um die Anwesenheit einer ACK-Bestätigung auf den CNF-Busleitungen exakt 2 Buszyklen nach jedem Zyklus eines von einem Prozessor 31 über den Systembus 25 übertragenen Befehlsübertragung zu detektieren. Die Nicht-Feststellung der Anwesenheit einer ACK-Bestätigung wird in einer entsprechenden korrigierenden Handlung resultieren, die in der bevorzugten Ausführungsform aus der erneuten Übertragung des vorangegangenen Befehls besteht. Wenn die Übertragung vollendet ist, wird der Antwortknoten den Verriegelungslesebefehl bearbeiten und eine Antwortnachricht über den Systembus 25 zurücksenden. Wegen der durch den Verkehr auf dem Systembus 25 und den Warteschlangenlängen hervorgerufenen Ungewißheiten, wird der Antwortknoten eine Antwortnachricht zu einer nichtspezifizierten Zeit nach der Befehlsübertragung generieren.
  • D. Beschreibung des Speichers 39
  • Fig. 8 zeigt ein Blockdiagramm des Speichers 39, der als ein Antwortknoten funktionieren kann. Wie der Fig. 8 entnommen werden kann, umfaßt der Speicher 39 eine Befehlsdecodier-, Adreß- und Paritätsprüfschaltung 300. Die Schaltung 300 ist mit den Funktions-, Adreß- und ID-Busleitungen verbunden und führt eine Paritätsprüfung in einer bekannten Weise durch. Die Schaltung 300 vergleicht ebenfalls die Information auf den Adreßleitungen mit den Grenzen des von dem Speicher 39 bereitgestellten Adreßraums, die von einem Register 302 geliefert werden, und liefert die Resultate dieses Vergleichs auf eine Adreßübereinstimmungsleitung 301. Falls die über den Bus 25 empfangene Adreßinformation innerhalb des von dem Speicher 39 bereitgestellten Adreßraums liegt, und falls kein Paritätsfehler aufgetreten ist, erzeugt ein mit der Schaltung 300 verbundener Bestätigungsgenerator 304 eine ACK-Bestätigung durch das Aktivieren aller 3 CNF-Leitungen zu Beginn des zweiten Zyklus nach dem Übertragungszyklus einer für den Speicher 39 bestimmten Übertragung.
  • In Übereinstimmung mit der vorliegenden Erfindung umfaßt der Speicher eine Einrichtung zum Empfang der Verriegelungslesebefehle vom Befehlsknoten. Vorzugsweise weist der Speicher eine Einrichtung zur Übertragung von Bestätigungsquittungen an die Befehlsknoten zu vorbestimmten Zeiten nach der Initiierung der Verriegelungslesebefehle auf. Es ist weiterhin vorteilhaft, daß eine derartige Einrichtung eine Bestätigungseinrichtung zur Übertragung der Bestätigungsanzeigen an die Prozessorknoten nach einer vorbestimmten Anzahl von Buszyklen nach einer Befehlsnachricht umfaßt. Wie hier verkörpert, umfaßt eine derartige Einrichtung eine Busschnittstelle 64, eine Eingangswarteschlange 306, eine Schaltung 300, eine Adreßregisterschaltung 302, einen Bestätigungsanzeigegenerator 304 und die intern zu dem Speicher 39 führenden CNF-Leitungen. Die Eingangswarteschlange 306 erlaubt es, daß Nachrichten, die mit hoher Geschwindigkeit über den Bus 25 empfangen wurden, gespeichert werden, bis die relativ langsamere Logik des Speichers 39 es erlaubt, derartige Nachrichten zu bearbeiten. Die Eingangswarteschlange 306 wird freigegeben, um eine Nachricht vom Bus 25 zu speichern, wenn die in einer Nachricht auf dem Bus 25 auftretende Adreßinformation innerhalb der Grenzen des Adreßraumes des Speichers 39 ist, was durch ein Adreßübereinstimmungssignal 301 bestimmt wird.
  • In Übereinstimmung mit der vorliegenden Erfindung umfaßt der Speicher eine Befehlsdecodiereinrichtung zur Entfernung von gespeicherten Nachrichten aus der Eingangswarteschlange und zur Generierung von Verriegelungslese- und Entriegelungsschreibekommandos und Adreßdaten aus den Nachrichten. Wie hier verkörpert, weist eine derartige Einrichtung einen Decodierer 308 auf. Der Ausgang der Eingangswarteschlange 306 wird einem Decodierer 308 zugeführt, der Adreß- und Befehlsinformation aus den in der Eingangswarteschlange 306 gespeicherten Nachrichten extrahiert. Obwohl der Decodierer 308 vielfache Anzeigen versorgt, um die verschiedenen Befehle zu decodieren und Adreßinformationen auf einem Satz von parallelen Signalleitungen bereitstellt, werden aus Verständniszwecken die Adreß- und Befehlsausgänge des Decodierers 306 entsprechend in der Fig. 8 als zusammengefaßte Leitungen 309 und 311 gezeigt.
  • In Übereinstimmung mit der vorliegenden Erfindung weist der Speicher 39 eine Speichereinrichtung zum Speichern von Informationen auf. Wie hier verkörpert, weist die Speichereinrichtung ein Speicherfeld 312 auf. Wie es aus dem Stand der Technik bekannt ist, werden Informationen in einer Vielzahl von diskreten Orten in dem Speicherfeld 312 gespeichert, die durch Adressen identifiziert werden, die durch die an das Feld 312 gelieferten Lese- und Schreibebefehle spezifiziert werden können.
  • In Übereinstimmung mit der vorliegenden Erfindung weist der Speicher 39 eine Verriegelungseinrichtung auf, die mit der Speichereinrichtung verbunden ist, und zwischen einem entriegelten Zustand und einem verriegelten Zustand betätigbar ist, um einen Zugriff auf die Speichereinrichtung in einem entriegelten Zustand zu erlauben und den Zugriff auf die Speichereinrichtung in einem verriegelten Zustand zu versagen. Vorzugsweise weist die Verriegelungseinrichtung eine Verriegelungssteuereinrichtung auf, die in Abhängigkeit vom Verriegelungslesebefehl und den Verriegelungslese-Adreßdaten von der Decodiereinrichtung die Verriegelungs-Leseadreßdaten im Verriegelungsspeicherregister speichert, falls die Verriegelungsleseadresse nicht bereits im Verriegelungsspeicherregister erscheint, die im verriegelten Zustand eine Speicherfeld- Adreßstelle entsprechend den im Verriegelungsspeicher-Register gespeicherten Daten plaziert, und die in Abhängigkeit von dem Entriegelungsschreibsteuer-und -adreßdaten von der Decodiereinrichtung im entriegelten Zustand eine Speicherfeld-Adreßstelle entsprechend den im Verriegelungsspeicherregister gespeicherten Entriegelungsschreibdaten plaziert, und die in Abhängigkeit von den Verriegelungslese-Steuerdaten ein Verriegelungsstatussignal entsprechend dem Zustand einer Speicherfeldadreßstelle, die durch die Verriegelungsleseadreßdaten angegeben ist, erzeugt. Vorzugsweise weist die Verriegelungssteuereinrichtung eine Einrichtung zur Wiederherstellung der speicherfeld-Adreßstelle in einem entriegelten Zustand auf, wenn die Antwortnachricht nicht erfolgreich von dem Prozessorknoten empfangen wird. Wie hier verkörpert weist eine derartige Einrichtung eine Verriegelungssteuereinrichtung 310 auf.
  • Die Erfindung-weist ebenfalls eine Befehlseinrichtung auf, die auf einen Verriegelungslesebefehl eines der Prozessorknotens durch das Generieren einer Verriegelungsstatusindikation, die den Zustand der Verriegelungseinrichtung anzeigt, und durch das Schalten der Verriegelungseinrichtung von einem entriegelten Zustand in einem verriegeiten Zustand anspricht, und die auf ein Entriegelungsschreibekommando durch das Speichern der modifizierten Information in dem spezifizierten Ort und durch das Schalten der Verriegelungseinrichtung von dem verriegelten Zustand in den entriegelten Zustand anspricht. Wie hier verkörpert, weist die Befehlseinrichtung einen Verriegelungscontroller 310 und ein Speicherfeld 312 auf.
  • Die Adressen- und Befehlsinformation wird der Verriegelungssteuereinrichtung 310 zugeleitet, die ein Verriegelungsschema implementiert, was später genauer beschrieben werden wird. Die Adressen- und Befehlsinformation des Decodierer 318 wird ebenfalls einem Speicherfeld 312 zugeführt. Das Speicherfeld 312 spricht auf Lese- und schreibebefehle an, um Daten aus Orten und in Orte des Feldes 312 zu schreiben, die durch die vom Decodierer 308 empfangene Adreßinformation spezifiziert werden.
  • In Übereinstimmung mit der Erfindung weist der Speicher 39 eine Statusantworteinrichtung auf, um die Verriegelungsstatusnachricht einschließlich der Verriegelungsstatusanzeige an einen Prozessorknoten, der ein Verriegelungslesekommando generiert hat, zu einer unspezifizierten Zeit nachfolgend der Initiierung des Verriegelungslesebefehls zu übertragen. Vorzugsweise weist der Antwortgenerator eine Antworteinrichtung zur Generierung eines ersten Nachrichtentyps auf, der die Inhalte des spezifizierten Ortes enthält, wenn die Verriegelungseinrichtung in dem Entriegelungszustand ist, und eines zweiten Nachrichtentyps, der die Nichtverfügbarkeit des spezifizierten Ortes anzeigt, wenn die Verriegelungseinrichtung in dem verriegelten Zustand ist. Wie hier verkörpert, weist die Statusantworteinrichtung einen Antwortgenerator 316 und eine Ausgangswarteschlange 318 auf.
  • Das Verriegelungsstatussignal 314 der Steuereinrichtung 310 und die Speicherdaten des Speicherfeldes 312 werden einem Antwortgenerator 316 zugeführt, der eine Ausgangsantwortnachricht generiert, die später genauer beschrieben wird. Die Antwortnachrichten des Generators 312 werden einer Ausgangswarteschlange 318 zum Speichern zugeführt, bis der Speicher 39 Zugriff auf den Bus durch den im vorherigen beschriebenen Entscheidungsprozeß erhält.
  • Der Antwortgenerator 316 stellt eine Antwortnachricht, basierend auf den vom Speicher 312 empfangenen Daten, den von der Steuereinrichtung 310 empfangenen Verriegelungsstatussignal 314, und vom Decodierer 308 empfangene Befehls- und ID- Informationen bereit. Die vom Generator 316 bereitgestellte Antwortnachricht ist eine von zwei Arten, die davon abhängen, ob dem Speicher 39 erlaubt wird, die angeforderten Daten zu liefern. Falls der Befehl, auf den geantwortet wird, ein Nichtverriegelungslesebefehl ist, oder falls der Befehl ein Verriegelungslesebefehl ist und das Verriegelungsstatussignal 314 nicht aktiviert ist, stellt der Antwortgenerator 316 einen ersten Typ von Nachrichten einschließlich der angeforderten Inhalte des spezifizierten Ortes im Speicher 312 bereit. Ist das Kommando jedoch ein Verriegelungslesekommando und die Verriegelungsstatusleitung 314 aktiviert, stellt der Antwortgenerator 316 den zweiten Typ von Nachrichten mit einem "Verriegelt"-Code auf den Funktionsleitungen bereit, der anzeigt, daß die spezifizierte Adresse des Verriegelungslesebefehls in einem verriegelten Zustand ist, und daß die angeforderten Daten nicht in der durch den Speicher 39 als Antwort auf den empfangenen Verriegelungslesebefehl übertragene Antwortnachricht geliefert werden.
  • In Übereinstimmung mit der vorliegenden Erfindung weist der Speicher 39 eine Ausgangswarteschlangeneinrichtung zum Speichern der Antwortnachrichten des Antwortgenerators 316 und zum Übertragen der gespeicherten Antwortnachrichten an den Prozessorknoten 31 nach dem Erhalt des Zugriffs auf den Bus 25 zu unspezifizierten Zeitpunkten nach der Initiierung des entsprechenden Befehls durch den Prozessor 31 auf. Wie hier verkörpert, weist eine derartige Einrichtung eine Ausgangswarteschlange 318 auf. Wenn der Generator 316 die Antwortnachricht kompiliert hat, wird sie an die Ausgangswarteschlange 318 geliefert. Die Ausgangswarteschlange 318 signalisiert der Busschnittstelle 64, daß der Speicher 39 Zugriff auf den Bus 25 wünscht. Die Antwortnachricht wird in der Ausgangswarteschlange 318 für eine unspezifizierte Zeit gespeichert, bis ein derartiger Zugriff erhalten wird.
  • Wenn dem Speicher 39 der Zugriff auf den Bus 25 gewährt wird, wird die in der Ausgangswarteschlange 318 enthaltene Antwortnachricht auf den Systembus 25 zur Übertragung an den Befehlsknoten gelegt, der ursprünglich den Befehl generiert hat. Da es nicht bekannt ist, zu welcher Zeit der Speicher 39 die Ausführung des ursprünglich durch den Befehlsknoten übertragenen Befehls komplettieren wird, und da es weiterhin ungewiß ist, zu welcher Zeit der Speicher 39 Zugriff auf den Bus 25 erhalten wird, um entweder die angeforderten Daten oder die Verriegelungsstatusinformation zu liefern, wird die dem Verriegelungslesekommando entsprechende Verriegelungsstatusinformation auf den Funktionsleitungen des Bus 25 an den Befehlsknoten zu einer unspezifizierten Zeit nach der Initiierung des ursprünglichen Verriegelungslesebefehls erscheinen.
  • Falls es einem Befehlsknoten nicht gelingt, die von dem Antwortknoten nach einem erfolgreichen Verriegelungslesebefehl generierte Antwortnachricht zu erhalten, wird der Befehlsknoten keine Bestätigungsanzeige generieren. Wenn es dem Antwortknoten nicht gelingt, die Bestätigung von seiner Antwortnachricht zu erhalten oder durchzuführen, wird er das Verriegelungsbit löschen, das durch das Verriegelungslesekommando gesetzt ist.
  • In Übereinstimmung mit der vorliegenden Erfindung weist der Speicher 39 eine Einrichtung zum selektiven Generieren von Antwortnachrichten eines ersten und zweiten Typs auf, wobei eine Datennachricht des ersten Typs die gespeicherte Information enthält, wenn die Verriegelungseinrichtung im entriegelten Zustand ist, und wobei eine Datennachricht des zweiten Typs die die Nichtverfügbarkeit der Information anzeigt, wenn die Verriegelungseinrichtung in dem verriegelten Zustand ist. Wie hier verkörpert, weist eine derartige Einrichtung eine Verriegelungsstatusleitung 314, einen Antwortgenerator 316, einen Decodierer 308 und einen Verriegelungscontroller 310 auf.
  • E. Beschreibung des Verriegelungscontrollers 310
  • In Fig. 9 ist ein detaillierteres Diagramm des Verriegelungscontrollers 310 gezeigt. In Übereinstimmung mit der Erfindung weist die Verriegelungseinrichtung eine Verriegelungsmarkeneinrichtung zum Empfang einer ausgewählten Adresse entsprechend einer Adresse im Speicherfeld 39 auf, an der ein Verriegelungslesekommando verhindert werden soll. Wie hier verkörpert, umfaßt die Verriegelungsmarkeneinrichtung einen Logikcontroller 352a, 352b, 352c, der zusammen mit einem Logikcontroller 315 den Verriegelungscontroller 310 bildet. Es ist selbstverständlich, daß mehr bzw. weniger Verriegelungsmarken bereitgestellt werden können, abhängig von der spezifischen Anwendung. Die Verriegelungsmarken 352a-d sind in der Konstruktion und der Arbeitsweise identisch. Aus Gründen der Einfachheit wird die detaillierte Schaltung nur für die Verriegelungsmarke 352a gezeigt.
  • Jede Verriegelungsmarke 352a bis d umfaßt ein Speicherregister 354 zum Speichern eines Wertes, der einem Ort im Adreßraum des Systems 20 entspricht. Das Register 354 umfaßt einen Ausgangsanschluß 356, an dem der im Register 354 gespeicherte Wert erscheint. Das Register 354 umfaßt einen Freigabeanschluß 358 und einen Eingangsanschluß 360, der mit der Adreßleitung 309 verbunden ist. Aktivierung des Freigabeanschlusses 358 veranlaßt das Register 354, die auf den Adreßleitungen 309 vorliegenden Signale zu laden.
  • Der Registerausgangsanschluß 356 ist mit einem Eingangsanschluß 356 dem Vergleichers 368 verbunden. Ein weiterer Eingangsanschluß 370 des Vergleichers 366 ist mit den Adreßleitungen 309 verbunden. Ein Ausgangsanschluß 372 des Vergleichers 366 bildet ein "Übereinstimmungs"-Signal, das zu einem Eingangsanschluß des UND-Gatters 374 mit zwei Eingängen geliefert wird. Der andere Eingangsanschluß des UND-Gatters 374 ist mit der Entriegelungsschreibeleitung 380 der Befehlsleitungen 311 verbunden. Der Ausgangsanschluß des UND-Gatters 374 ist mit dem Rücksetzanschluß eines Latches 382 verbunden. Der Ausgangsanschluß des Latches 382 bildet ein Verriegelungs-Signal, das auf einen Eingangsanschluß 387 des UND-Gatters 386 mit zwei Eingängen geleitet wird. Der andere Eingangsanschluß des UND-Gatters 386 ist mit dem Übereinstimmungssignalausgang des Vergleichers 368 verbunden. Der Ausgang des UND-Gatters 386 liefert ein "Treffer"-Signal, das anzeigt, daß eine auf den Adreßleitungen erscheinende Adresse durch eine Verriegelungsmarke 352a gesperrt ist.
  • Die Schlußkomponente der Verriegelungsmarke 352a ist ein UND- Gatter 388 mit vier Eingängen. Ein Eingang des UND-Gatters 388 ist mit einer Leitung 390 der Befehlsleitungen 311 verbunden, die anzeigen, daß der von dem Speicherknoten 39 gerade verarbeitete Befehl ein Verriegelungslesebefehl ist. Ein zweiter Eingang des UND-Gatters 388 ist mit einem Taktsignal 389 verbunden, um die Operation der Verriegelungsmarke 352a richtig zu takten und Konkurrenzzustände zu vermeiden. Ein dritter Eingang des UND-Gatters 388 ist mit einem "Zuordnungs"-Anschluß des Logikcontrollers 350 verbunden, der im folgenden beschrieben wird. Der vierte Eingangsanschluß des UND-Gatters 388 ist mit dem invertierten Verriegelungsstatussignal 314 verbunden. Der Ausgangsanschluß des UND-Gatters 388 ist mit dem Freigabeeingang 358 des Registers 354 und dem Setz-Anschluß des Latches 382 verbunden.
  • Der Logikcontroller 350 weist eine Verriegelungsmarkenzuordnungsschaltung 392 auf, die als ein Selektionsdecodierer arbeitet, um eine ruhende Verriegelungsmarke zu selektieren. Die Zuordnungsschaltung 392 bestimmt aus dem Status der Verriegelungsbits der Verriegelungsmarken 352a-d, welche Verriegelungsmarken frei sind und bestimmt eine der verfügbaren Verriegelungsmarken zum Bereitstellen der Verriegelungsfunktion, indem ein "Zuordnungs"-Signal für die ausgewählte Verriegelungsmarke gesetzt wird. Wenn alle Verriegelungsmarken momentan zugeordnet sind, wird ein "Alle Besetzt"-Ausgangssignal einem der Eingänge des ODER-Gatter 394 mit fünf Eingängen zugeführt. Die anderen Eingänge des ODER-Gatters 394 werden durch entsprechende "Treffer"-Signale der Verriegelungsmarken 352a-d versorgt.
  • Die Arbeitsweise des Verriegelungscontrollers 310 zum Bearbeiten eines Verriegelungslesebefehls wird nun beschrieben. Adressenwerte auf den Adreßleitungen 309 werden dauernd mit den in den Registern 354 gespeicherten Adressenwerten verglichen. Wenn keine der in den Registern 354 gespeicherten Adreßwerte mit dem auf den Adreßleitungen 309 erscheinenden Adreßwerten gleich ist, wird kein Übereinstimmungs-Signal aktiviert und es wird kein "Treffer"-Signal aktiviert. Angenommen, daß das "Alle-Besetzt"-Signal der Schaltung 352 ebenfalls nicht aktiviert ist, ist kein Eingang des ODER-Gatters 394 aktiv und die Verriegelungsstatusleitung 314 ist nicht gesetzt. Das Speicherfeld 312 (Fig. 8) liefert dann die Inhalte des spezifizierten Ortes an den Antwortgenerator 316. Die Nichtaktivierung der Verriegelungsstatusleitung 314 veranlaßt den Antwortgenerator 316, den ersten Typ der Antwortnachricht zu generieren, in der ein "Erfolgreiches Datenlesen"-Code in den Bits der Antwortnachricht gesetzt wird, die eventuell über die Funktionsleitung des Bus 25 zu dem Befehlsknoten gesendet wird, der sie angefordert hat.
  • Der invertierte Wert der Verriegelungsstatusleitung 314 wird nun dem UND-Gatter 388 zugeführt. Die Schaltung 392 liefert eines der Zuordnungssignale der Verriegelungsmarken 352a bis d. Da ein Verriegelungslesen abgearbeitet wird, wird die Verriegelungsleseleitung 390 durch den Decodierer 308 (Fig. 8) gesetzt. Daher wird, falls das Taktsignal 389 aktiviert ist, das UND-Gatter 388 der Verriegelungsmarke 352a aktiviert, um das Register 54 freizugeben. Die auf den Adreßleitungen 309 erscheinenden Adreßwerte werden in dem Register 354 der Verriegelungsmarke 352a gespeichert. Die Aktivierung des UND-Gatters 388 setzt weiterhin das Latch 382, wodurch das Verriegelungsbit 384 der Verriegelungsmarke 352a aktiviert wird. Der Zugriff auf den im Register 354 der Verriegelungsmarke 352 spezifizierten Ort wird nun für nachfolgende Verriegelungslesebefehle verweigert.
  • Ein nachfolgender Verriegelungslesebefehl auf den verriegelten Ort wird in der folgenden Arbeitsweise resultieren. Die auf den Adreßleitungen 309 erscheinenden Adreßwerte sind gleich den in dem Register 354 der Verriegelungsmarke 352 gespeicherten Werte. Das Übereinstimmungssignal am Anschluß 372 der Verriegelungsmarke 352a wird daher gesetzt. Da das Verriegelungsbit am Anschluß 384 für die Verriegelungsmarke 352a von der vorangegangenen Verriegelungsleseoperation gesetzt ist, sind beide Eingänge des UND-Gatters 386 nun aktiv, wodurch das Treffersignal der Verriegelungsmarke 352a aktiviert wird. Dies wiederum aktiviert das ODER-Gatter 394 zur Aktivierung der Verriegelungsstatusleitung 314. Die Aktivierung der Verriegelungsstatusleitung 314 veranlaßt den Antwortgenerator 316 (Fig. 8) eine Antwortnachricht des zweiten Typs zu generieren, in der ein Verriegelungsantwortcode auf den Funktionsbits der Nachricht gesetzt wird.
  • Die Arbeitsweise eines Entriegelungsschreibkommandos zum Löschen eines Verriegelungsbiß wird nun beschrieben. Ein Entriegelungsschreibbefehl auf einen im vorangegangenen Verriegelten Ort wird ergeben, daß die auf den Adreßleitungen 309 präsenten Werte gleich werden zu einem in einem Register 354 der Verriegelungsmarke gespeicherten Wert. Beispielsweise wird angenommen, daß ein Entriegelungsschreibbefehl übertragen worden ist, um eine durch eine Verriegelungsmarke 352a Verriegelten Ort zu entriegeln. Wenn der Adressenwert auf den Adressenleitungen 309 erscheint, veranlaßt der Ausgang des Vergleichers 368 das Setzen eines Übereinstimmungssignals. Da die Entriegelungs-Schreibleitung 391 ebenfalls zu dieser Zeit einen hohen Zustand haben wird, wird das UND-Gatter 374 aktiviert werden, wodurch das Latch 382 veranlaßt wird, das Verriegelungsbitsignal am Ausgangsanschluß 384 zurückzusetzen. Das UND-Gatter 386 wird deaktiviert werden, wodurch das aktive Treffersignal für die Verriegelungsmarke 352a von dem Eingangsanschluß des ODER-Gatters 394 entfernt wird. Die mit dem Entriegelungsschreibbefehl übertragenen Daten werden dann in den spezifizierten Ort im Speicher geschrieben.
  • Durch das Bereitstellen einer Verriegelungsstatusnachricht, die an einen Prozessor als eine Datenübertragung über den Systembus zu einer unspezifizierten Zeit nach einem Verriegelungslesekommando geliefert wird, erlaubt die vorliegende Erfindung, die Funktionen der Übertragung von Bestätigungs- und Verriegelungsstatusübertragung zu separieren, wodurch die Verwendung von Vielfachverriegelungsbits ohne die Kosten und Komplexität geschaffen wird, die notwendig wäre, falls die Verriegelungsstatusinformation zu einer festgesetzten Zeit oder über explizite Verriegelungsstatusleitungen übertragen werden würde. Dies erlaubt ebenfalls, daß die Verriegelungsstatusinformation von Knoten erhalten wird, die mit dem System über Adapter und Bussen verbunden sind, die von dem Systembus getrennt sind.
  • In der ganzen vorangegangenen Diskussion wurde ein verriegelter Speicher oder Adreßraum durch einen "Ort" spezifiziert. Es ist klar, daß jedes adreßspeichernde Register einen Bereich von Adressen bilden kann, so daß ein einzelner Verriegelungslesebefehl oder Entriegelungsschreibebefehl entsprechend einen Bereich von Adreßorten verriegeln und entriegeln kann und nicht nur einen einzelnen Ort.

Claims (5)

1. Antwortknoteneinrichtung zur Durchführung von exklusiven Lese-Modifizier-Schreiboperationen, die in einem Mehrfachknoten-Canputersystem (20), das eine Vielzahl von Befehlsknoten (31) und einen synchronen Hängebus (25) aufweist, erzeugt werden, wobei die Operationen einen Satz von verschiedenen Transaktionen auf dem synchronen Hängebus haben, einschließlich einer Verriegelungslesetransaktion zum Auffinden einer an einer angegebenen Speicheradreßstelle gespeicherten Information und zur Begrenzung des Zugangs zu dieser gespeicherten Information durch nachfolgende Verriegelungslesetransaktionen sowie einer Entriegelungsschreibtransaktion zur Speicherung der Information an der angegebenen Stelle und zur Wiederherstellung des Zugangs zu der gespeicherten Information, wobei die Einrichtung aufweist:
eine Einrichtung (308) zum Empfang einer Verriegelungslese-Befehlsnachricht und der Entriegelungsschreib-Befehlsnachricht von einem der Befehlsknoten (31);
eine Speichereinrichtung (312), die die angegebene Stelle enthält, zum Speichern der Information;
eine mit der Speichereinrichtung (312) verbundene Verriegelungseinrichtung (310), die zwischen einem entriegelten und einem verriegelten Zustand arbeiten kann, um im entriegelten Zustand den Zugang zu der Speichereinrichtung zu ermöglichen und im verriegelten Zustand den Zugang zu der Speichereinrichtung zu untersagen;
eine Befehlseinrichtung (310, 312) zum Erzeugen einer Verriegelungsstatusanzeige, die den Zustand der Verriegelungseinrichtung anzeigt, und zur Umschaltung der Verriegelungseinrichtung vom entriegelten Zustand in den verriegelten Zustand, wenn der Verriegelungslesebefehl empfangen wird, und zum Speichern der modifizierten Information an der angegebenen Stelle und zum Anschalten der Verriegelungseinrichtung von verriegelten Zustand in den entriegelten Zustand, wenn ein Entriegelungsschreibbefehl empfangen wird;
dadurch gekennzeichnet, daß die Einrichtung weiterhin aufweist:
eine Bestätigungseinrichtung (304) zum Bestätigen des Empfangs der Verriegelungslese-Befehlsnachricht durch Übermitteln einer den erfolgreichen Empfang der Verriegelungslese-Befehlsnachricht anzeigenden Befehlsbestätigung zu diesem einen Befehlsknoten an einem vorbestimmten Zeitpunkt nach der Übertragung der Verriegelungslese-Befehlsnachricht;
eine Statusantwortseinrichtung (316, 318) zur Übermittlung einer die Verriegelungsstatusanzeige einschließenden Verriegelungsantwortsnachricht an den einen Befehlsknoten, zu einem unspezifizierten Zeitpunkt nach der Übertragung der Verriegelungslese-Befehlsnachricht, wobei die Verriegelungslesetransaktion einen Befehlstransfer einschließt mit einer Verriegelungslese-Befehlsentscheidung zur Reservierung von Buszyklen auf dem synchronen Hängebus, einer Verriegelungslese-Befehlsnachricht, die durch einen der Befehlsknoten über den synchronen Hängebus während der durch die Verriegelungslese-Befehlsentscheidung reservierten Buszyklen übertragen wird, und mit einer Befehlsbestätigung, die über den synchronen Hängebus zu dem einen Befehlsknoten während der von der Verriegelungslese-Befehlsentscheidung reservierten Buszyklen übertragen wird; wobei die Verriegelungslesetransaktion weiterhin einen Antwortstransfer einschließt mit einer Antwortsentscheidung zur Reservierung von Buszyklen auf dem synchronen Hängebus, einer Verriegelungsantwortsnachricht, die über den synchronen Hängebus während der durch die Antwortsentscheidung reservierten Buszyklen zu dem einen Befehlsknoten übertragen wird, und mit einer Antwortsbestätigung, die von dem einen Befehlsknoten über den synchronen Hängebus während der durch die Antwortsentscheidung reservierten Buszyklen übertragen wird; wobei die Entriegelungsschreibaktion einen Befehlstransfer einschließt mit einer Entriegelungsschreib-Befehlsentscheidung zur Reservierung der Buszyklen auf dem synchronen Hängebus, einer Entriegelungsschreib- Befehlsnachricht, die von dem einen Befehlsknoten während der durch die Entriegelungsschreib-Befehlsentscheidung reservierten Buszyklen übertragen wird, und mit einer Befehlsbestätigung, die über den synchronen Hängebus während der durch die Entriegelungsschreib-Befehlsentscheidung reservierten Buszyklen übertragen wird.
2. Einrichtung nach Anspruch 1, in der die Statusantwortseinrichtung (316, 318) eine Einrichtung (316) zur wahlweisen Erzeugung von Verriegelungsantwortsnachrichten eines ersten und zweiten Typs aufweist, wobei die Verriegelungsantwortsnachricht des ersten Typs die gespeicherte Information einschließt, wenn sich die Verriegelungseinrichtung im entriegelten Zustand befindet, und die Verriegelungsantwortsnachricht des zweiten Typs die Nichtverfügbarkeit der Information anzeigt, wenn sich die Verriegelungseinrichtung (310) im verriegelten Zustand befindet.
3. Einrichtung nach Anspruch 1, die weiterhin aufweist: eine Eingangswarteschlangen-Einrichtung (306) zum Empfang der Verriegelungslese-Befehlsnachricht und der Entriegelungsschreib-Befehlsnachricht, bestätigt durch die Bestätigungseinrichtung (304), von dem einen Befehlsknoten (31);
eine Befehlsdecodiereinrichtung (308) zum Entfernen der Befehle von den in der Eingangswarteschlangen-Einrichtung (306) gespeicherten Verriegelungslese- und Entriegelungsschreib-Befehlsnachrichten und zum Erzeugen des Verriegelungslese- und Entriegelungsschreibbefehls und der Adreßdaten aus den Befehlen;
wobei die Speichereinrichtung ein Speicherfeld (312) aufweist mit einer Vielzahl von Adreßstellen, die jeweils einen entsprechenden Adreßwert haben, wobei das Speicherfeld die angegebene Stelle einschließt und in Abhängigkeit von Kontroll- und Adreßdaten von der Decodiereinrichtung (308) die Information speichert und wiederauffindet;
wobei die Verriegelungseinrichtung (310) ein Verriegelungsspeicherregister (354) mit einer Speicherzelle zum Speichern eines Speicheradreßwertes entsprechend einer Adreßstelle in dem Speicherfeld (312) aufweist;
wobei die Verriegelungseinrichtung eine Verriegelungscontrollereinrichtung (310) aufweist, die in Abhängigkeit vom Verriegelungslesebefehl und den Verriegelungslese-Adreßdaten von der Decodiereinrichtung (308) die Verriegelungslese-Adreßdaten im Verriegelungsspeicherregister (354) speichert, wenn die Verriegelungsleseadresse nicht bereits im Verriegelungsspeicherregister erscheint, die im verriegelten Zustand eine Speicherfeld-Adreßstelle entsprechend den im Verriegelungsspeicherregister (345) gespeicherten Daten plaziert, und die in Abhängigkeit von dem Entriegelungsschreibkontroll- und -Adreßdaten von der Decodiereinrichtung (308) im entriegelten Zustand eine Speicherfeld-Adreßstelle entsprechend den im Verriegelungsspeicherregister (354) gespeicherten Entriegelungsschreibdaten plaziert, und die in Abhängigkeit von den Verriegelungslese-Kontrolldaten ein Verriegelungsstatussignal entsprechend dem Zustand einer Speicherfeld-Adreßstelle, die durch die Verriegelungslese-Adreßdaten angegeben ist, erzeugt;
wobei die Statusantwortseinrichtung eine Generatoreinrichtung (316) aufweist, die in Abhängigkeit vom Verriegelungsstatussignal eine Antwortsnachricht erzeugt, die die Inhalte einer Speicheradresse enthält, die durch die Adreßdaten einer von der Eingangswarteschlange (306) entfernten Befehlsnachricht angegeben ist, wenn die angegebene Adresse sich in einem entriegelten Zustand befindet, und die eine Antwortsnachricht mit einer verriegelten Antwort erzeugt, wenn sich die angegebene Adresse in einem verriegelten Zustand befindet; und
eine Ausgangswarteschlangen-Einrichtung (318) zum Speichern der Antwortsnachrichten von der Generatoreinrichtung (316) und zum Übertragen der gespeicherten Antwortsnachrichten an den einen Befehlsknoten (31), nachdem der Zugang zu dem Bus an unspezifizierten Zeitpunkten nach der Übertragung von entsprechenden Befehlsnachrichten durch den einen Befehlsknoten erhalten wird, der die Erzeugung von entsprechenden Antwortsnachrichten verursacht hat.
4. Einrichtung nach Anspruch 3, bei der die Verriegelungscontrollereinrichtung (310) eine Einrichtung zur Wiederherstellung der Speicherfeld-Adreßstelle in einen entriegelten Zustand aufweist, wenn die Antwortsnachricht nicht erfolgreich von dem Prozessorknoten empfangen wird.
5. Verfahren zum Beantworten von exklusiven Lese-Modifizier-Schreiboperationen in einem Mehrfachknoten-Computersystem mit einer Vielzahl von Befehlsknoten (31) und einem synchronen Hängebus (25), wobei die Operationen einen Satz von verschiedenen Transaktionen auf dem synchronen Hängebus aufweisen, einschließlich einer Verriegelungslesetransaktion zur Wiederauffindung der an einer angegebenen Speicheradreßstelle gespeicherten Information und zur Begrenzung des Zugangs zu der gespeicherten Information für nachfolgende Verriegelungslesetransaktionen, und einer Entriegelungsschreibtransaktion zur Speicherung der Information an der angegebenen Stelle und zur Wiederherstellung des Zugangs zu der gespeicherten Information, dadurch gekennzeichnet, daß die Verriegelungslesetransaktion aufweist: einen Befehlstransfer mit einer Verriegelungslese-Befehlsentscheidung zur Reservierung der Buszyklen auf dem synchronen Hängebus, eine Verriegelungslese-Befehlsnachricht, die durch einen der Befehlsknoten über den synchronen Hängebus während der durch die Verriegelungslese-Befehlsentscheidung reservierten Buszyklen übertragen wird, und eine Befehlsbestätigung, die über den synchronen Hängebus während der durch die Verriegelungslese-Befehlsentscheidung reservierten Buszyklen zu dem einen Befehlsknoten übertragen wird;
sowie einen Antwortstransfer mit einer Antwortsentscheidung zur Reservierung der Buszyklen auf dem synchronen Hängebus, einer Verriegelungsantwortsnachricht, die über den synchronen Hängebus während der durch die Antwortsentscheidung reservierten Buszyklen zu dem einen Befehlsknoten übertragen wird, und eine Antwortsbestätigung, die von dem einen Befehlsknoten während der durch die Antwortsentscheidung reservierten Buszyklen über den synchronen Hängebus übertragen wird;
wobei die Entriegelungsschreibtransaktion aufweist: einen Befehlstransfer mit einer Entriegelungsschreib-Befehlsentscheidung zur Reservierung der Buszyklen auf dem synchronen Hängebus, eine Entriegelungsschreib- Befehlsnachricht, die während der durch die Entriegelungsschreib-Befehlsentscheidung reservierten Buszyklen zu dem einen Befehlsknoten übertragen wird, und eine Befehlsbestätigung, die während der von der Entriegelungsschreib-Befehlsentscheidung reservierten Buszyklen über den synchronen Hängebus übertragen wird;
wobei das Verfahren die folgenden Verfahrensschritte aufweist:
Empfang einer von dem einen Befehlsknoten (31) übertragenen Verriegelungslese-Befehlsnachricht und Spezifizieren einer Speicheradreßstelle;
Übertragen einer Befehlsbestätigung, die den erfolgreichen Empfang der Verriegelungslese-Befehlsnachricht anzeigt, an einem vorbestimmten Zeitpunkt nach der Übertragung der empfangenen Verriegelungslese-Befehlsnachricht zu dem einen Befehlsknoten;
Prüfung einer Verriegelungsanzeigeeinrichtung (354), die sich entweder im verriegelten oder entriegelten Zustand befindet und mit der Speicheradreßstelle assoziiert ist, und die, wenn sich die Verriegelungsanzeigeeinrichtung im entriegelten Zustand befindet, die Verriegelungsanzeigeeinrichtung vom entriegelten Zustand in den verriegelten Zustand schaltet;
Übertragen einer Antwortsnachricht, die ein Verriegelungsstatussignal entsprechend dem Zustand der Verriegelungsanzeigeeinrichtung darstellt, an einem unspezifizierten Zeitpunkt nach der Übertragung der empfangenen Lesebefehlsnachricht zu dem Befehlsknoten; und
Speichern der modifizierten Information an der angegebenen Speicherstelle und Umschalten der Verriegelungsanzeigeeinrichtung vom verriegelten Zustand in den entriegelten Zustand, nach Empfang einer Entriegelungsschreib-Befehlsnachricht.
DE88904314T 1987-05-01 1988-04-25 Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem. Expired - Fee Related DE3882977T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/044,466 US4949239A (en) 1987-05-01 1987-05-01 System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system
PCT/US1988/001299 WO1988008584A1 (en) 1987-05-01 1988-04-25 Method and apparatus for implementing multiple lock indicators in a multiprocessor computer system

Publications (2)

Publication Number Publication Date
DE3882977D1 DE3882977D1 (de) 1993-09-09
DE3882977T2 true DE3882977T2 (de) 1994-03-24

Family

ID=21932544

Family Applications (1)

Application Number Title Priority Date Filing Date
DE88904314T Expired - Fee Related DE3882977T2 (de) 1987-05-01 1988-04-25 Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.

Country Status (8)

Country Link
US (1) US4949239A (de)
EP (1) EP0344216B1 (de)
JP (1) JPH0642236B2 (de)
KR (1) KR910007750B1 (de)
AU (1) AU600830B2 (de)
CA (1) CA1304828C (de)
DE (1) DE3882977T2 (de)
WO (1) WO1988008584A1 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5182809A (en) * 1989-05-31 1993-01-26 International Business Machines Corporation Dual bus microcomputer system with programmable control of lock function
JPH0387958A (ja) * 1989-06-30 1991-04-12 Nec Corp バスロツク制御方式
US5101479A (en) * 1989-07-21 1992-03-31 Clearpoint Research Corporation Bus device for generating and responding to slave response codes
US5353416A (en) * 1989-10-25 1994-10-04 Zenith Data Systems Corporation CPU lock logic for corrected operation with a posted write array
US5136714A (en) * 1989-12-04 1992-08-04 International Business Machines Corporation Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5381536A (en) * 1989-12-29 1995-01-10 Cray Research, Inc. Method and apparatus for separate mark and wait instructions for processors having multiple memory ports
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
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
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
GB2273586A (en) * 1992-12-21 1994-06-22 Hanover Restricting access to shared memory during updates.
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
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5594875A (en) * 1994-07-01 1997-01-14 Digital Equipment Corporation Method and apparatus to provide pended transaction on a non-pended system bus
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
US5872980A (en) * 1996-01-25 1999-02-16 International Business Machines Corporation Semaphore access control buffer and method for accelerated semaphore operations
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
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
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6397225B1 (en) * 1998-12-23 2002-05-28 Advanced Micro Devices, Inc. Messaging system with protocol independent message format
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6922745B2 (en) * 2002-05-02 2005-07-26 Intel Corporation Method and apparatus for handling locks
JP4576323B2 (ja) * 2004-12-10 2010-11-04 富士通株式会社 データ転送装置およびデータ転送方法
US7315910B2 (en) * 2005-06-16 2008-01-01 Oracle International Corporation Techniques for handling lock-related inconsistencies
US8994533B2 (en) * 2006-11-30 2015-03-31 Patent Navigation, Inc. Conditional RFID
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
US9560134B1 (en) * 2012-06-27 2017-01-31 Netapp, Inc. Storage array side write locking
US20170111286A1 (en) * 2015-10-15 2017-04-20 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
CN113821470B (zh) * 2020-06-19 2024-09-06 杭州中天微系统有限公司 总线设备、嵌入式系统和片上系统

Family Cites Families (43)

* 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
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
US4079454A (en) * 1976-01-02 1978-03-14 Data General Corporation Data processing system using read-only-memory arrays to provide operation in a plurality of operating states
US4055851A (en) * 1976-02-13 1977-10-25 Digital Equipment Corporation Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle
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
GB2044499B (en) * 1979-03-12 1983-11-16 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
US4660169A (en) * 1983-07-05 1987-04-21 International Business Machines Corporation Access control to a shared resource in an asynchronous 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
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
US4763249A (en) * 1983-09-22 1988-08-09 Digital Equipment Corporation Bus device for use in a computer system having a synchronous bus
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
JPS60107170A (ja) * 1983-11-15 1985-06-12 Nec Corp マルチプロセッサ制御方式
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
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
EP0344216A1 (de) 1989-12-06
AU1716888A (en) 1988-12-02
CA1304828C (en) 1992-07-07
EP0344216B1 (de) 1993-08-04
WO1988008584A1 (en) 1988-11-03
DE3882977D1 (de) 1993-09-09
JPH0642236B2 (ja) 1994-06-01
JPH02500783A (ja) 1990-03-15
AU600830B2 (en) 1990-08-23
KR910007750B1 (ko) 1991-09-30
US4949239A (en) 1990-08-14
KR890702145A (ko) 1989-12-23

Similar Documents

Publication Publication Date Title
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3887886T2 (de) Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE69424272T2 (de) Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus
DE69426447T2 (de) Verfahren zur Durchführung von Bustransaktionen in einem Rechnersystem und Rechnersystem
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE3687426T2 (de) Mehrprozessorsystem-architektur.
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE69519926T2 (de) Verfahren und vorrichtung zum einhalten der transaktionssteuerung und zur unterstützung von verzögerten antworten in einer busbrücke
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE69319763T2 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.

Legal Events

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