-
Diese Erfindung bezieht sich auf den Zugriff auf einen
geschützten Speicher.
-
Gegenwärtige Anwendungen der Datenverarbeitung schließen die
Forderung ein, daß mehrere Tasks gleichzeitig durchgeführt
werden. Diese Tasks erfordern Lese- und Schreibzugriff auf
Datenspeicher in den Datenverarbeitungssystemen. Probleme treten
auf, wenn diese Multi-Task-Transaktionen versuchen, gleichzeitig
Daten in dem Speicher zu lesen und in ihn zu schreiben. Diese
Probleme entstehen, wenn das System versucht, für
Gleichzeitigkeit von Transaktionen zu sorgen, während es
sicherstellt, daß die Durchführung von Tasks in eingeplanter
Weise durchgeführt wird, d. h., daß eine Task vor der anderen
ausgeführt wird. Diese Probleme werden in einem Aufsatz
angesprochen mit dem Titel "Transaction Monitoring ENCOMPASS:
Reliable Distributed Transaction Processing", veröffentlicht in
den IEEE Proceedings on Very Large Data Bases, September 1981,
Seiten 244-254. Darüberhinaus adressiert eine Patentanmeldung
(88 30 8752.0) mit dem Titel "Concurrent Record Access Database
System" auch die Probleme der Verarbeitung gleichzeitiger
Transaktionen. Ein Sperrprotokoll sorgt für gleichzeitigen
Zugriff auf Daten in einem Speicher durch mehrfache
Transaktionen in einer geordneten Weise. Das Sperren verhindert
das Zugreifen einer Transaktion auf einen Datensatz, der durch
eine andere Transaktion modifiziert wird oder ihr eigen ist.
Dies stellt sicher, daß eine Transaktion nicht einen Datensatz
liest, der sich in dem Prozeß der Änderung durch eine andere
Transaktion befindet, wodurch eine geordnete Interaktion
zwischen diesen Transaktionen sichergestellt wird.
-
Ein Verfahren eines Sperrprotokolls ist in
US-A- 4 680 700 mit dem Titel "Virtual Memory Address
Translation Mechanism With Combined Hash Address Table And
Inverted Page Table" erläutert. Ein anderes Patent, das den
Speicherschutz beim Betrieb gleichzeitiger Transaktionen
beschreibt, ist US-A-4 638 426 mit dem Titel "Virtual Memory
Address Translation Mechanism With Control Data Persistence".
Diese beiden Referenzen sprechen die Anwendung von
Sperrprotokollen auf die Umrechnung virtueller Adressen an. Das
Regeln des Zugriffs auf geschützte Daten kann durchgeführt
werden, während die Task der Umrechnung zwischen den virtuellen
Adressen und den realen Adressen in einem virtuellen
Speichersystem durchgeführt wird. Beim Durchführen der
Umrechnung von virtuellen in reale Adressen enthält jeder
adressierbare Datenblock zusätzliche Daten, die die
Verfügbarkeit dieser Daten für Transaktionen beschreiben. Mit
anderen Worten bestimmt das Setzen dieser Datenbits, ob eine
Transaktion auf einen Datenblock zugreifen kann.
-
Das Ziel der vorliegenden Erfindung ist es, eine
Speicherzugriffssteuerung bereitzustellen, die Zugriff auf das
gleichzeitige Ausführen von Transaktionen gewährt, während sie
die Integrität der Daten, auf die zugegriffen wird, schützt.
-
Die vorliegende Erfindung stellt ein Datenverarbeitungssystem
nach Anspruch 1 bereit. Mit anderen Worten wird für eine Form
eines gesteuerten Delegierens gesorgt, die einen Datensatz
festhält, wo er angewendet wurde.
-
Wie später beschrieben wird, wird bei einer Form der
vorliegenden Erfindung für Zugriffe auf Datenblöcke gesorgt, die
unter Adressen in einem Speicher gespeichert sind und auf die
durch mehrere Transaktionen zugegriffen werden kann. Das
Verfahren besteht aus den Schritten des (a) Empfangens einer
Adresse eines Datenblocks, auf den durch eine erste Transaktion
zuzugreifen ist, (b) des Ableitens eines Eintrags in eine
Zugriffstabelle aus der Adresse, die dem Datenblock entspricht,
wobei der Eintrag Sperrdaten einschließt, die den Zugriff auf
den Datenblock regeln, und (c) des Sorgens für den Zugriff, wenn
er durch die Sperrdaten erlaubt wird, oder des Sorgens für den
Zugriff, wenn er durch die Sperrdaten nicht erlaubt wird, und
des Aufzeichnens des Vorkommens des Zugriffs in den Sperrdaten.
-
Die Beschreibung ist in der Form des entscheidungstreffenden
Flusses, der durch Software implementiert werden kann in einer
verzweigten seriellen Art oder seriell oder parallel durch Logik
in der Steuereinheit, da die externen Ergebnisse Zugriff sind,
mit oder ohne das Umschalten von relativ wenigen ausgewählten
Sebsthalteschaltungen, häufig nur einer, oder das Erzeugen eines
Unterbrechungssignals.
-
Die vorliegende Erfindung wird weiter unter Bezugnahme auf ein
Ausführungsbeispiel beschrieben, das in den zugehörigen
Zeichnungen dargestellt ist, in denen:
-
Fig. 1 ein Blockdiagramm eines Datenverarbeitungssystems ist,
-
Fig. 2 eine Darstellung der Umrechnung einer kurzen Adresse
in eine lange Adresse ist,
-
Fig. 3 ein hochstilisiertes Diagramm ist, das eine
Adreßumrechnung einer invertierten Seitentabelle
darstellt,
-
Fig. 4A ein Flußdiagramin für die Prozedur der
Speichersteuereinheit während einer Leseoperation ist und
-
Fig. 4B ein Flußdiagramm für die Prozedur der
Speichersteuereinheit
während einer Schreiboperation ist.
-
Das beschriebene Ausführungsbeispiel schließt ein Verfahren und
eine Vorrichtung zum Regeln des Zugriffs mehrerer gleichzeitig
ablaufender Transaktionen auf Datenblöcke in einen Speicher ein.
Das bevorzugte Ausführungsbeispiel enthält ein virtuelles
Speichersystem. Die Regeln des Zugriffs auf die Daten wird
während des Verfahrens der Umrechnung von virtuellen in reelle
Adressen durchgeführt. Mechanismen zum Durchführen des Zugriffs
in einem virtuellen Speichersystem sind in den vorher erwähnten
Patenten US-A-4 680 700 und US-A-4 638 426 beschrieben.
-
Fig. 1 ist ein vereinfachtes Blockschaltbild eines
Datenverarbeitungssystems, das einen Prozessor 10 enthält, der
über einen bidirektionalen Bus 12 mit einer
Speichersteuereinheit 20 verbunden ist, die über einen bidirektionalen Bus 22
mit einem Speicher 30 verbunden ist. In der Praxis kann der
Prozessor 10 ein einzelner Prozessor sein oder aus mehreren
Prozessoren bestehen, die Programmfolgen ausführen. Diese
Programmfolgen schließen Transaktionen ein, die gleichzeitig
ausgeführt werden und versuchen, über die Speichersteuereinheit
20 gleichzeitig auf Daten zuzugreifen, die in dem Speicher 30
gespeichert sind. Bei diesem Ausführungsbeispiel führt die
Speichersteuereinheit 20 darüberhinaus die Umrechnung virtueller
in reale Speicheradressen durch, die im einzelnen in den oben
genannten zwei Patenten beschrieben ist. Daher wird eine genaue
Beschreibung der virtuellen Adreßumrechnung nicht gegeben.
Gewisse Aspekte der virtuellen Adreßumrechnung werden jedoch
beschrieben, um das Regeln des Zugriffs auf Daten in der
beschriebenen Anordnung zu beschreiben.
-
In Fig. 2 ist das Erzeugen einer langen Adresse aus einer
kurzen Adresse dargestellt. Die kurze Adresse wird von dem
Prozessor 10 empfangen und ist in eine reale Adresse
umzurechnen. In Fig. 2 enthält die kurze Adresse 20 zwei Teile.
Der erste Teil ist eine vier Bit-Kennzeichnung des
Segmentregisters. Der zweite Teil ist eine 28 Bit-Kennzeichnung
einer Position in einem Segment. Das Segmentregister 42, das in
der Speichersteuereinheit 20 enthalten ist, enthält zusätzliche
Daten, die das Verfahren der virtuellen Adreßumrechnung regeln.
Ein Teil des Inhaltes des Segmentregisters ist die
Segmentidentifizierung oder Segment-ID. Dies ist eine 24 Bit-Segment-ID,
die mit der 28 Bit-Position in dem Segmentteil der kurzen
Adresse verkettet wird, um eine lange virtuelle Gesamtadresse 44
zu bilden. Die lange virtuelle Adresse wird dann in einer in
Fig. 3 dargestellten Weise umgerechnet.
-
Fig. 3 stellt die Arbeitsweise der invertierten Seitentabelle
dar. Wiederum, eine genaue Erklärung des Verfahrens der
virtuellen Adreßumrechnung ist in den beiden Patenten
beschrieben, die vorher abgehandelt wurden. Die lange virtuelle
Adresse 44 schließt die Segment-ID ein und die Position im
Segment. Die Position in dem Segmentteil ist unterteilt in eine
Position in dem Seitenteil und einen Teil der virtuellen Seite.
Die Segment-ID und der virtuelle Seitenteil werden
AUSSCHLIESSLICH ODER-verknüpft, um einen Index H zu bilden, der
benutzt wird, um auf die Daten in einer Hash-Tabelle 46
zuzugreifen. Das Ausgangssignal der Hash-Tabelle 46 ist ein
Index I, der benutzt wird, um auf die invertierte Seitentabelle
50 zuzugreifen. Die invertierte Seitentabelle 50 enthält
Einträge, die den Zugriff auf die Datenblöcke in dem Speicher
regeln. Das Feld VSEITE in dem K. Eintrag in der invertierten
Seitentabelle 50 ist gleich der virtuellen Seite, die der K.
realen Seite des Speichers zugeordnet ist, und die reale Adresse
48 wird durch Verkettung gebildet, wie das in Fig. 3
dargestellt ist. Die Speichersteuereinheit enthält ferner ein
Transaktions-ID-Register 52, das die Identifizierung der
augenblicklich auf dem Prozessor ablaufenden Transaktion
enthält. Der Eintrag 54 in der invertierten Seitentabelle
schließt die Segment-ID, den Bezeichner der virtuellen Seite,
die Sperrbits und einige andere Variable, die zu erläutern sind,
ein. Wie vorher angegeben, regeln die Sperrbits den Zugriff auf
den Datenblock J, der die durch die Transaktion gesuchte
adressierte Speicherstelle enthält. NB-Fig. 3 zeigt nicht an,
daß RSEITE mit J geladen wird, aber das, was in RSEITE geladen
wird, ist die höherstellige Adresse einer größeren Unterteilung
des Speichers, die den Block J enthält, auf den später Bezug
genommen wird als auf den j. Block auf der fraglichen Seite.
Wenn ein Zugriff zu gestatten ist, wird das Sperrbit für den
entsprechenden Datenblock auf eine eins gesetzt. Wenn der
Zugriff nicht zu gestatten ist, wird das Sperrbit auf null
gesetzt.
-
Dies liefert nicht nur ein Verfahren zum Regeln des Zugriffs auf
die Datenblöcke gemäß den Sperrbits, sondern auch eine
wirksamere Ausführung gleichzeitiger Transaktionen, mit
gleichzeitigem Zugriff auf einige Datenblöcke, selbst wenn dies
durch die Sperrbits verhindert wird. Dieser zusätzliche Zugriff
ist vorgesehen, wenn die Integrität der Daten garantiert werden
kann oder wenn der Transaktionszugriff nicht irgendwelche
anderen Zugriffe beeinflußt. Die Speichersteuereinheit 20
(Fig. 1) benutzt die reale Adresse 48, um auf Daten in dem
Speicher 30 gemäß dem Zugriffsverfahren zuzugreifen, das durch
die Sperrbits im Eintrag 54 geregelt wird.
-
In Fig. 3 schließt die Zeile 54 die Variablen l, w, r und a
ein. Die Variable "l" steht für die Sperrart. Dies ist eine Ein-
Bit-Anzeige, ob die Sperrbits (32 Sperrbits in Zeile 54)
Schreibsperren oder Lesesperren für die Datenblöcke auf der
Seite darstellen. Die variable "a" stellt die Anzeige Lesen
erlaubt dar. Die Anzeige Lesen erlaubt erlaubt es irgendeiner
Transaktion, die Datenblöcke auf der Seite zu lesen. Die
Variablen "w" und "r" stellen die Anzeigen für
Schreibberechtigungssperren bzw. Leseberechtigungssperren dar. Wenn diese
Sperrvariablen gesetzt sind, sorgt die Speichersteuereinheit
automatisch für Zugriff auf Datenblöcke und das Aufzeichnen
gewährten Zugriffs ohne Intervention durch irgendwelche
Supervisor-Software. Im Betrieb versucht eine Transaktion auf
eine Seite zuzugreifen durch Liefern der langen virtuellen
Seitenadresse, die durch die Speichersteuereinheit 20 in eine
reale Adresse 48 umgesetzt wird. Eine durch die
Speichersteuereinheit ausgeführte Funktion liest den Eintrag 54
in der invertierten Seitentabelle während der Umsetzung der
virtuellen Adresse in die reale Adresse. Die Funktion gewährt
oder verwehrt Zugriff auf der Basis des Eintrags 45 in der
invertierten Seitentabelle und des Transaktions-
Identifizierungs-Registers 52, das die augenblicklich ablaufende
Transaktion angibt. Dadurch stellt die Funktion sicher, daß die
Sperrbits für diese Transaktion solche sind, daß die Transaktion
nur Zugriff erhält, wie es zweckmäßig für sie ist. Mit anderen
Worten, diese Funktion stellt durch Benutzen der Sperrbits
sicher, daß einer Transaktion kein Zugriff auf Datenblöcke
gewährt wird, weder für das Lesen oder das Schreiben, wenn solch
ein Zugriff unzweckmäßig ist.
-
Bei diesem Ausführungsbeispiel ist solch eine Supervisorfunktion
vorgesehen. Darüberhinaus kann der Supervisor durch Benutzen der
Anzeigen für das Sperren der Leseberechtigung und der
Schreibberechtigung wahlweise eine automatische Fähigkeit für
eine Transaktion aufrufen, auf Datenblöcke zuzugreifen und den
Zugriff automatisch in den Sperrbits aufzuzeichnen. Dies wird
erreicht durch Ausführen derjenigen Verfahren, die in den
Flußdiagrammen in den Fig. 4A und 4B angegeben sind. Diese
Prozeduren werden durch die Steuereinheit ausgeführt, während
die Umrechnung der virtuellen Adressen in reale Adressen
erfolgt.
-
In Fig. 4A ist ein Flußdiagramm dargestellt, das den
Lesezugriff darstellt. Es wird auf Fig. 4A Bezug genommen. Die
Speichersteuereinheit bestimmt zuerst im Schritt 100, ob die
Transaktion eine Lese- oder eine Schreibtransaktion ist. Wenn
die Transaktion eine Schreibtransaktion ist, geht die
Steuereinheit zur Übergangs stelle 102 zu dem Flußdiagramm in
Fig. 4B. Wenn die Transaktion eine Lesetransaktion ist, dann
bestimmt die Steuereinheit im Schritt 104, ob der Anzeiger Lesen
erlaubt auf null gesetzt ist. Wenn Lesen erlaubt auf eins
gesetzt ist, wird Zugriff gewährt. Wenn der Anzeiger Lesen
erlaubt eine null ist, geht die Steuereinheit zum Schritt 106
weiter, um zu bestimmen, ob die Transaktions-ID auf der
invertierten Seitentabelle 54 mit dem Inhalt des Transaktions-
ID-Registers 52 übereinstimmt. Wenn die Transaktions-ID nicht
übereinstimmt, geht die Steuereinheit zum Schritt 118 weiter, um
Zugriff zu verwehren und erzeugt eine Unterbrechung. Wenn die
Transaktions-ID übereinstimmt, geht die Steuereinheit zum
Schritt 108 weiter, um zu bestimmen, ob die Sperrart gleich eins
oder null ist. Wenn die Sperrart gleich eins ist, was anzeigt,
daß alle der Sperrbits Schreibsperren sind, werden alle
Lesezugriffe erlaubt. Die Steuereinheit geht dann weiter zum
Schritt 120, um den Lesezugriff zu gewähren. Wenn die Sperrart
auf null gesetzt ist, geht die Steuereinheit zum Schritt 110, um
den Zustand des Anzeigers für die Leseberechtigung zu bestimmen.
Wenn der Anzeiger für die Leseberechtigung eins ist, bestimmt
die Steuereinheit im Schritt 112 den Zustand des Sperrbits für
den zu lesenden Datenblock (in diesem Beispiel der j.
Datenblock). Wenn das Sperrbit nicht gesetzt ist, geht die
Steuereinheit zum Schritt 114 weiter, um das Sperrbit für diesen
Datenblock gleich eins zu setzen, und geht dann weiter zum
Schritt 120, um Zugriff zu gewähren. Im Schritt 112 erlaubt die
Steuereinheit, wenn das Sperrbit bereits gesetzt ist, den
Zugriff über den Schritt 120. Zurückkehrend zum Schritt 110 geht
die Steuereinheit, wenn die Leseberechtigung auf null gesetzt
ist, zum Schritt 116 weiter, um den Zustand des Sperrbits zu
bestimmen. Wenn das Sperrbit auf eins gesetzt ist, sorgt die
Steuereinheit über den Schritt 120 für einen Zugriff. Wenn das
Sperrbit auf null gesetzt ist, geht die Steuereinheit zum
Schritt 118 weiter, um für eine Unterbrechung zu sorgen.
-
Es wird auf das Flußdiagramm in Fig. 4B Bezug genommen. Die
Steuereinheit geht über die Übergangsstelle 102 zum Schritt 140
weiter, um zu bestimmen, ob die Transaktions-ID in der
invertierten Seitentabelle 54 mit dem Inhalt des Transaktions-
ID-Registers 52 übereinstimmt. Wenn nicht, wird im Schritt 150
eine Unterbrechung erzeugt. Wenn eine Übereinstimmung vorhanden
ist, geht die Steuereinheit zum Schritt 142 weiter, um zu
bestimmen, ob der Anzeiger für die Schreibberechtigung gesetzt
ist. Wenn nicht, geht die Steuereinheit weiter zum Schritt 144,
um zu bestimmen, ob die Sperrart gleich null ist. Wenn das der
Fall ist, wird die Unterbrechung im Schritt 150 erzeugt. Wenn
nicht, geht die Steuereinheit zum Schritt 152 weiter, um zu
bestimmen, ob das Sperrbit auf eins gesetzt ist. Wenn nicht,
geht die Steuereinheit zum Schritt 150 weiter, um eine
Unterbrechung zu erzeugen. Wenn das Sperrbit auf eins gesetzt
ist, geht die Steuereinheit zum Schritt 158 weiter, um einen
Schreibzugriff zu gewähren.
-
Zum Schritt 142 zurückkehrend, geht die Steuereinheit, wenn die
Schreibberechtigung gesetzt ist, zum Schritt 146 weiter, um zu
bestimmen, ob die Sperrart auf eins gesetzt ist. Wenn das der
Fall ist, geht die Steuereinheit zum Schritt 154 weiter, um zu
bestimmen, ob das Sperrbit auf eins gesetzt ist. Wenn das der
Fall ist, gewährt die Steuereinheit im Schritt 158 Zugriff. Wenn
nicht, wird das Sperrbit dann im Schritt 156 auf eins gesetzt
und der Schreibzugriff wird im Schritt 158 gewährt.
-
Zurückkehrend zum Schritt 146, geht die Steuereinheit, wenn die
Sperrart gleich null ist zum Schritt 160 weiter, um die Sperrart
gleich eins zu setzen. Im Schritt 162 wird das Sperrbit, auf das
zugegriffen wird, auf eins gesetzt und alle anderen Sperrbits
werden auf null gesetzt. Dann wird im Schritt 158 der
Schreibzugriff gewährt.
-
In dem Flußdiagramm in Fig. 4A wird der Zugriff, wenn ein
Sperrbit keinen Zugriff gewährt, aber die Leseberechtigung auf
eins gesetzt ist, doch gewährt, und das betreffende Sperrbit
wird geändert, um den Zugriff aufzuzeichnen. Gemäß diesem
Verfahren erfolgt dieses Aufzeichnen des Lesezugriffs zu dem
Datenblock automatisch, ohne Intervention irgendeiner Funktion
der Supervisorsoftware. Ebenso wird in Fig. 4B der
Schreibzugriff gewährt, wenn der Anzeiger der
Schreibberechtigung gesetzt ist, selbst wenn die Sperrbits nicht
geeignet gesetzt sind, und die Aufzeichnung des Schreibzugriffs
ist durch das automatische Setzen dieser Sperrbits vorgesehen.
Ebenso wird, wenn die Sperrart nicht gesetzt ist, die Sperrart
gesetzt, um für einen Schreibzugriff zu sorgen, und zeichnet so
das Gewähren des Schreibzugriffs auf.
-
Der Fluß für das Treffen von Entscheidungen nach den Fig. 4A
und 4B kann durch Software in einer verzweigten seriellen Weise
implementiert werden oder seriell oder parallel durch Logik in
der Steuereinheit, da die externen Ergebnisse Zugriffe sind, mit
oder ohne das Umschalten von verhältnismäßig wenigen
ausgewählten Selbsthalteschaltungen, häufig nur einer, oder die
Erzeugung eines Unterbrechungssignals. Die Einzelheiten jeder
Implementierung werden hier nicht angegeben, da sie für einen
Fachmann aus der dargelegten Information in den genau
beschriebenen Figuren offensichtlich sind.