DE2430127C2 - Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer - Google Patents
Einrichtung zur Steuerung des Speicherzugriffs konkurrierender BenutzerInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
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
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:
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-
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
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
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)
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.
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)
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)
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 |
-
1973
- 1973-06-29 US US375224A patent/US3886525A/en not_active Expired - Lifetime
-
1974
- 1974-04-19 FR FR7414339A patent/FR2235425B1/fr not_active Expired
- 1974-05-15 GB GB2150974A patent/GB1432279A/en not_active Expired
- 1974-05-28 JP JP5942174A patent/JPS5412300B2/ja not_active Expired
- 1974-06-22 DE DE2430127A patent/DE2430127C2/de not_active Expired
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 |