DE2430127C2 - Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer - Google Patents

Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer

Info

Publication number
DE2430127C2
DE2430127C2 DE2430127A DE2430127A DE2430127C2 DE 2430127 C2 DE2430127 C2 DE 2430127C2 DE 2430127 A DE2430127 A DE 2430127A DE 2430127 A DE2430127 A DE 2430127A DE 2430127 C2 DE2430127 C2 DE 2430127C2
Authority
DE
Germany
Prior art keywords
data
information
register
addressed
program
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
Application number
DE2430127A
Other languages
English (en)
Other versions
DE2430127A1 (de
Inventor
Paul Joseph Poughkeepsie N.Y. Brown
Ronald Morton Wappinger Falls N.Y. Smith
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2430127A1 publication Critical patent/DE2430127A1/de
Application granted granted Critical
Publication of DE2430127C2 publication Critical patent/DE2430127C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Description

Die Erfindung betrifft eine Einrichtung in einer Datenverarbeitungsanlage mit mehreren Benutzern (Prozessoren, Programme) zur Steuerung des Zugriffs konkurrierender Benutzer zu einem adressierten Speicherbereich, dessen Informationsinhalt von jedem Benutzer durch Operationen veränderbar ist. Sie gibt insbesondere eine Technik an, welche die gemeinsame Benutzung von Daten in einem Datenspeicher durch mehrere Benutzer gestattet
Möglichkeiten zur Lösung der Wettbewerbssituation
um den Zugriff zu von mehreren Benutzern gemeinsam
benutzten, in einem Speicher gespeicherten Daten sind beispielsweise in den US-PS 34 05 394, 35 28 062 und 36 76 860 beschrieben.
Danach verlangt eine Vielzahl von Benutzern die Anwendung von Spezialinstruktionen, die ausgeführt werden müssen, bevor sie Zugriff zu den gemeinsam benutzten Daten erhalten. Mit diesen Sonderinstruktionen wird eine bestimmte Adresse in dem gemeinsam benutzten Speicher untersucht und es wird festgestellt, ob
ein vorheriger Benutzer eine Anzeige dafür hinterlassen hat, daß die gemeinsam benutzten Daten gegenwärtig adressiert und verarbeitet werden. Vor dem Zugriff zu den gemeinsamen Daten erfolgt zwangsweise ein Zugriff zu der zugehörigen Sperrinformation, dem Sperr-
wort, dem Leitwort oder nach einer Verriegelung.
In der US-PS 35 66 357 ist eine Datenverarbeitungsanlage mit mindestens zwei Prozessoren beschrieben, die Zugriff zu einem Hauptspeicher, mehreren Sätzen von Programmausführungsregistern für den Gebrauch
bei der jeweiligen Ausführung von Programmen und zu einer Steuereinheit haben. Die Steuereinheit überwacht die Verbindungen zwischen den Prozessoren und den Gruppen von Programmausführungsregistern um die Prozessoren mit bestem Wirkungsgrad bei der Ausführung von Teilen einer Mehrzahl von Programmen, die im Hauptspeicher gespeichert sind, zu betreiben.
Konfliktsituationen werden hier dadurch vermieden, daß Daten, die veränderbar sind, in Registersätzen enthalten sind, die komplett zwischen den Prozessoren umgeschaltet werden. Hauptspeicherzugriffe auf Daten, die verändert werden können, erfolgen nicht, weshalb auch keine Konfliktsituation auftreten kann.
In der US-PS 37 06 077 ist ein Multiprozessoranlage beschrieben, bei der Steuertafeln die Benutzung von
Systemelementen zur Vermeidung von Konflikten anzeigen.
Da bei dem Steuerungsablauf stets die Benutzungstafeln abgefragt und jeweils auf den neuesten Stand gebracht werden müssen, ergibt sich hiermit hinsichtlich
der Verarbeitungsgeschwindigkeit noch nicht ein optimaler Betrieb.
Wenn ein Benutzer Zugriff zu gemeinsam benutzten Daten wünscht und hinterher feststellt, daß die zugehörige Verriegelung einen Zugriff zu diesen Daten verhin-
dert, dann stehen verschiedene Alternativen zur Verfügung, um dem Benutzer eine spätere erneute Untersuchung der Verriegelung zu gestatten, bevor er Zugriff zu den gemeinsamen Daten erhält. Diese Techniken vergeuden Computereinrichtungen und -zeit und erfor-
dem eine Anzahl von Programmiertechniken, die unter bestimmten Bedingungen Fehlersituationen schaffen können, wobei gemeinsam benutzte Daten verriegelt werden und hinterher für die weitere Verwendung nicht mehr freigegeben werden. Außerdem wird Rechnerzeit
bo bei der Untersuchung der Sperrinformation auf einen Konflikt vergeudet, wenn sehr oft tatsächlich keine Konfliktsituation vorliegt, so daß der Benutzer die geforderte Verarbeitung direkt ausführen könnte, wenn er die Daten direkt adressieren könnte, und wenn man
μ dann feststellen könnte, ob eine Konfliktsituation vorgelegen hat oder nicht, könnte der Wirkungsgrad verbessert werden.
Die Aufgabe der Erfindung besteht nur darin, mehre-
ren, um einen Speicherzugriff miteinander konkurrierenden Benutzern (Prozessoren, Programme) in einem Oatenverarbeitungssystem die Benutzung von Informationen in einem gemeinsamen Speicherbereich zu er- :-' möglichen. Es sollen insbesondere kleine Dateneinheiten so angsteuert werden können, daß sich die Notwendigkeit der Überprüfung einer separat vorgenommenen ; Verriegelung vor dem Zugriff der zugehörigen gemeinsamen Daten erübrigt.
■ ■: Gelöst wird diese Aufgabe durch die im Anspruch 1 * bzw. durch di? im Anspruch 2 angegebenen Merkmale. j Durch die Erfindung wird der Vorteil erzielt, daß der '>■} Aufwand bei der Zugriffszuteilung zu einem Speicher- p bereich, um den und dessen Inhalt mehrere Benutzer ;; miteinander konkurrieren, gegenüber bekannten Löy sungen wesentlich verringert ist. Es ergeben sich weite- ΐ' re Vorteile bei der Betrachtung der Zeitbilanz, da die '■:'. angegebenen Manipulationen erst dann vorgenommen ; werden, wenn sich tatsächlich Konfliktsituationen im : i Zusammenhang mit dem Zugriff mehrerer Btnutzer auf den gemeinsam benützten Speicherbereich vorliegen. '■ ■'■.; Zu dem Vorteil der Erfindung zählt auch die Tatsache, daß ein Zugriff zu gemeinsam Denutzten Informations- ;■■" einheiten möglich ist, die groß genug sind, um so viel Steuerinformationen zu enthalten, daß das Programm sie dazu verwenden kann, selbst die hierzu notwendige Steuerung für die gemeinsame Benutzung großer Informationseinheiten aufzubauen. Dies ist besonders bei Multi-Verarbeitung und Multi-Programmierung vorteilhaft.
Die genannten Vorteile werden insbesondere aus den nachfolgenden Absätzen deutlich:
Jeder Benutzer gemeinsam benutzter Daten kann diese Daten an ihre adressierbare Stelle im gemeinsam benutzten Datenspeicher zur weiteren Verarbeitung durch die Programminstruktionen adressieren. Nach der Verarbeitung sind die verarbeiteten Daten an die adressierte Stelle des gemeinsamen Speichers zurückzusetzen. Vor der Zurücksetzung der verarbeiteten Daten in die adressierte Stelle des gemeinsamen Speichers wird die neue Instruktion »Vergleiche und Vertausche« adressiert. Die neue Instruktion nimmt Zugriff zur adressierten Stelle im Datenspeicher, um die Daten von dort zu erhalten. Der Dateninhalt der durch diese Instruktion adressierten Stelle wird mit den Daten verglichen, die vor der Verarbeitung von der adressierten Stelle kamen. Durch diesen Vergleich kann festgestellt werden, ob während der Verarbeitung der gemeinsam benutzten Daten ein anderer Benutzer diese Daten zur Verarbeitung ebenfalls adressiert hat oder nicht und einen anderen Wert für die gemeinsam benutzten Daten in die adressierte Speicherstelle zurückgesetzt hat. Wenn aufgrund der neuen Instruktion festgestellt wird, daß der Wert der adressierten Stelle durch einen anderen Benutzer verändert wurde, wird dieser veränderte Wert durch den jetzigen Benutzer festgehalten und die Verarbeitung mit dem veränderten Wert noch einmal eingeleitet. Wenn der Datenwert in der durcii die neue Instruktion adressierten Speicherstelle noch mit dem Wert identisch ist, den der Benutzer dort vor der Verarbeitung erhielt, kann festgestellt werden, daß kein ande-. rer Benutzer die gemeinsamen Daten adressiert und verändert hat. Die verarbeiteten Daten werden daher in die adressierte Stelle übertragen und eine weitere Verarbeitung zugelassen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird im folgenden näher beschrieben. Ei zeigt
Fig. 1 ein Blockdiagramm einer Multiprozessor-Datenverarbeitungssystems einschließlich eines logischen Diagrammes einer Implementierung des Ausführungsbeispieles.
F i g. 2 eine Darstellung des Instruktionsformates der neuen Instruktion »Vergleichen und Vertauschen«,
F i g. 3 ein logisches Diagramm von Modifikationen der in F i g. 1 gezeigten Speichersteuerung und
F i g. 4 ein Ablaufdiagramm der Folge der aufgrund ίο der neuen Instruktion »Vergleichen und Vertauschen« ausgeführten Steuerungen.
Die neue Instruktion »Vergleichen und Vertauschen« der Datenzugriff und der Vergleich von Daten können in zahlreichen Datenverarbeitungssystemen verwirklicht werden. Systeme, die einen Datenspeicher, einer Rechen- und Logikeinheit, einen Mikroprogramm-Steuerabschnitt und geeignete Datenbahnen für die Operation des Ausführungsbeispieles enthalten, sind in
I. US-Patent 34 00 371
2. US-Patent 35 85 599
beschrieben.
In der Literaturangabe 1 wird das Steuerverfahren einer zentralen Verarbeitungseinheit durch Programminstruktionen mit Hilfe eines die Mikroprogramme zur Ausführung der Programminstruktionen enthaltenden Festwertsteuerspeichers beschrieben. In der Literaturausgabe 2 werden alle Hauptteile eines Datenverarbeitungssystemes einschließlich Rechen- und Logikeinheit, einer Steuereinheit, allgemeiner, durch Programminstruktionen adressierbarer. Register und eines Datenspeichers beschrieben.
Die neue Instruktion »Vergleichen und Vertauschen« verändert ein ganzes Doppelwort im Speicher, so daß sie direkt dazu verwendet werden kann, den Informationsinhalt gemeinsamer Speicherbereiche bis zur Länge eines Doppelwortes auf den neuesten Stand zu beringen. Darüber hinaus stellt eine Doppelwort genügend Informationsplatz für die Aufnahme zweier vollständiger Speicheradressen zur Verfügung oder einer Speicheradresse und eines vierzug Bit langen Einheitswertes. Auf diese Weise wird das Programm mit einer ausreichenden Menge an Funktionen ausgestattet, um sieher die Steuerung großer gemeinsamer Speicherbereiche zu programmieren, wobei auch die Möglichkeit einer Endlosschleife auf einer geringeren Programmstufe, als bei bekannten Techniken, gegeben ist.
Die genannte neue Instruktion erzielt dieses auf folgende Weise:
1. Das unbedingte Vertauschen einer Einzeladresse genügt, um einen Sequenzmechanismus auf der Basis »Zuerst herein, zuerst heraus« für einen einzigen Benutzer zu einer bestimmten Zeit zu programmieren.
2. Das bedingte Vertauschen einer Einzeladresse reicht aus, um den Sequenzmechanisinus auf der Basis »Zuletzt herein, zuerst heraus« für einen einzelnen Benutzer zu einer bestimmten Zeit zu programmieren.
3. Das bedingte Vertauschen einer Adresse und eines v;?rzig Bit umfassenden Einheitswertes reicht aus, um die Akquisition und Rückgabe eines freien Spei-
b5 cherblockes zu programmieren, der für Ereignissteuerblöcke, Programmsicherungsbereiche für Aufgabenumschaltung und Arbeitsbereiche zur Durchführune von Aufeahen-1 Irrnrhaltnnoen upi·.
wendet werden kann.
In der vorliegenden Beschreibung bedeutet der Ausdruck »Benutzer« ganz allgemein, daß mehr als eine Programmfolge in einem Datenverarbeitungssystem Zugriff zu Daten fordert, die in einem von den Programmen gemeinsam benutzten adressierbaren Datenspeicher (Bereich) stehen. Bei Betrachtung in Verbindung mit einem Datenverarbeitungssystem, das eine zentrale Verarbeitungseinheit hat, kann das System der Multiprogrammierung fähig sein, d. h., mehrere unabhängige Programmfolgen können die zentrale Verarbeitungseinheit entsprechend ihren Instruktionsfolgen benutzen. In einem Multiprogrammiersystem können Unterbrechungssituationen jedoch Programme mit niedrigerer Priorität von Programmen mit höherer Priorität unterbrechen lassen. Wenn jedes dieser Programme oder jeder Benutzer Zugriff zu den gemeinsamen Daten im Datenspeicher hat, kann ein Programm die Daten zur Verarbeitung durch eine weitere Instruktionsfolge abgerufen haben, dann aber durch ein Programm mit höherer Priorität unterbrochen worden sein, bevor die Programmfolge beendet ist. Das bedeutet, daß die gemeinsamen Daten in der adressierbaren Datenspeicherstelle durch verarbeitete Daten ersetzt werden müssen; das erfolgt jedoch erst, wenn das Programm unterbrochen wird. Das unterbrechende Programm mit höherer Priorität kann ebenfalls die gemeinsamen Daten im Datenspeicher zur Verarbeitung durch eine weitere Instruktionsfolge adressieren, die Verarbeitung beenden und den veränderten Wert der gemeinsamen Daten in die adressierte Stelle zurücksetzen. Wenn das unterbrochene Programm mit niedrigerer Priorität wieder zu dieser Stelle zurückkehrt, um die Verarbeitung der Daten nach seiner Instruktionsfolge zu beenden, werden die Verarbeitungsergebnisse insofern falsch, als das Programm mit höherer Priorität die gemeinsamen Daten ja inzwischen verändert hat. Bei der bisherigen Technik hat ein Programm, welches zuerst Zugriff zu den gemeinsamen Daten hat, eine zu diesen Daten gehörende Verriegelung aufgesetzt, die durch das Programm mit höherer Priorität untersucht wurde, und dann stellte dieses Programm fest, daß die Daten bereits vorher adressiert wurden und daher benutzt wurden. Das Programm mit höherer Prorität muß daher daran gehindert werden, die gemeinsamen Daten zu benutzen.
In einem Datenverarbeitungssystem, welches zwei oder mehr zentrale Verarbeitungseinheiten enthält, von denen jede den gemeinsamen Speicher bei der Ausführung unabhängiger Programminstruktionsfolgen benutzt entsteht dieselbe Schwierigkeit bei der Benutzung der gemeinsamen Daten, wenn die zentralen Verarbeitungseinheiten Zugriff zu den gemeinsamen Daten zur weiteren Verarbeitung und zum Ersatz dieser Daten suchen. In diesen Situationen sind normalerweise (Stand der Technik) Verriegelungen erforderlich, um eine der zentralen Verarbeitungseinheiten am Zugriff zu den gemeinsamen Daten zu hindern.
Wenn der zweite Benutzer Zugriff zum gemeinsamen Speicher sucht, konnte bisher der Konflikt dadurch gelöst werden, daß man entweder die Verarbeitungseinheit warten ließ, bis der erste Benutzer die Benutzung des gemeinsamen Bereiches beendet hat oder indem man die Verarbeitungseinheit auf einen anderen Benutzer umschalten ließ. Wenn man die Verarbeitungseinheit (Prozessor) jedoch auf einen anderen Benutzer umschalten läßt, ist damit normalerweise eine Fortschreibung verschiedener Worte, Schlangen und Kennzeichen im Steuerprogramm verbunden. Der Versuch, einen Konflikt bei gemeinsam benutzten Datenbereichen durch Umschaltung des Prozessors in einem Multiprozessorsystern auf einen neuen Benutzer zu lösen birgt die Möglichkeit in sich, verschiedene Konflikte zwischen Prozessoren in gemeinsamen Steuerbereichen im Steuerprogramm auszulösen. Wenn der Prozessor kein Instruktion mit der Möglichkeit der Fortschreibung des Kennzeichens oder Vorlaufsatzes und der zugehörigen
ίο Worteschlangen gibt, ist das Steuerprogramm gezwungen, zum Aussetzen des Prozessors zurückzukehren, bis der gemeinsame Steuerbereich frei ist.
In der vorliegenden Erfindung wird der Ausdruck Daten im allgemeinen Sinne benutzt. Daten können ein nummerischer Wert sein, der von einer adressierten Stelle des gemeinsam benutzten Speichers abgerufen und manipuliert oder verarbeitet werden kann zu einem ( neuen Wert, der in die adressierte Stelle wieder einzu- ! setzen ist. Die Daten in der adressierten Stelle des Da- :
tenspeichers können außerdem die Form einer Anzahl einzelner Felder haben, von denen jedes eine für das Datenverarbeitungssystem Wert darstellende Information liefert. Zu solchen Daten kann eine Anzahl von Feldern gehören, die einen zu der programmierten Steuerung einer größeren Serie wieder verwendbaren Quelle (SRR) gehörenden Vorlaufsatz bilden. Eine SRR ! kann ein anderes Programm, eine Tabelle, ein Datenfeld oder ein anderer Teil der Maschinenausrüstung eines Datenverarbeitungssystems sein, die alle von einer Anzahl von Benutzern gemeinsam benutzt werden können. Der Dateninhalt des Vorlaufsatzes ist der gemeinsame Startpunkl zur Bestimmung der Zustände der SRR-entweder frei oder belegt — und er dient auch für War- , teschlangenanforderungen, wenn Wettbewerbsbedin- ,' gungen auftreten, d. h., ein Benutzer muß zuerst den Vorlaufsatz ansprechen, der zu der SRR gehört um festzustellen, ob die SRR belegt ist, wieviele Benutzer bereits Zugriff zu ihr gefordert haben und er muß seinen Benutzungswunsch ebenfalls anzeigen. Abhängig vom Informationsinhalt des Vorlaufsatzes kann der Benutzer : daher direkten Zugriff zur SRR erhalten und muß er den Vorlaufsatz so modifzieren, daß er die Benutzung der SRR reflektiert. Durch Untersuchung des Vorlaufsatzes kann der Benutzer feststellen, daß andere Benutzer bereits Zugriff zur SRR haben, und daher muß der den Zugriff wünschende Benutzer den Vorlaufsatz so verändern, daß sein Benutzungswunsch darin reflektiert wird und er muß außerdem verschiedene Zahlenwerte und Adreßzeiger verändern, damit die Warteschlangenein-Ordnung weiterer Anforderungen für die SRR ermöglicht wird. Die Untersuchung und Verarbeitung der Information im Vorlaufsatz fordert eine Anzahl von. Programmfolgen, bevor der Benutzer den Vorlaufsatz an die adressierte Stelle zurückgibt.
In der vorliegenden Beschreibung bezeichnet der ' Ausdruck Register jeden Datenbereich, der dem Benutzer fest zugeordnet ist im Gegensatz zu dem gemeinsamen Datenbereich, der umfassend und vielen Benutzern gemeinsam ist Der Ausdruck Register kann vorüberge-
bo hende Arbeitsregister oder adressierbare Vielzweckregister in einer zentralen Verarbeitungseinheit bezeichnen.
Die Benutzer können Zugriff zu gemeinsamen Daten oder Vorlaufsätzen zur weiteren Verarbeitung nehmen.;
(>■> Die Notwendigkeit einen Zugriff zur adressierten Stelle, zu verhindern, wenn ein anderer Benutzer die Daten verarbeitet wird durch die vorliegende Lösung ausgeschaltet .'::
F i g. 1 zeigt in einem Blockdiagramm ein Datenverarbeitungssystem, welches das Konzept von Multiprozessorkonfigurationen enthält, d. h., ein adressierbarer gemeinsam benutzter Speicher 10 ist durch eine Speichersteuerung 11 für einen Prozessor 12 zugänglich, der als »Prozessor 1« bezeichnet ist oder einen Prozessor 13, der als »Prozessor 2« bezeichnet ist. Der gemeinsame Speicher 10, die Speichersteuerung 11 und die Prozessoren 12 oder 13 haben im wesentlichen die Konfiguration eines IBM Systemes 370 Modell 155. Die Computerfamilie der IBM Systeme 370 hat eine Anzahl von Forderungen in der Maschinenausrüstung und in den Instruktionsformaten. Zum Verständnis der vorliegenden Erfindung wird nur ein Instruktionsformat beschrieben und seine Ausführung unter Verwendung der strukturell definierten durch Instruktionen adressierbaren Vielzweckregister erklärt, von denen insgesamt sechzehn vorhanden sind.
Zu den wichtigeren Teilen einer zentralen Verarbeitungseinheit, wie sie in Form des Prozessors 12 gezeigt ist, gehören eine Rechen- und Logikeinheit (ALU) 14, eine Steuerung 15 und ein E/A-Kanalabschnitt 16. Bei der Beschreibung der in F i g. 1 gezeigten verschiedenen Teile in der oben erwähnten Literaturangabe 2 umfassen die Fig. 5A—5C die ALU 14, Fig.4 die Steuerung 15 und Fig. 6A—6E die Speichersteuerung 11.
Bevor die Logik und Arbeitsweise des Ausführungsbeispieles beschrieben wird, wird insbesondere auf die in der Quellenangabe 2 gezeigte Logik verwiesen. Diese umfaßt sechzehn allgemeine Register in der CPU LS 106 der Fig.5A und den Parallelenaddierer 100 in F i g. 5B für eine Vergleichsoperation. Die Dekodierung der neuen Instruktion »Vergleichen und Vertauschen«, die später genauer zu beschreiben ist, erfolgt in den Instruktionsregistern 108Λ —Cder F i g. 5C. Mit der Dekodierung von Instruktionen wird eine Mikroprogrammfolge eingeleitet vom Festwertspeicher-Steuerabschnitt in F i g. 4 der Quellenangabe 2.
In Verbindung mit der zentralen Verarbeitungseinheit 13 der Fig. 1 ist das logische Funktionieren der ALU 14 und des Steuerteiles 15 des Prozessors 12 gezeigt. Der Datenweg zwischen dem Prozessor 13 und dem gemeinsamen Speicher 10 enthält normalerweise eine Sammelleitung 17, die die von der Speichersteuerung 11 für den Zugriff zu Daten an einer adressierten Stelle, wie sie bei 18 im gemeinsamen Speicher 10 gezeigt ist, benutzte Daten- und Adreßinformation führt. Der Inhalt der adressierten Stelle 18 kann aus beliebigen Daten bestehen. Die gestrichelten Linien 19 und 20 zeigen den logischen Weg der verschiedenen Datenteile zwischen dem Prozessor 13 und der adressierten Stelle 18. Die sechzehn durch Instruktionen adressierbaren allgemeinen Register sind bei 21 gezeigt.
Um das Funktionieren der Arbeitsweise der neuen Instruktion »Vergleichen und Vertauschen« zu beschreiben wird angenommen, daß eine vorhergehende Instruktion einer Programmfolge die adressierbare Stelle 18 adressiert und die Daten in ein bestimmtes der allgemeinen Register 22 übertragen hat Nachdem die Daten von der adressierten Stelle 18 in das allgemeine Register 22 gesetzt sind läuft die weitere Programmfolge in der ALU ab und das Ergebnis wird in ein anderes bestimmtes allgemeines Register 23 gesetzt Nach der Adressierung der Stelle 18 steht daher der Inhalt der adressierten Stelle 18 im allgemeine Register 22, die Ergebnisse der Programminstruktionen, die mit den Daten gearbeitet haben, haben jedoch einen veränderten Wert dieser Daten in das allgemeine Register 23 gesetzt Nachdem die verarbeiteten Daten in das allgemeine Register 23 gesetzt worden sind, gibt die Instruktionsfolge die Instruktion »Vergleichen und Vertauschen« ab. Die durch diese Instruktion spezifizierten adressierbaren Daten sind in Fig. 2 gezeigt. In dem in Fig.2 gezeigten Instruktionsformat wird der Operationscode in den Bits 0—7 dekodiert, zur Bezeichnung der Vergleichs- und Austauschinstrukiion. Durch die Adreßinformation in den übrigen Teilen der Instruktion werden
ίο drei verschiedene Operanden bezeichnet. Die Bits 8—11 mit der Beschriftung R 1 bezeichnen das allgemeine Register 22, welches den Operanden 1 enthält. Die Bits 12—15 mit der Beschriftung R 3 bezeichnen das allgemeine Register 23, welches die verarbeiteten Daten oder den Operanden 3 enthält. Die Bits 16 bis 19 mit der Beschriftung B 2 bezeichnen das allgemeine Register, welches die Basisadreßinformation enthält, zu der die übrigen Bits 20—31 der Instruktion mit der Beschriftung D 2 addiert werden, um die adressierte Stel-Iel8 im gemeinsamen Speicher 10 zu bezeichnen.
Durch die Dekodierung der in F i g. 2 gezeigten Instruktion wird der Operand von der adressierten Stelle 18 adressiert und logisch auf der Leitung 19 an ein ALU Register 24 übertragen. Der Operand 2 wird dann in einer Vergleicherschaltung 25 logisch mit dem Operanden 1 verglichen. Die Vergleicherschaltung 25 kann der Paralleladdierer 100 der oben erwähnten Quellenangabe 2 sein, der eine Subtraktion des Operanden 1 vom Operanden 2 vornimmt, um am Addiererausgang lauter Nullen zu erhalten. Die Vergleicherschaltung 25 kann aber auch aus einem separaten Satz von Antivalenzgliedern bestehen. Die Ergebnisse der Vergleichsoperation bei 25 erzeugen entweder ein Signal auf der Leitung 26, welches die Gleichheit der Operanden 1 und 2 anzeigt, oder über einen Inverter 27 ein Signal auf der Leitung 28, welches die Verschiedenheit der Operanden 1 und 2 anzeigt.
Das die Übereinstimmung anzeigende Signal auf der Leitung 26 schaltet ein Schaltglied 29 und das die Verschiedenheit anzeigende Signal auf der Leitung 28 schaltet ein Schaltglied 30 ein. Wenn Gleichheit der Operanden 1 und 2 festgestellt wird, wird durch das eingeschaltete Schaltglied 29 der Operand 3 von der allgemeinen Registerstelle 23 in die adressierte Stelle 18 logisch auf der Leitung 20 übertragen. Wenn durch ein Signal auf der Leitung 28 die Verschiedenheit der Operanden angezeigt und das Schaltglied 30 eingeschaltet wird, wird der im ALU Register 24 enthaltene Operand 2 im allgemeinen Register 22 gespeichert und er ersetzt
so die Daten des Operanden 1.
Außerdem wird aufgrund des Gleichheitssignales auf der Leitung 26 der Bedingungscode des IBM Systems 370 auf Null gesetzt (CCO). Andererseits wird durch die Anzeige der Verschiedenheit der Operanden 1 und 2 der Bedingungscode auf Eins gesetzt (CCl). Wenn der Bedingungscode auf Null gesetzt wird heißt das, daß der Operand 3 den Operanden 2 ersetzt hat und die Verarbeitung weiterlaufen kann.
Mit der »Vergleichs- und Vertauschinstruktion« nach der Verarbeitung der adressierten gemeinsamen Daten kann also festgestellt werden, ob ein Konflikt bei der Benutzung der adressierten Stelle im Datenspeicher aufgetreten ist oder nicht Daher wird mit einer Programminstruktion nach der »Vergleichs- und Vertauschinstruktion« festgestellt ob die Folge der Programminstruktionen mit der weiteren Verarbeitung fortgesetzt werden kann, wenn festgestellt wurde, daß kein anderer Benutzer die Daten in der gemeinsam be-
ίο
nutzten Adreßstelle verändert hat, oder ob der die »Vergleichs- und Vertauschinstruktion« ausgeführt habende Benutzer jetzt die Folge von Programminstruktionen mit dem neuen Datenwert an der adressierten Stelle, der jetzt im allgemeinen Register 22 steht, wieder einleiten oder wieder ausführen muß oder nicht. Zur Prüfung des vorher gesetzten Bedingungscode wird eine Instruktion des Systems 370, »Verzweigen bei Bedingungscode« benutzt. Diese Instruktion stellt fest, ob eine weitere Verarbeitung stattfinden kann oder nicht oder der Benutzer zur Instruktionsfolge nach der Adressierung der gemeinsamen Daten in der adressierten Stelle 18 des Datenspeichers 10 zurückverzweigen muß. Die Benutzung der Instruktion »Verzweigen bei Bedingungscode« ist in der oben erwähnten Quellenangabe 1 in Spalte 43 beschrieben und ein Verfahren der fviikroprogrammierung einer solchen Ausführung ist in Verbindung mit F i g. 5agl gezeigt.
Die oben erwähnte Benutzung der Programminstruktion »Vergleichen und Vertauschen« gilt für ein Datenverarbeitungssystem, in dem eine zentrale Verarbeitungseinheit gemeinsam von einer Anzahl unterbrechungsfähiger Benutzerprogramme benutzt wird, d. h., ein Benutzprogramm kann die gemeinsamen Daten an der Adreßstelle 18 adressiert und die Programmreihenfolge begonnen haben, um die Daten zu verändern und dann durch ein Programm mit höherer Priorität unterbrochen worden sein. Die Zwischenergebnisse des unterbrochenen Programmes werden gerettet. Wenn das Programm mit höherer Priorität beendet ist, wird das Programm mit niedrigerer Priorität wieder aufgenommen und die Zwischenergebnisse werden zurückgegeben, wobei die »Vergleichs- und Vertauschinstruktion«, die in die Instruktionsfolge eingeschoben wurde sicherstellt, daß das andere Benutzerprogramm die Daten in der Adreßstelle 18 nicht verändert hat, wenn das Programm mit niedrigerer Priorität die Verarbeitung dieser Daten abgeschlossen hat.
Eine andere Anwendung der »Vergleichs- und Vertauschinstruktion« findet sich in einem Datenverarbeitungssystem, das zwei oder mehr Prozessoren, wie sie in Fig. 1 gezeigt sind, enthält. Da die Prozessoren in diesem Datenverarbeitungssystem mehr oder weniger asynchron und unabhängig arbeiten, kann jeder versuchen. Zugriff zur Adreßstelle 18 im gemeinsam benutzten Speicher 10 zu bekommen. Die Verwirklichung der »Vergleichs- und Vertauschinstruktion« in einem mehrere Prozessoren umfassenden Datenverarbeitungssystem verlangt daher, daß der gemeinsame Speicher 10 düngen mit der Speichersteuerung 11 eines jeden der Prozessoren 12 und 13 bestehen müssen, um auf eine »Vergleichs- und Vertauschinstruktion« zu reagieren und den Zugriff zu einer adressierten Stelle in einem gemeinsamen Speicher durch einen anderen Prozessor zu verhindern, wenn der die »Vergleichs- und Vertauschinstruktion« ausführende Prozessor die andressierte Stelle gerade benutzt.
Der gemeinsame Speicher 10 der Fig. 1 besteht daher aus zwei Teilen oder Einheiten. Jede Speichereinheit hat einen lokalen Prozessor und einen entfernt stehenden Prozessor, der an ihre zugehörige Speichersteuereinheit angeschlossen ist.
Anforderungen an die Speichereinheit von den Prozessoren 12 und 13 werden der Reihe nach berücksichtigt, d. h., wenn keine spezielle Speicherzugriffsanforderung vorliegt, enthält jede Steuereinheit einen Trigger (Schalter) 32 der abwechselnd die Benutzung einer bestimmten Speichereinheit durch die beiden Prozessoren gestattet. Zusätzlich zu der normalen Anschlußunterbrechungs- und Prioritätssteuerung kann jede Speichersteuereinheit 11 einem Prozessor das Versiegeln des anderen Prozessors bezüglich des Speichers für die kurze Ausführungszeit der »Vergleichs- und Vertauschinstruktion« gestatten. Diese Steuerungen werden durch zwei Verriegelungsschaltungen implementiert, eine lokale Verriegelung 33 und eine Fernverriegelung 34, die dem lokalen bzw. dem entfernt aufgestellten Prozessor zugeordnet sind. Die Fernverriegelung 34 steuert den Zugriff zur Speichereinheit durch den entferntstehenden Prozessor und wird durch die Anforderung von dem anderen lokalen Prozessor verriegelt. Andererseits wird der Zugriff durch den lokalen Prozessor durch Verriegelung der lokalen Verriegelung 33 und durch Steue-J5 rung des entfernt stehenden Prozessors gesteuert.
Ein Prozessor kann den anderen Prozessor von einem Speicher ausschließen durch Abgabe einer Spezialanforderung »Abruf und Verriegelung« an die adressierte Speichereinheit. Wenn eine solche Anforderung durch eine bestimmte Speichereinheit berücksichtigt wird, werden die Daten entweder in den lokalen oder den entfernt stehenden Prozessor zurückgegeben und es wird ein Signal erzeugt, welches einen erfüllten Abruf und eine Verriegelung anzeigt. Bei Verbindung mit einem entfernt stehenden Prozessor wird eine Leitung 35 eingeschaltet, und bei Verbindung mit einem Lokalprozessor eine Leitung 36, wodurch abwechselnd die Verriegelung 33 oder 34 verriegelt werden. Wenn z. B. die Lokalverriegelung 33 dadurch verriegelt wird, daß der
zum Beispiel für den Prozessor 12 nicht verfügbar ge- so entfernt stehende Prozessor eine »Vergleichs- und Verhalten wird, während der Prozessor 13 den Operanden 2 tauschinstruktion« ausführt, schaltet ein Inverter 37 ein zu Vergleichszwecken adressiert Der Prozessor 12 muß
am Zugriff gehindert werden, während der Operand 2 in
der Vergleicherschaltung 25 verglichen wird und die UND-Glied 38 ab, um ein Einschalten des UND-Gliedes 39 durch die normale logische Funktion des Triggers zu verhindern. Ein Inverter 40, ein UND-Glied 41 und
Entscheidung getroffen wird, ob der Operand 3 aus dem 55 ein UND-Glied 42 arbeiten genauso, bevor der entfernt allgemeinen Register 23 in die adressierte Stelle 18 des stehende Prozessor Zugriff zu dem zu lokalen Prozessor
gemeinsamen Speichers 10 gesetzt werden soll oder nicht Der gemeinsame Speicher ist in F i g. 1 als eine Einheit dargestellt; viele Multiprozessorsysteme sind je-
gehörenden Datenspeicher erhält Die Verriegelung 33 oder die Verriegelung 34 werden
durch das Ausgangssignal eines der ODER-Glieder
doch so aufgebaut, daß jeder der Prozessoren 12 und 13 eo oder 44 entriegelt. Die lokale Verriegelung 33 wird ausüber einen zugehörigen Speicher 10 und eine Speicher- geschaltet, sobald der entfernt stehende Prozessor eine steuerung 11 verfügt. Der Prozessor 12 hat daher eine andere Spcichcranfordcrung erfüllt hat, was durch ein Verbindung 31 zu seiner Arbcitsspeichersteucrung Il Signal aiii der Leitung 45 angezeigt wird oder sobald er und eine Verbindung 17 vom Prozessor 13 zur Speicher- eine Ausnahmebedingung erfüllt was durch ein Signal steuerung 11 des Prozessors 12. Dieselbe Wechselver- 65 auf einer Leitung 46 angezeigt wird,
bindung besteht für den Speicher 10 und die Speicher- F i g. 4 erfaßt in einem Funktions-Ablaufdiagramm
steuerung 11 des Prozessors 13. die vorher beschriebene Operation zusammen, die nach
Das Logikdiagramm in F i g. 4 zeigt, welche Verbin- dem Ausführungsbeispiel die gemeinsame Benutzung
11 12
von Daten in einem Datenspeicher durch mehrere Benutzer gestattet, ohne daß alle anderen Benut/.er an der Benutzung der Daten gehindert werden müssen, während diese gemeinsamen Daten durch einen Benutzer verarbeitet werden. Die erneute Ausführung der Verarbeitung der gemeinsam benutzten Daten wird außerdem automatisch eingeleitet, wenn nach der Verarbeitung festgestellt wird, daß tatsächlich ein Konflikt vorlag.
Während des Schrittes 47 wird der Operand 2 in der adressierten Stelle 18 des gemeinsamen Speichers 10 abgerufen und die die adressierte Stelle enthaltende Speichereinheit von einem weiteren Zugriff nach der Logik in Fig. 3 ausgeschlossen. Im Schritt 48 wird der Operand 2 von der adressierten Stelle 18 mit dem Operanden 1 im Allzweckregister 22 verglichen, der den Wert des Inhaltes der adressierten Stelle 18 vor der Verarbeitung durch ein Programm hat. Die abwechselnden Signale 26 oder 28 zur Bezeichnung von Gleichheit oder Verschiedenheit der beiden Operanden 1 und 2 werden bei 49 abgegeben. Wenn die Operanden 1 und 2 voneinander verschieden sind, wird der gemeinsame Speicher aus dem Verriegelungszustand bei 50 entlassen und bei 51 der Inhalt der adressierten Stelle 18, die den Operanden 2 darstellt, durch das Schaltglied 30 in das Allzweckregister 22 geleitet, wo er den Operanden 1 ersetzt. Bei 52 wird der Bedingungscode auf Eins gesetzt und dadurch angezeigt, daß die Operanden voneinander verschieden waren und daß das Programm, das die Daten von der adressierten Stelle 18 verarbeitete, jo erneut eingeleitet werden sollte.
Wenn andererseits bei 49 eine Übereinstimmung der Operanden 1 und 2 festgestellt wird heißt es, daß keine weiteren Veränderungen mit dem Inhalt der adressierten Stelle 18 vorgenommen wurden, während der Benutzer diesen Inhalt zur Erzeugung eines Ergebnisses verarbeitete, das im Allzweckregister 23 gespeichert ist. Bei 53 wird daher das Schaltglied 29 zum Speichern des Operanden 3 aus dem Allzweckregister 23 in die adressierte Speicherstelle 18 eingeschaltet, wo er den Operanden 2 ersetzt. Bei 54 wird der Bedingungscode auf NuI! gesetzt und zeigt an, daß die weitere Verarbeitung durch den die Vergleichs- und Austauschinstruktion ausgeführt habenden Benutzer eingeleitet werden kann.
Die Funktion des vorliegenden Ausführungsbeispiels besteht also im Austausch von Daten aufgrund der Instruktion »Vergleichen und Vertauschen«, d. h., aufgrund der Ausführung der Instruktion »Vergleichen und Vertauschen« wird der Operand 1 ersetzt durch den Operanden 2 oder der Operand 2 durch den Operanden 3.
Hierzu 2 Blatt Zeichnungen
60
65

Claims (2)

Patentansprüche:
1. Einrichtung in einer Datenverarbeitungsanlage mit mehreren Prozessoren zur Steuerung des Zugriffs konkurrierender Prozessoren zu einem adressierten Speicherbereich, dessen Informationsinhalt von jedem Prozessor durch Operationen veränderbar ist, gekennzeichnet durch jeweils einem Prozessor zugeordnete erste Register (22) zur Speicherung der aus dem adressierten Speicherbereich (18) jeweils ausgelesenen Informationen und jeweils einem Prozessor zugeordnete zweite Register (23) zur Speicherung der jeweils veränderten Informationen und durch eine in jedem Prozessor vorgesehene Vergleichseinrichtung (25) zum Vergleich der Information in dem adressierten Bereich des gemeinsamen Speichers mit der information im ersten Register (22) des zugreifenden Prozessors, die Signale erzeugt, die eine Gleichheit oder Ungleichheit anzeigen, wobei das Signal, welches eine Ungleichheit anzeigt, eine erste Torschaltung (30) steuert, so daß die im adressierten Speicherbereich (18) enthaltene Information in das erste Register (22) gelangt, damit für die anschließende Wiederholung der Operation die derzeit gültige Information vorliegt, oder wobei das Signal, welches eine Gleichheit anzeigt, eine zweite Torschaltung (29) steuert, so daß die veränderte Information aus dem zweiten Register (23) des zugreifenden Prozessors in den adressierten Bereich (18) gelangt.
2. Einrichtung in einer Datenverarbeitungsanlage mit Mehrfachprogrammierung zur Steuerung des Zugriffs konkurrierender Programme zu einem adressierten Speicherbereich, dessen Informationsinhalt von jedem Programm durch Operationen verändert ist, gekennzeichnet durch jeweils einem Programm zugeordnete erste Register (22) zur Speicherung der aus dem adressierten Speicherbereich (18) jeweils ausgelesenen Informationen und jeweils einem Programm zugeordnete zweite Register (23) zur Speicherung der jeweils veränderten Informationen und durch eine Vergleichseinrichtung (25) zum Vergleich der Information in dem adressierten Bereich des gemeinsamen Speichers mit der Information im ersten Register (22) des zugreifenden Programms, die Signale erzeugt, die eine Gleichheit oder Ungleichheit anzeigen, wobei das Signal, welches eine Ungleichheit anzeigt, eine erste Torschaltung (30) steuert, so daß die im adressierten Speicherbereich (18) enthaltene Information in das erste Register (22) gelangt, damit für die anschließende Wiederholung der Operation die derzeit gültige Information vorliegt, oder wobei das Signal, welches eine Gleichheit anzeigt, eine zweite Torschaltung (29) steuert, so daß die veränderte Information aus dem zweiten Register (23) des zugreifenden Programms in den adressierten Bereich (18) gelangt.
DE2430127A 1973-06-29 1974-06-22 Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer Expired DE2430127C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US375224A US3886525A (en) 1973-06-29 1973-06-29 Shared data controlled by a plurality of users

Publications (2)

Publication Number Publication Date
DE2430127A1 DE2430127A1 (de) 1975-01-16
DE2430127C2 true DE2430127C2 (de) 1984-08-30

Family

ID=23480024

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2430127A Expired DE2430127C2 (de) 1973-06-29 1974-06-22 Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer

Country Status (5)

Country Link
US (1) US3886525A (de)
JP (1) JPS5412300B2 (de)
DE (1) DE2430127C2 (de)
FR (1) FR2235425B1 (de)
GB (1) GB1432279A (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS586973B2 (ja) * 1975-02-20 1983-02-07 パナフアコム カブシキガイシヤ メモリコテイバンチアクセスセイギヨホウシキ
US4162529A (en) * 1975-12-04 1979-07-24 Tokyo Shibaura Electric Co., Ltd. Interruption control system in a multiprocessing system
US4212057A (en) * 1976-04-22 1980-07-08 General Electric Company Shared memory multi-microprocessor computer system
US4224664A (en) * 1976-05-07 1980-09-23 Honeywell Information Systems Inc. Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system
US4181937A (en) * 1976-11-10 1980-01-01 Fujitsu Limited Data processing system having an intermediate buffer memory
JPS5815815B2 (ja) * 1976-11-18 1983-03-28 日本電信電話株式会社 共通情報管理方式
US4130868A (en) * 1977-04-12 1978-12-19 International Business Machines Corporation Independently controllable multiple address registers for a data processor
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
US4164787A (en) * 1977-11-09 1979-08-14 Bell Telephone Laboratories, Incorporated Multiple microprocessor intercommunication arrangement
JPS54133041A (en) * 1978-04-07 1979-10-16 Hitachi Ltd Multi computer system providing debug computer
FR2433792A1 (fr) * 1978-08-17 1980-03-14 Cii Honeywell Bull Dispositif universel d'echange d'informations entre les memoires d'ordinateur et les dispositifs de traitement qui le compose
US4249241A (en) * 1978-10-23 1981-02-03 International Business Machines Corporation Object access serialization apparatus for a data processing system
JPS564854A (en) * 1979-06-22 1981-01-19 Fanuc Ltd Control system for plural microprocessors
US4325116A (en) * 1979-08-21 1982-04-13 International Business Machines Corporation Parallel storage access by multiprocessors
US4354227A (en) * 1979-11-19 1982-10-12 International Business Machines Corp. Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles
US4400773A (en) * 1980-12-31 1983-08-23 International Business Machines Corp. Independent handling of I/O interrupt requests and associated status information transfers
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4591977A (en) * 1983-03-23 1986-05-27 The United States Of America As Represented By The Secretary Of The Air Force Plurality of processors where access to the common memory requires only a single clock interval
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
JPS63149737A (ja) * 1986-12-12 1988-06-22 Fujitsu Ltd マルチプログラミング処理方式
EP0357768B1 (de) * 1988-03-14 1994-03-09 Unisys Corporation Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem
JPH0256625A (ja) * 1988-08-23 1990-02-26 Hitachi Ltd データ共用システムおよびデータ更新方式
US5081572A (en) * 1988-10-28 1992-01-14 Arnold Michael E Manipulation of time-ordered lists and instructions therefor
US5386525A (en) * 1991-10-29 1995-01-31 Pacific Bell System for providing application programs with direct addressability into a shared dataspace
DE69326705T2 (de) * 1992-02-14 2000-04-27 Motorola, Inc. Verfahren und Anordnung zur Feststellung der Befehlsablauffolge in einem Datenverarbeitungssystem
JP2962060B2 (ja) * 1992-07-17 1999-10-12 富士ゼロックス株式会社 共同作業方法および装置
US5649102A (en) * 1993-11-26 1997-07-15 Hitachi, Ltd. Distributed shared data management system for controlling structured shared data and for serializing access to shared data
US5822511A (en) * 1996-09-03 1998-10-13 Motorola, Inc. Smart compare tool and method
US7539849B1 (en) * 2000-01-20 2009-05-26 Sun Microsystems, Inc. Maintaining a double-ended queue in a contiguous array with concurrent non-blocking insert and remove operations using a double compare-and-swap primitive
US7000234B1 (en) 2000-01-20 2006-02-14 Sun Microsystems, Inc. Maintaining a double-ended queue as a linked-list with sentinel nodes and delete flags with concurrent non-blocking insert and remove operations using a double compare-and-swap primitive
AU2001255456A1 (en) * 2000-04-18 2001-10-30 Sun Microsystems, Inc. Concurrent shared object implemented using a linked-list with amortized node allocation
US6826757B2 (en) 2000-04-18 2004-11-30 Sun Microsystems, Inc. Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value
US6880071B2 (en) 2001-04-09 2005-04-12 Sun Microsystems, Inc. Selective signalling of later reserve location memory fault in compound compare and swap
US7065765B2 (en) * 2001-12-05 2006-06-20 International Business Machines Corporation Serializing event handling in a threaded system with no wait states
US7814488B1 (en) 2002-09-24 2010-10-12 Oracle America, Inc. Quickly reacquirable locks
US7257705B2 (en) * 2002-11-18 2007-08-14 Sparta Systems, Inc. Method for preserving changes made during a migration of a system's configuration to a second configuration
GB2437760A (en) * 2006-05-03 2007-11-07 Ibm Computer program for compare, swap and store facility with no external serialization
US7624237B2 (en) * 2006-05-03 2009-11-24 International Business Machines Corporation Compare, swap and store facility with no external serialization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US27485A (en) 1860-03-13 Augustus tufts
US3566357A (en) * 1966-07-05 1971-02-23 Rca Corp Multi-processor multi-programed computer system
US3585599A (en) * 1968-07-09 1971-06-15 Ibm Universal system service adapter
US3579199A (en) * 1969-02-03 1971-05-18 Gen Motors Corp Method and apparatus for fault testing a digital computer memory
DE2064383C3 (de) * 1970-01-12 1981-02-26 Fujitsu Ltd., Kawasaki, Kanagawa (Japan) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
US3671940A (en) * 1970-03-19 1972-06-20 Burroughs Corp Test apparatus for digital computer
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
US3781810A (en) * 1972-04-26 1973-12-25 Bell Telephone Labor Inc Scheme for saving and restoring register contents in a data processor

Also Published As

Publication number Publication date
GB1432279A (en) 1976-04-14
FR2235425A1 (de) 1975-01-24
FR2235425B1 (de) 1976-07-16
JPS5024045A (de) 1975-03-14
DE2430127A1 (de) 1975-01-16
US3886525A (en) 1975-05-27
JPS5412300B2 (de) 1979-05-22

Similar Documents

Publication Publication Date Title
DE2430127C2 (de) Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE68921906T2 (de) Verfahren für ein Multiprozessorsystem mit sich selbst zuordnenden Prozessoren.
DE69032334T2 (de) Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE68928677T2 (de) Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle
DE3750306T2 (de) System zum Gewährleisten der logischen Unversehrtheit von Daten.
DE68929483T2 (de) Datenprozessor mit einer Befehlseinheit, die einen Cachespeicher und einen ROM aufweist.
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE3851746T2 (de) Sprungvorhersage.
DE2835095C2 (de) Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE2417795C2 (de) Datenverarbeitungsanlage
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE4301417A1 (de)
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE68925397T2 (de) Pipelineprozessor
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
CH619309A5 (de)
DE68924400T2 (de) Fliessbanddatenverarbeitungsvorrichtung.
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE1549480A1 (de) Datenverarbeitungsanlage
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE69022704T2 (de) Prozessor mit mehreren mikroprogrammierten Einheiten und mit einem Mechanismus zur vorzeitigen Befehlsausführung.

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee