DE2807476C2 - Speichereinrichtung mit mehreren virtuellen Adreßräumen - Google Patents
Speichereinrichtung mit mehreren virtuellen AdreßräumenInfo
- Publication number
- DE2807476C2 DE2807476C2 DE2807476A DE2807476A DE2807476C2 DE 2807476 C2 DE2807476 C2 DE 2807476C2 DE 2807476 A DE2807476 A DE 2807476A DE 2807476 A DE2807476 A DE 2807476A DE 2807476 C2 DE2807476 C2 DE 2807476C2
- Authority
- DE
- Germany
- Prior art keywords
- dlat
- address
- entry
- sto
- page
- 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
- 102100027152 Dihydrolipoyllysine-residue acetyltransferase component of pyruvate dehydrogenase complex, mitochondrial Human genes 0.000 claims description 150
- 101001122360 Homo sapiens Dihydrolipoyllysine-residue acetyltransferase component of pyruvate dehydrogenase complex, mitochondrial Proteins 0.000 claims description 150
- 230000015654 memory Effects 0.000 claims description 55
- 238000013519 translation Methods 0.000 claims description 24
- 238000013475 authorization Methods 0.000 claims description 19
- 230000014616 translation Effects 0.000 description 19
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100134883 Caenorhabditis elegans dlat-1 gene Proteins 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Description
Die Erfindung betrifft eine Speichereinrichtung mit mehreren virtuellen Adreßräumen nach dem Oberbegriff
des Anspruchs 1.
In Systemen mit virtueller Adressierung wird zur Leistungsverbesserung häufig von sogenannten Adreßübersetzungs-Nebentabellen
(DLAT Dynamic Lookaside Adress Translation) Gebrauch gemacht Dabei
handelt es sich um schnelle, insbesondere assoziative Speicher, in denen die virtuellen und die reellen
Adressen von Seiten gespeichert sind, die vor kurzem adressiert wurden. Beispiele für DLAT sind in den
US-Patentschriften 37 25 874, 37 81 808 und 39 02 163 zu finden.
In virtuellen Systemen mit mehreren Adreßräumen tritt bei den Adreßübersetzungs-Nebentabellen das
Problem synonymer Einträge auf (DLAT-Synonyme). Bei mehreren Adreßräumen wird beispielsweise jedem
Benutzer ein verschiedener Adreßraum zugeordnet; aus Sicherheitsgründen dürfen keine Zugriffe von einem
privaten Adreßraum zu einem anderen erfolgen. Da Systemprogrammroutinen von allen Programmen in
allen Adreßräumen benötigt werden, wurden bisher diese gemeinsamen Programme und Daten einem oder
mehreren Segmenten in jedem der Adreßräume zugeordnet Wenn ein in seinem privaten Adreßraum
arbeitender Benutzer einen Zugriff zu gemeinsamen Programmen verlangte, adressierte er diese Programme
innerhalb seines eigenen Adreßraums. Dieses getrennte Adressieren beeinträchtigte jedoch die Systemleistung,
da die gemeinsamen Programme und Daten durch verschiedene DLAT-Einträge im Prozessor übersetzt
werden. Benötigten beispielsweise zwei Benutzer gleichzeitig dasselbe Betriebsprogramm, so wird dieses
Programm seitenweise in den Hauptspeicher eingeschrieben und für den Adreßraum des Benutzers
übersetzt. Benötigt nun der andere Benutzer dasselbe Programm, wird es zwar für diesen nicht erneut in den
Hauptspeicher eingeschrieben, es wird jedoch für den Adreßraum dieses Benutzers unabhängig übersetzt. Die
Übersetzung für jeden einzelnen Adreßraum führte somit zu dem unerwünschten Resultat, daß zuviel
Übersetzungsvorgänge durchgeführt wurden, und daß eine Verschwendung der knappen Zahl von zur
Verfügung stehenden DLAT-Einträgen auftrat, da für die verschiedenen Benutzer der gemeinsamen Programme
und Daten jeweils besondere DLAT-Einträge (d. h. DLAT-Synonyme) erzeugt wurden.
Die vorliegende Erfindung stellt sich daher die Aufgabe, eine Einrichtung anzugeben, mit der synonyme
Einträge in den Adreßübersetzungs-Nebentabellen (DLAT) vermieden werden.
Diese Aufgabe wird durch die im Hauptanspruch gekennzeichnete Erfindung gelöst; Ausgestaltungen der
Erfindung sind in den Unteransprüchen gekennzeichnet.
Die Erfindung geht so vor, daß für jeden Segmenttabelleneintrag (STE) oder alternativ für jeden Seitentabelleneintrag
(PTE) in jedem privaten Adreßraum eine Anzeige (»gemeinsamer Speicherbereich«) vorgesehen
ist die angibt, ob das Segment bzw. die Seite Programme und Daten enthält, die dem Adreßraum
privat zugeordnet sind oder aber von allen Adreßräumen gemeinsam benutzt werden können. Dieser Eintrag
in den Übersetzungstabellen wird auch Berechtigungsindikator genannt. Jeder Eintrag in den Adreßübersetzungs-Nebentabellen
(DLAT) enthält einen Indikator »gemeinsam/privat«, der entsprechend dem Berechtigungsindikator
im STE oder PTE gesetzt wird, das zur Adreßübersetzung für den DLAT-Eintrag herangezogen
wird. Dieser DLAT-Eintrag wird auch Zugriffsindikator genannt. Wenn der DLAT-Eintrag gelesen wird,
bestimmt der Zugriffsindikator, ob das DLAT nur von dem im DLAT identifizierten Adreßraum benutzt
werden kann oder von allen Adreßräumen.
Die Verhinderung von synonymen Einträgen im DLAT erhöht die Systemleistung, da nicht nur weniger
Übersetzungsvorgänge erforderlich sind, sondern auch die Zahl der verfügbaren DLAT-Einträge (die ohnehin
relativ klein ist) erhöht wird; im DJ-AT Finden somit
mehr übersetzte Adressen Platz, so daß ein Überlauf mit der dann notwendigen komplizierten DLAT-Verwaltung
seltener auftritt Für die gemeinsam benutzten Systemroutinen brauchen weiterhin keine Mehrfachkopien
im Hauptspeicher gehalten werden. Der Zugriff zu gemeinsam benutzten Systemroutinen wird durch die
von der Erfindung vorgeschlagene Hardware-Einrichtung beträchtlich erleichtert
Im folgenden wird die Erfindung in ihren Grundzügen beschrieben; ihre Einzelheiten werden später anhand
eines Ausführungsbeispiels erläutert. Die Erfindung wird in einem Prozessor verwendet der die gleichzeitige
Adressierbarkeit für die zuletzt benutzten Seiten in mehreren Adreßräumen durch seine DLAT-Einträge
ermöglicht Die DLAT Adressierbarkeit für verschiedene Adreßräume wird üblicherweise dadurch erreicht
daß in jedem DLAT-Eintrag ein Feld für einen Adreßraum-Identifiziercr vorgesehen ist, das eindeutig
den einer Seite zugeordneten Adreßraum bezeichnet; diese Seite wird durch das Feld für die reale Adresse des
Seitenrahmens (PFRA) im gleichen DLAT-Eintrag zur Aufnahme der übersetzten Seitenadresse identifiziert.
Spätere Zugriffe zu Daten in einer übersetzten Seite, die durch einen DLAT-Eintrag adressiert wird, können
schnell erfolgen, wenn der DLAT-Eintrag zur Adressierung der Daten im Hauptspeicher oder in einem
Arbeitsspeicher (Cache) ohne erneute Übersetzung der virtuellen Adresse verwendet wird. Die Schaltungen zur
Unterstützung dieser Operationen sind in der US-Patentschrift37
81 808 beschrieben.
Die Erfindung verwendet in jedem Segment- oder Seitentabelleneintrag und in jedem DLAT-Eintrag
einen Berechtigungsindikator »gemeinsamer Speicherbereich« der während der Übersetzung der Segmenttabellen-
oder der Seitentabelleneinträge geladen wird, um damit anzuzeigen, ob für eine Seite, die über einen
DLAT-Eintrag adressiert wird; Zugriffe von allen Adreßräumen im System möglich sind, oder ob ein
Zugriff zu der Seite nur durch den Adreßraum erfolgen kann, der im DLAT-Eintrag identifiziert ist.
Die Steuereinrichtungen zum Laden des DLAT erkennen diesen Berechtigungsindikator »gemeinsamer
Speicherbereich« in jedem Segmenttabelleneintrag (bzw. in jedem Seitentabelleneintrag, entsprechend der
Ausgestaltung der virtuellen Adressierung in einem betrachteten System). Der Berechtigungsindikator »gemeinsamer
Speicherbereich« wiifl bevorzugt als Bitposition in jedem Segmenttabelleneintrag ausgeführt In
der anderen Ausführungsform stellt dieser Berechtigungsindikator eine Bitposition in jedem Seitentabelleneintrag
dar.
Eine Adreßübersetzungseinrichtung fühlt den Zustand des Bits für den Berechtigungsindikator »gemeinsamer
Speicherbereich« während des Übersetzungsprozesses in einem übersetzten Segmenttabelleneintrag
(oder Seitentabelleneintrag) ab und setzt entsprechend den Zugriffsindikator »gemeinsamer Speicherbereich«
im DLAT-Eintrag, in den das Übersetzungsergebnis eingeschrieben wird, um damit anzuzeigen, ob die im
DLAT-Eintrag übersetzte Seite gemeinsam benutzt werden kann oder eine private Seite ist. Ist der
Berechtigungsindikator im Tabelleneintrag nicht gesetzt, so ist die übersetzte Seite privat; in diesem Fall
wird eine Identifizierung für den einzigen Adreßraum, der diesen DLAT-Eintrag benutzen darf, ebenfalls in
diesen DLAT-Eintrag gesetzt um eine Benutzung durch andere Adreßräume zu verhindsrn. Wenn das Bit für
den Berechtigungsindikator »gemeinsamer Speicherbereich« in den Tabelleneintrag gesetzt ist erhält das
DLAT einen Zugriffsindikator, der anzeigt, daß keine Prüfung auf einen Adreßraurri-Identi'rizierer erfolgen
soll, so daß dieser DLAT-Eintrag von jedem Adreßraum benutzt werden kann.
Für die Erfindung ist es wesentlich, daß bei der sogenannten Hash-Adressierung (Ermittlung der Adresse
eines DLAT-Eintrags unter Verwendung von einzelnen Feldern der virtuellen Adresse, gegebenenfalls
unter Benutzung eines Algorithmus) keine Bits aus dem Adreßraum-Identifizierer verwendet werden, wie
es bei der DLAT-Hash-Adressierung im Stand der Technik der Fall ist (z. B. in dem schon erwähnten
US-Patent 37 81 808). Diese übliche Hash-Adressiemng würde die Erfindung nicht ausführbar machen, da dann
gleiche virtuelle Adressen in verschiedenen Adreßräumen nicht das gleiche Paar von DLAT-Einträgen
adressieren würden. Die Erfindung verwendet deshalb zur Hash-Adressierung nur Bits aus der virtuellen
Adresse, nicht aber Bits aus dem Adreßraum-Identifizierer.
Die Steuereinrichtungen für das Auslegen des DLAT fühlen üblicherweise den Adreßraum-Identifizierer in
jedem ausgelesenen DLAT-Eintrag ab. Für die vorliegende Erfindung müssen die DLAT-Steuereinrichtungen
auch die Indikatoren »gemeinsamer Speicherbereich« in jedem ausgelesenen DLAT abfühlen; dieses Bit
würde in konventionellen Prozessoren zu einer Fehlerbedingung führen. Wird in einem DLAT ein
Zugriffsindikator »gemeinsamer Speicherbereich« festgestellt und sind in dem DLAT alle anderen
Bedingungen erfüllt, so übergeben die DLAT-Lesesteuerschaltungen die Zugriffsanforderung mit der realen
Adresse PFRA aus dem DLAT an die Hauptspeicherzugriffsteuerungen, die den Zugriff im Hauptspeicher oder
im Arbeitsspeicher (cache) bewirken.
Die DLAT-Lesesteuerungen werden durch die Erfindung in zweierlei Hinsicht erweitert:
1. Sie stellen die Adreßraumsicherheit her, indem Anforderungen für DLAT-Übersetzungen aus
Adreßräumen zurückgewiesen werden, deren Adreßraum-Identifizierer nicht mit dem im DLAT
enthaltenen Adreßraum-Identifizierer übereinstimmt oder
2. sie erlauben allen Adreßräumen die DLAT-Übersetzung zu verwenden, indem der Adreßraum-Identifizierer
im DLAT ignoriert wird.
Jeder Adreßraum wird im System durch eine Segmenttabelle dargestellt, die für den Prozessor durch
eine Segmenttabellenanfangsadresse (STO) definiert ist
Jede STO stellt eine reale Adresse mit dem Beginn der Segmenttabelle dar. In einem System kann eine sehr
große Anzahl von STO's verfügbar sein. Wenn eine beliebige STO verwendet werden soll, wird sie aktiviert,
indem sie in ein Steuerregister (CR) gesetzt wird; außerdem wird sie als nächster Eintrag in einen Stapel
(STOK) für Segmenttabellenanfangsadressen gegeben.
Für jede STO im STOK ist ein Indikator verfügbar, ein sogenannter STO ID, und zwar als Index für den
STOK. Eine STO in jedem STOK-Eintrag und im
Register CR umfaßt 32 Bits (ein Vollwort). Eine STO kann in mehr als einem Eintrag im STOK enthalten sein.
Der Stapel STOK wird verwendet, um die Zahl der Bits zu verringern, die für die Adreßraumidentifizierung in
den DLATs erforderlich sind und damit, um die DLAT-Größe herabzusetzen. Kleinere DLATs arbeiten
im allgemeinen schneller als große. Beispielsweise erfordert ein STOK mit bis zu 29 STOs nur 5 Bits für
einen STO ID, um einen Adreßraum zu identifizieren; damit wird vermieden, alle 32 Bits des STO verwenden
zu müssen. Jedesmal, wenn eine neue STO dazu führen würde, daß der Stapel STOK überläuft, wird dieser
zurückgesetzt und gleichzeitig alle DLAT-Einträge; die neue STO wird am Beginn des STOK eingesetzt und ein
entsprechender DLAT-Eintrag übersetzt.
Ein Ausführungsbeispiel der Erfindung wird nun anhand von Zeichnungen näher erläutert. Es zeigt
F i g. 1 ein Blockdiagramm einer bevorzugten Ausführungsform,
F i g. 2 die Hauptspeicherbelegung in einem zweiten Ausführungsbeispiel,
F i g. 3 die im Stand der Technik benutzten Formate für Steuerregister, Segmenttabellen-Einträge und Seitentabelleneinträge,
F i g. 4A ein neues Format des Segmenttabelleneintrags für eine bevorzugte Ausführungsform,
Fig.4B ein neues Format für den Seitentabelleneintrag
für eine andere Ausführungsform der Erfindung,
F i g. 5 Einzelheiten eines STOK und seiner Steuereinrichtungen zur Erzeugung von Adreßraumidentifizierern
(STO ID) in den Ausführungsbeispielen,
Fig.6 das Format jedes Paares zugeordneter DLAT-Einträge, zu denen mit einer einzigen DLAT-Hash-Adresse
zugegriffen werden kann,
F i g. 7 Einzelheiten eines Übersetzers, der in den Ausführungsbeispielen benutzt wird,
F i g. 8 Einzelheiten der DLAT- Lesesteuerungen,
F i g. 9 die DLAT-Ladesteuerung im einzelnen.
F i g. 1 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform. Ein Block »STOK und Steuerungen«
5 umfaßt ein Steuerregister (CR 1), in dem die aktive Segmenttabelle-Anfangsadresse (STO) enthalten ist, die
zu diesem Zeitpunkt von den virtuellen Adressen des Prozessors benutzt wird; diese virtuellen Adressen
stehen im logischen Adreßregister (LAR) 61, das somit die aktuelle Zugriffsadresse angibt. Die Steuerungen 5
enthalten außerdem einen Stapel für SegmenttabeHen-Anfangsadressen
(STOK) 50, in den sequentiell jede aktive STO eingelesen wird, sobald sie in CR 1 geladen
wird. Die durch die STOs in STOK dargestellten Adreßräume sind die einzigen Adreßräume, die zu
diesem Zeitpunkt durch Einträge im DLAT 6 dargestellt werden. Jeder Eintrag im STOK besitzt einen indexwert
von 2 bis 30. Diese !ndexwerte werden als STO-Identifizierer
(STO ID) verwendet. Auf die gegenwärtig aktive STO im STOK wird durch den STO ID in einem
Zeigerregister (ZGR REG) 51 hingewiesen. Der im Zeigerregister 51 enthaltene STO ID weist somit auf
den STOK-Eintrag mit derselben STO, wie die im CR 1 enthaltene. Es werden nur die STO ID 2 bis 30
verwendet, da bei einer Indexgröße von 5 Bits, entsprechend den Werten O bis 31, die Werte 0,1 und 31
in den DLAT zur Anzeige der Spezialbedingungen »ungültige STO«, »keine dynamische Adreßübersetzung«
bzw. »gemeinsamer Speicherbereich« verwendet werden. Der letztgenannte Wert wird in der vorliegenden
Erfindung benutzt, um im DLAT anzuzeigen, daß damit eine Seite adressiert wird, zu der von allen
Adreßräumen zugegriffen werden kann. Ein größerer STOK mit mehr STO IDs kann beispielsweise zur
Verfügung gestellt werden, wenn ein STO ID mit 6 Bits gewählt wird, mit dem 61 STOK-Einträge (2-3)
identifiziert werden können.
Schaltkreis 54 in Fig. 1 zeigt einen Überlauf des STOKs 50 an, wenn alle Einträge 2 bis 30 belegt sind und
eine weitere STO in STOK eingeschrieben werden soll.
Schaltkreis 54 erzeugt das Überlaufsignal, wenn STO ID
30 im Zeigerregister 51 steht und beim Durchsuchen der STOK-Einträge 2 bis 30 keine nächste aktive STO in CR
1 gefunden wird. Das Überlaufsignal des Schaltkreises 54 wird an die DLAT-Ladekreise 9 gegeben, um alle
DLAT-Einträge zurückzusetzen.
Die Struktur des DLAT 6 entspricht derjenigen des IBM Systems/370 M168 CPU, mit der Ausnahme, daß
hier mehr Einträge vorgesehen sind. DLAT 6 in F i g. 1 ist ein Assoziativspeicher mit zwei Sätzen, in dessen
einer Hälfte die DLAT-Tabelle O mit 64 Einträgen
enthalten ist, die mit OO bis 063 bezeichnet werden, und dessen andere Hälfte die DLAT-Tabelle 1 enthält, mit
ebenfalls 64 Einträgen und den Bezeichnungen 10 bis 163. Ein DRR-Register 6B enthält die Adresse des
gegenwärtig ausgewählten Paares von DLAT-Einträgen. Die Adresse des DRR-Registers 6B wird durch den
Hash-Schaltkreis 6A erzeugt, in dem die Bits 9 bis 20 der virtuellen Adresse in LAP 61 zur Erzeugung der
Hash-Adresse verarbeitet werden.
Fig.6 zeigt das Format des Paares ausgewählter
Einträge, die über das DRR-Register adressiert werden. Danach enthält jeder Eintrag einen STO ID, der sich
entweder aus dem Zeigerregister 51 oder aus einem Bit C für den Berechtigungsindikator »gemeinsamer
Speicherbereich« im Segmenttabellen-Eintrag (STE)
ableitet, der für die Übersetzung des DLAT-Eintrags herangezogen wird. Mit Ausnahme des zusätzlichen Bits
C für den Berechtigungsindikator »gemeinsamer Speicherbereich« im STE entspricht die Form aller
Einträge in Segmenttabellen, Seitentabellen, CR O und CR 1 den Systemsteuerprogrammen MVS (Mehrfachspeichersysteme)
im Betriebssystem IBM 0S/VS2 Release 3.7 für ein Datenverarbeitungssystem vom Typ
IBM S/370 M168.
Die Übersetzung der virtuellen Adresse im LAR 61
Die Übersetzung der virtuellen Adresse im LAR 61
erfolgt üblicherweise durch einen Übersetzer 7, in dem die Komponente SX der Adresse zum gewünschten
STE-Eintrag führt indem sie zur STO-Adresse der Segmenttabelle in F i g. 1 hinzugezählt wird. Die
Anfangsadresse für die Seitentabelle (PTO) befindet sich in dem ausgewählten STE und dient dem
Übersetzer zur Adressierung des Seitentabelleneintrags (PTE), der in F i g. 1 mit PTE-g bezeichnet ist PTE-g
wird in der Seitentabeiie an der Steile FTO+ PX
adressiert. Die reelle oder absolute Adresse der gewünschten Seite wird im Feld PFRA des ausgewählten
PTE gefunden und dann vom Übersetzer 7 an die Ladesteuerung 9 gegeben und von dort in das Feld (RA)
für die absolute Adresse im ausgewählten DLAT gesetzt ^^
F i g. 4 zeigt das neuartige STE-Format mit dem Bit C (Berechtigungsindikator »gemeinsamer Speicherbereich«)
in Bitposition 30; dieses Format wird in der Segmenttabelle von Fig. 1 verwendet Fig.3 zeigt das
PTE-Format das in der Seitentabelle in Fig. 1 Verwendung findet
Wenn Bit C im STE-Format 1 gesetzt wird, zeigt der
Segmenttabelleneintrag damit an, daß es sich um ein Segment aus einem gemeinsamen Speicherbereich
handelt; dieses umfaßt alle Seiten in der Seitentabelle,
die mit Hilfe der PTO-Adresse innerhalb dieses STE adressierbar ist. Steht Bit C auf 0, so wird durch STE ein
privates Segment definiert, d. h. es darf nur 'von dem Adreßraum adressiert werden, der von dem STO
definiert ist, mit dem die betreffende Segmenttabelle adressiert wird.
In Fig.6 enthält das Feld für die virtuelle Adresse
(VA) im ausgewählten DLAT-Eintrag auch die Bits 8 bis 14 aus der virtuellen Adresse in LAR 61, um diese
virtuelle Seitenadresse im DLAT von allen anderen virtuellen Seitenadressen in anderen DLAT-Einträgen
zu unterscheiden, in denen die Hash-Adresse immer ein Teil der unterscheidenden Merkmale für die im DLAT
enthaltenen virtuellen Adressen ist. Die Felder »gerader Schlüssel« und »ungerader Schlüssel« in den DLAT-Einträgen sind Speicherschutzschlüssel für die erste Hälfte
und zweite Hälfte der Seite, also die ersten 2K Bytes und die zweiten 2K Bytes der Seite, wenn diese insgesamt
4K Bytes groß ist Die Vorrichtungen zum Laden der Schlüsselfelder in DLAT 6 gehört nicht zum Gegenstand dieser Erfindung; im Stand der Technik sind sie
beispielsweise in der Zentraleinheit IBM S/370 M168
CPU enthalten.
Ein DLAT-Laden erfolgt immer, wenn der Prozessor eine Adresse in LAR 61 gibt und die Lesesteuerungen
feststellen, daß kein DLAT-Eintrag die von der Adresse in LAR 61 geforderte Seite adressiert Das Fehlen eines
derartigen DLAT-Eintrags wird den DLAT Lesesteuerungen 8 in F i g. 1 über ein Signal »DLAT-Ausnahme«
auf Leitung 87A zum Übersetzer 7 mitgeteilt Die
DLAT-Lesesteuerungen 8 vergleichen gleichzeitig alle in Frage kommenden Felder jedes Paares ausgewählter
DLAT-Einträge, die durch die Hash-Adresse im Register DRR adressiert wurden, mit entsprechenden
Feldern, zu denen die Bits 8 bis 14 der virtuellen Adresse in LAR 61 gehören, der STOID aus dem Zeigerregister
51 und das Schlüsselfeld aus dem Programmstatuswort (PSW). Wenn sich für einen der beiden DLAT-Einträge
0 bzw. 1, die gleichzeitig in DLAT-Lesesteuerungen 8 verglichen werden, Übereinstimmung ergibt, wählen die
Lesesteuerungen nur den DLAT-Eintrag aus, in dem alle Felder übereinstimmen. Der ausgewählte DLAT-Eintrag veranlaßt dann die Steuerungen 8, eine Seitenrahmenadresse (RA) als Signal auf Leitung 89Λ an die
Speicherzugriffssteuerung 12 abzugeben, um den Zugriff zu einem oder mehreren Bytes, beginnend mit
der RA-Adresse, einzuleiten, die in dem ausgewählten DLAT-Eintrag gefunden wurde; diese wird dabei mit
dem Displacement (D) aus dem LAR 61 verkettet
Wenn die DLAT-Lesesteuerungen 8 einen Zugriffsindikator »gemeinsamer Speicherbereich« mit Wert 31 im
Feld STO ID des ausgewählten DLAT-Eintrags finden, ignorieren die Lesesteuerungen 8 Vergleichsergebnisse
»ungleich«, da der Wert 31 des STO ID für alle STO
ID-Werte das Vergleichsergebnis »gleich« erzwingt Damit wird ein Zugriff der virtuellen Adresse LAR 61
erlaubt, und zwar unabhängig davon, welcher Adreßraum die Zugriffsanforderung stellt (entsprechend dem
Inhalt des Zeigerregisters 51).
Das Feld STO ID wird also mit einem Wert geladen,
der angibt, ob dieser DLAT-Eintrag nur von dem Adreßraum benutzt werden kann, durch den der Eintrag
geladen wurde, oder aber ob von allen Adreßräumen,
unabhängig davon, welcher das Laden bewerkstelligt hat Nach dieser allgemeinen Beschreibung der bevorzugten Ausführungsform werden deren einzelne Komponenten näher beschrieben.
8
STOK und Steuerungen 5
Fig.5 zeigt eine bevorzugte Ausführungsform für
den Stapel STOK und die zugehörigen Steuerungen 5. Die Register CR O und CR 1 enthalten die in F i g. 3
dargestellten Formate, in denen Bits 8 bis 25 von CR 1 die aktive STO-Adresse darstellen, die Bits 8 und 9 in CR
O die Seitengröße (z. B. 2K Bytes oder 4K Bytes) angeben und die Bits 10 und 11 die Segmentgröße, z. B.
ίο 64K Bytes oder lOOOK Bytes. Diese Bits des Registers
CR O werden beim Laden eines Eintrages in STOK 50 ebenfalls eingeschrieben.
Die Steuerungen stellen sicher, daß im STOK 50 ein STO-Wert nur einmal enthalten ist. Gültige STO-Werte
im STOK 50 sind in den Einträgen 2 bis x-1 enthalten,
wobei χ durch den Inhalt eines FIFO-Registers 52
bestimmt ist Alle STOK-Einträge aus dem Index im
' FIFO-Register 52 bis zum Index 30 werden als ungültig
angesehen.
Wenn ein neuer STO-Wert in CR 1 geladen wird, erfolgt eine Suche des STOK 50, um festzustellen, ob
diese STO gegenwärtig im STOK 50 gespeichert ist; wenn ja, wird der Index dieses Eintrags in Zeigerregister
51 eingeschrieben, um auf den Leitungen 51C den
aktiven STO ID anzuzeigen. Ist im STOK kein Eintrag
für die aktive STO im CR 1 enthalten, wird die STO im CR 1 mit Hilfe des Index im FIFO-Register 52 in den
Stapel STOK geladen und das FIFO-Register auf den nächstfolgenden STOKID-Wert gesetzt
Der STOK wird immer dann durchsucht wenn ein neuer STO-Wert in CR 1 eingelesen wird. Zur Suche
wird der Inhalt des Zeigerregistes 51 auf STO ID 2 gesetzt entsprechend dem ersten Eintrag im STOK.
Danach wird der Inhalt des Eintrags 2 ausgelesen und
mit der gegenwärtigen, in CR 1 gespeicherten STO
verglichen. Bei Übereinstimmung entspricht der STO-Eintrag 2 der neuen STO und somit STO ID 2. Die
Übereinstimmung wird durch den Vergleichsschaltkreis CMPR 56 auf Leitung 56Λ an die Torschaltung 51B
gemeldet die ihrerseits den Inhalt des Zeigerregisters 51 als aktiven STOID auf die Leitungen 51 Cgibt
Bei fehlender Übereinstimmung ergibt der Vergleichsschaltkreis 56 ein entsprechendes Signal auf
Leitung 565, der Inhalt des Zeigerregisters 51 wird auf
den nächsten STO ID-Wert gesetzt tmd der entsprechende nächste Eintrag im STOK 50 im Vergleichsschaltkreis 56 mit der STO in CR 1 verglichen. Diese
Schrittfolge wird so lange forgesetzt, bis der Vergleich
Übereinstimmung ergibt oder bis die STO in CR 1 in
einen Eintrag geladen wird, der durch FIFO 52 bestimmt
wird.
Die Durchsuchung des STOK endet wenn der Vergleichsschaltkreis CMPR 53 feststellt, daß der Inhalt
des Zeigerregisters 51 gleich dem Wert des FIFO-Regi
sters 52 ist In diesem Fall ist die aktive STO in CR 1 in
keinem Eintrag von STOK 50 enthalten und sie wird deshalb in den Stapel STOK an der Stelle eingeschrieben, die gegenwärtig im FIFO-Register 52 bezeichnet
ist; dieses Register ist dann aber gleich dem
Zeigerregister 51. Die Anzeige-»Übereinstimmung« des Vergleichskreises 53 wird auch an das ODER-Glied 58
gegeben, das seinerseits ein Signal »Schreibe STO« an die Eingangstorschaltungen von STOK 50 liefert, die die
aktiven STO-Werte aus CR O und 1 in den durch FIFO
bezeichneten Eintrag einschreiben.
Das Signal »Übereinstimmung« des Vergleichskreises 53 setzt weiterhin das FIFO-Register 52 auf den
nächstfolgenden STO ID-Wert
Schließlich kann es vorkommen, daß im STOK 50 alle Einträge 2 bis 30 mit STOs belegt sind. Wenn dann ein
neuer STO-Wert in CR 1 geladen wird und bei einer Suche in der oben beschriebenen Art kein gleicher
STO-Wert in den STOK-Einträgen 2 bis 30 vorhanden ist, wird das Zeigerregister Sl schließlich auf den Wert
31 gesetzt; Schaltkreis 54 stellt dann fest, daß dieser Wert größer als 30 ist und gibt ein Ausgangssignal
»Lösche DLAT« auf Leitung 54,4, wodurch alle DLAT-Einträge ungültig gesetzt werden. Das Ausgangssignal
des Schaltkreises 54 dient außerdem zum Zurücksetzen des Zeigerregisters 51 auf den Wert 2, um
den ersten Eintrag in STOK 50 zu adressieren. Außerdem wird das Ausgangssignal des Schaltkreises
54 auf einen Verzögerungskreis 57 gegeben, dessen Verzögerung gerade so groß ist, daß sie der zum
Löschen aller DLAT-Einträge benötigten Zeit entspricht; das verzögerte Signal läuft dann über ein
ODER-Glied 58 und veranlaßt das Einschreiben des neuen STO-Wertes in den STOK-Eintrag 2.
Übersetzer 7
Mit Ausnahme der Verriegelungsschaltung 67, in der der Wert des Berechtigungsindikators »gemeinsamer
Speicherbereich« gespeichert wird, und der Eingangstorschaltungen entspricht der in F i g. 7 dargestellte
Übersetzer dem in der Zentraleinheit IBM S/370 M168 CPU verwendeten. Die Eingänge des Übersetzers
umfassen das logische Adreßregister (LAR) 61, das ebenfalls in F i g. 1 dargestellt ist und ein Übersetzereingangsregister
(TIR) 62. In LAR 61 werden die virtuellen Adressen aus der Instruktionseinheit des
Prozessors gegeben, in Register TIR 62 werden einzeln die STOs aus Register CR 1 sowie die STE und PTE aus
dem Hauptspeicher eingelesen. Die Stellung des Bits C »gemeinsamer Speicherbereich« in einem STE wird
durch ein Ausgangstor 62C bestimmt, das die Bitposition 30 im TIR 62 abfühlL Das Ausgangstor 62Cist mit
dem Eingang zum Setzen der Verriegelungsschaltung COM STG 67 für die Speicherung des Berechtigungsindikators
»gemeinsamer Speicherbereich« verbunden und setzt diese Schaltung, wenn Bit C angesetzt ist; im
anderen Fall wird die Verriegelungsschaltung zurückgesetzt Die Ausgangsleitung 67Λ zeigt die Stellung der
Verriegelungsschaltung der DLAT Ladesteuerung 9 an, die den Wert 31 für den Zugriffsindikator »gemeinsamer
Speicherbereich« (sog. COM-Signal) in das STO ID eines gegenwärtig ausgewählten DLAT-Eintrags setzt,
wenn Bit C »gemeinsamer Speicherbereich« angesetzt ist. Ist Bit C ausgesetzt, wird die Verriegelungsschaltung
67 zurückgesetzt und die Steuerungen 9 laden den STO ID aus dem Zeigerregister 51 in das ausgewählte DLAT.
Der Ausgang des Übersetzers 7 liefert die Adressen STO+ SX bzw. PTO+PX, die zum Auslesen der STE
bzw. PTE erforderlich sind Der Wert PFRA+D wird
nicht vom Übersetzer erzeugt, sondern entsteht durch Verkettung der.reellen Adresse RA aus dem ausgewählten
DLAT und dem D-Wert aus dem LAR 61; diese Verkettung erfolgt direkt in die Speicherzugriffssteuerung
12, um somit die Byteadressen in einer Seite schneller zu erzeugen, die zu diesem Zeitpunkt über
einen DLAT-Eintrag adressiert wird.
._ Ein Taktgeber 68 steuert den Zeitablauf im Übersetzer. Der Taktgeber wird durch ein Signal »DLAT-Ausnahme« auf Leitung 67j4 durch die DLAT-Lesesteuerungen 8 angestoßen. Wenn kein DLAT-Eintrag gefunden wird, beendet der Taktgeber seinen Betrieb, indem er ein Signal »DLAT Laden« auf Leitung 68Λ erzeugt, mit dem angezeigt wird, daß ein PFRA aus dem PTE zum Einschreiben in den ausgewählten DLAT-Eintrag zur Verfügung steht.
._ Ein Taktgeber 68 steuert den Zeitablauf im Übersetzer. Der Taktgeber wird durch ein Signal »DLAT-Ausnahme« auf Leitung 67j4 durch die DLAT-Lesesteuerungen 8 angestoßen. Wenn kein DLAT-Eintrag gefunden wird, beendet der Taktgeber seinen Betrieb, indem er ein Signal »DLAT Laden« auf Leitung 68Λ erzeugt, mit dem angezeigt wird, daß ein PFRA aus dem PTE zum Einschreiben in den ausgewählten DLAT-Eintrag zur Verfügung steht.
DLAT-Ladesteuerung 9
Die DLAT-Ladesteuerung in Fig.9 umfaßt eine Vielzahl von Torschaltungen, mit denen die verschiedenen
Felder im ausgewählten DLAT geladen werden. Bekannte (und nicht dargestellte) LRU (Least recently
ίο used)-Schaltkreise wählen den zu ladenden DLAT-Eintrag
aus. Der Schaltkreis zum Laden der Schlüsselfelder »ungerade« und »gerade« ist nicht dargestellt, da er dem
im System IBM S/370 M168 CPU entspricht. In Fig.9
besteht die Erzeugungsschaltung COM ID GEN 91 für den Zugriffsindikator »gemeinsamer Speicherbereich«
aus einem UND-Glied, dem auf Leitung 67Λ ein Signal COM STG »gemeinsamer Speicherbereich« und auf
Leitung 68Λ ein Signal »DLAT Laden« zugeführt werden. Die Erzeugungsschaltung 91 erzeugt dann auf
fünf Leitungen Bits mit Wert 1, um den Binärwert 31 darzustellen. Diese Leitungen sind über ODER-Glied 96
an das STO ID-FeId im ausgewählten DLAT-Eintrag geführt.
Leitung 67A gibt das Signal »gemeinsamer Speicherbereich«
der Verriegelungsschaltung 67 auch an einen Inverter 97, dessen Ausgangssignal eine Torschaltung
STOID 92 sperrt, um zu verhindern, daß der aktive STO
ID aus dem Zeigerregister über Leitung 51C an das ODER-Glied 96 gelangt Wenn Bit C angesetzt ist, kann
somit das Ausgangssignal des ODER-Gliedes 96 nur der Wert 31 sein, mit dem der Zugriffsindikator »gemeinsamer
Speicherbereich« für das ausgewählte DLAT angezeigt wird.
Wenn das Bit für »gemeinsamer Speicherbereich« auf Null steht, erzeugt die Schaltung 91 kein Ausgangssignal und der Inverter 97 aktiviert die Torschaltung 92; in diesem Fall gelangt der STO ID auf den Leitungen 51C über das ODER-Glied 96 in das Fünf-Bit-Feld STO ID im ausgewählten DLAT-Eintrag.
Wenn das Bit für »gemeinsamer Speicherbereich« auf Null steht, erzeugt die Schaltung 91 kein Ausgangssignal und der Inverter 97 aktiviert die Torschaltung 92; in diesem Fall gelangt der STO ID auf den Leitungen 51C über das ODER-Glied 96 in das Fünf-Bit-Feld STO ID im ausgewählten DLAT-Eintrag.
Die Torschaltung VA 93 leitet die LAR-Bits 8 bis 14 auf Leitung 61Λ in das Feld VA des ausgewählten
DLAT und ermöglicht so die Identifizierung der virtuellen Adresse VA. In ähnlicher Weise leitet
Torschaltung RA 94 den realen Adreßteil PFRA auf Leitung 66ß von F i g. 7 auf das RA-FeId im ausgewählten
DLAT.
DLAT-Lesesteuerung 8
Die DLAT-Lesesteuerung in Fig.8 faßt zwei
identische DLAT-Lesesteuerschaltungen 80 und 86, denen das Paar ausgewählter DLAT-Einträge in den
DLAT-Tabellen 0 und 1 zugeführt wird. Zu jedem
Schaltkreis 80 und 86 gehören eine Mehrzahl von Vergleichsschaltkreisen. Der Vergleichsschaltkreis 81 in
Schaltkreis 80 beispielsweise vergleicht den STOID des ausgewählten DLAT mit dem aktiven STO ID aus dem
Zeigerregister 5t, um festzustellen, ob die DLAT-Adresse zum anfordernden Adreßraum gehört Bei Übereinstimmung
wird auf Ausgangsleitung 8iB ein Signal an ODER-Glied 81Λ gegeben. Im anderen Fall wird auf
Leitung 81 ß kein Signal erzeugt und so angezeigt, daß
die DLAT-Adresse nicht zum anfordernden Adreßraum gehört Nach der Lehre der vorliegenden Erfindung
wird jedoch ein UND-Glied 82 als Detektorschaltung für gemeinsame Speicherbereiche eingebaut, mit dem
festgestellt wird, ob der STOID im ausgewählten DLAT
der Zugriffsindikator 31 für gemeinsamen Speicherbereich ist Beim Schaltkreis 82 handelt es sich um ein
UND-Glied, das erfordert, daß alle fünf STO ID Eingangssignale auf 1 stehen (entsprechend Binär 31),
wenn ein Ausgangssignal an ODER-Glied SiA gegeben werden soll, welches die Bedingung »ungleich« in
Schaltkreis 81 überbrückt. Das ODER-Glied 81A liefert
somit ein aktives Ausgangssignal, wenn entweder die empfangenen STO IDs gleich sind oder wenn es sich
beim DLAT-Eintrag um den Zugriffsindikator »gemeinsamer Speicherbereich« handelt.
Ein Vergleichsschaltkreis 83 für virtuelle Adressen vergleicht die VA-Felder im ausgewählten DLAT mit
oen Bitpositionen 8 bis 14 im LAR 61. Bei Übereinstimmung übersetzt DLAT diese virtuelle Adresse, vorausgesetzt, daß ODER-Glied 81A ein Adreßraumsignal
abgibt, mit dem der Verknüpfungsschaltkreis 84 für DLAT O aktiviert wird, der seinerseits ein Ausgangssignal an Torschaltung 85.A abgibt, die die absolute
Adresse (RA) aus dem ausgewählten DLAT über ein RA-Register 85 empfängt. Die reelle Adresse gelangt
dann aus dem RA-Register in eine RA-Auswahltorschaltung 89. Die Ausgangssignale der Torschaltungen
85A und der Ausgang 8OA des Schaltkreises 84 aktivieren auch eine Torschaltung 84A, um den geraden
oder ungeraden Schlüssel aus dem DLAT-Eintrag als Eingang für die Schaltkreise zur Verarbeitung der
Schlüssel 88 auszuwählen.
Die Lesesteuerungen 86 für DLAT 1 umfassen identische Schaltkreise, wie die eben beschriebenen
Steuerungen 80 für DLAT 0. Die DLAT-Lesesteuerungen 80 und 86 (die gleichzeitig die Ausgänge der beiden
DLATs des durch die Hash-Adresse ausgewählten Paares empfangen) treffen die Entscheidung, welcher
DLAT-Eintrag des Paares (wenn überhaupt) der gegenwärtigen Adreßanforderung in LAR 61 und dem
Zeigerregister 51 entspricht Nur eine der Leitungen 8OA oder 86A kann zu einem gegebenen Zeitpunkt aktiv
sein, da bei einem Paar von DLAT-Einträgen jeweils nur einer der beiden Schaltkreise ein Vergleichsergebnis
»Übereinstimmung« aufweisen kann, das zur Aktivierung der jeweiligen Leitung erforderlich ist In ähnlicher
Weise kann auch nur einer der Schaltkreise 80 oder 86 ein Ausgangssignal über die Torschaltung 85A an RA
geben. Die reelle Adresse RA gelangt als Eingang zu einer RA-Auswahltorschaltung 89, die sie jedoch nur
dann verlassen kann, wenn der Schlüssel im ausgewählten DLAT-Eintrag gleich dem PSW-Schlüssel ist, der
von den Schlüsselschaltkreisen 88 empfangen wird. Bei Übereinstimmung des PSW-Schlüssels und des DLAT-Schlüssels wird auf Leitung 88A ein Signal erzeugt, mit
dem die RA-Auswahltorschaltung 89 auf Durchgang geschaltet wird und die reale Adresse RA an die
Speicherzugriffssteuerungen weitergibt, die ihrerseits
den Zugriff zum Hauptspeicher bewerkstelligen. Sind die Schlüssel beim Vergleich in den Schaltkreisen 88
jedoch verschieden, so zeigt ein Signai auf Leitung SSB eine Speicherschutzverletzung an; dieses Signal wird an
die Unterbrechungsschaltkreise des Prozessors weitergegeben und Torschaltung 89 verhindert den Zugriff.
ODER-Glied 87 besitzt ein komplementäres Ausgangssignal das anzeigt, daß weder Eingang 8OA noch
86A die Auswahl eines DLAT-Eintrages 0 oder 1 des Paares anzeigt Das Signal auf der Ausgangsleitung 87.5
erzeugt ein Signal »DLAT-Ausnahme«, mit dem angezeigt wird, daß die virtuelle Adresse in LAR 61
keinem gegenwärtigen DLAT-Eintrag entspricht und somit der Übersetzer die virtuelle Adresse in eine
absolute Seitenadresse für eine Seite fibersetzen muß, die möglicherweise im Hauptspeicher enthalten ist.
Befindet sich die Seite nicht im Hauptspeicher, so muß eine Eingabe/Ausgabe-Operation erfolgen, um die Seite
von einem Eingabe/Ausgabe-Gerät in den Hauptspeicher zu überführen, bevor der Übersetzer einen
DLAT-Eintrag mit der übersetzten Adresse erstellen kann.
ίο ein Berechtigungsindikator für ein gemeinsames Segment in diejenigen STE eingebaut, die allen Adreßräumen gemeinsam angehören, d. h. allen Segmenttabellen;
alle Seiten in einem gemeinsamen Segment (d. h. die Seitentabellen) sind implizit in dem gemeinsamen
Segment enthalten, ohne daß ein besonderer Berechtigungsindikator in den Seitentabellen erforderlich wäre.
Ein einzelnes Bit C für ein gemeinsames Segment stellte somit die Vielzahl von Seiten in diesem Segment allen
Adreßräumen zur Verfugung.
Die Ausführungsform mit gemeinsamen Seiten bezieht den gemeinsamen Speicherbereich auf das
Niveau der Seite und nicht auf das Niveau der Segmente. In beiden Ausführungsformen bezieht sich
aber der Eintrag für den Zugriffsindikator »gemeinsa
mer Speicherbereich« im DLAT nur auf die Seite, die
durch den DLAT-Eintrag gezeigt wird.
Die zweite Ausführungsform ermöglicht es somit, einzelne Seiten eines Segments als Seiten mit
gemeinsamem Zugriff für alle Adreßräume zu definie
ren, während andere Seiten im gleichen Segment auf
einen einzelnen Adreßraum beschränkt werden können. Der bestimmende Faktor, welche Seiten von anderen
Adreßräumen Zugriff erlauben, wird dadurch gesteuert, daß ein Bit C für den gemeinsamen Speicherbereich in
die Seitentabellen eintrage (PTE) und nicht in die Segmenttabelleneinträge (STE) gesetzt wird. Dies ist in
Fig.2 dargestellt, wo Bit C für den gemeinsamen Speicherbereich in einem Eintrag PTE-g in der
Seitentabelle : dargestellt ist. Die in der Seitentabelle i
dargestellten Seiten können somit selektiv entweder
einem oder allen Adreßräumen zur Verfugung gestellt werden, indem das Bit C im Feld des Berechtigungsindikators »gemeinsamer Speicherbereich« der PTE gesetzt
oder nicht gesetzt wird; die STE können somit auch das
in F i g. 3 gezeigte übliche Format besitzen. Der neue
PTE-Eintrag in F i g. 2 ist in F i g. 4B dargestellt
Der einzige Unterschied auf Schaltungsebene zur Behandlung des PTE-Bits C in F i g. 2 (und nicht des
STE-Bits in Fig. 1) zeigt sich in Fig. 7, in der die
verwendet wird, den Zustand des PTE-Bits 23
abzufühlen; eine Ausgangsschaltung 62C braucht nicht
vorhanden zu sein.
erfahren keine Änderung. Der Wert 31 wird auch hier als Zugriffsindikator für den gemeinsamen Speicherbereich in DLAT benutzt, doch führt er hier automatisch
zur Steuerung des gemeinsamen Zugriffs auf Seitenbasis und nicht auf Segmentbasis.
Es ist selbstverständlich, daß der im DLAT benutzte
Zugriffsindikator für den gemeinsamen Speicherbereich nicht den Wert 31 aufzuweisen braucht, sondern jeden
in allen DLATs eindeutigen Wert annehmen kann. Beispielsweise kann es sich auch um ein besonderes
Anzeigebit in jedem DLAT handeln, das entsprechend dem Wert des Bits C im übersetzten STE oder PTE
gesetzt wird.
Hierzu 6 Blatt Zeichnungen
Claims (7)
1. Speichereinrichtung mit mehreren virtuellen Adreßräumen, denen jeweils Seiten- oder Seiten-,und
Segment-Obersetzungstabellen zugeordnet sind und die von allen Adreßräumen gemeinsam
benutzbare virtuelle Speicherbereiche gleicher virtueller Adressen enthalten, sowie mit mindestens
einer Übersetzungsnebentabelle (DLAT), deren Einträge ein Feld zur Identifizierung des jeweiligen
Adreßraums aufweisen, dadurch gekennzeichnet,
daß Einrichtungen (91, 92, 96) einen Zugriffsindikator »gemeinsamer Speicherbereich«
für gemeinsame Benutzbarkeit erzeugen und anstel-Ie des Adreßraum-Identifizierers in den DLAT-Eintrag
setzen und daß Einrichtungen (81,82) bei jedem DLAT-Zugriff das Adreßraumfeld (STO ID; F i g. 6)
auf Vorhandensein des Zugriffsindikators prüfen, um im Fall eines gemeinsam benutzbaren Speicherbereichs
bei übereinstimmender virtueller Adresse (im Vergleichsschaltkrejs 83, Fig.8) unabhängig vom
Adreßraumidentifizierer des gerade aktiven Adreßraums
die reale Adresse (RA) aus dem betreffenden DLAT-Eintrag auszugeben.
2. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß gemeinsam benutzbare virtuelle
Segmente oder gemeinsam benutzbare virtuelle Seiten durch einen Berechtigungsindikator (Bit 30,
F i g. 4a bzw. Bit 22, F i g. 4b) in den Segment- bzw.
Seitentabelleneinträgen angezeigt werden.
3. Speichereinrichtung nach Anspruch 2, dadurch gekennzeichnet, daß in einem Übersetzer für
virtuelle Adressen (7, F i g. 1; F i g. 7) Abfühlschaltungen (23 bzw. 30) für den Berechtigungsindikator
eines Segments bzw. einer Seite enthalten sind und daß abhängig von der Stellung des Berechtigungindikators
eine Verriegelungsschaltung (67) zur Anzeige eines gemeinsam benutzbaren Speicherbereichs
gesetzt wird.
4. Speichereinrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Zugriffsindikator
eines DLAT-Eintrags ausschließlich aus binären Einsen besteht.
5. Speichereinrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Prüfung auf Vorliegen des
Zugriffsindikators durch ein UND-Glied (82, F i g. 8) erfolgt, das parallel zum Vergleichsschaltkreis (81)
für Adreßraumidentifizierer geschaltet ist.
6. Speichereinrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Adreßraumidentifizierer
aus dem Index (ID) eines Ursprungsadreßeintrags für Übersetzungstabellen (STO) in
einem Stapelspeicher (STOK; F i g. 5) besteht.
7. Speichereinrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Übersetzungsnebentabelle
(DLAT) im Hash-Verfahren adressiert wird und daß nur Bits der virtuellen Adresse zur Bildung der Hash-Adresse verwendet
werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/781,022 US4136385A (en) | 1977-03-24 | 1977-03-24 | Synonym control means for multiple virtual storage systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2807476A1 DE2807476A1 (de) | 1978-09-28 |
DE2807476C2 true DE2807476C2 (de) | 1982-08-12 |
Family
ID=25121431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2807476A Expired DE2807476C2 (de) | 1977-03-24 | 1978-02-22 | Speichereinrichtung mit mehreren virtuellen Adreßräumen |
Country Status (8)
Country | Link |
---|---|
US (1) | US4136385A (de) |
JP (1) | JPS53118322A (de) |
AT (1) | AT378273B (de) |
AU (1) | AU514699B2 (de) |
CA (1) | CA1092719A (de) |
DE (1) | DE2807476C2 (de) |
GB (1) | GB1547746A (de) |
IT (1) | IT1112663B (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4264953A (en) * | 1979-03-30 | 1981-04-28 | Honeywell Inc. | Virtual cache |
US4332010A (en) * | 1980-03-17 | 1982-05-25 | International Business Machines Corporation | Cache synonym detection and handling mechanism |
US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
US4500952A (en) * | 1980-05-23 | 1985-02-19 | International Business Machines Corporation | Mechanism for control of address translation by a program using a plurality of translation tables |
DE3176632D1 (en) | 1980-11-10 | 1988-03-03 | Ibm | Cache storage hierarchy for a multiprocessor system |
US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
US4523275A (en) * | 1980-11-14 | 1985-06-11 | Sperry Corporation | Cache/disk subsystem with floating entry |
JPS5853079A (ja) * | 1981-09-25 | 1983-03-29 | Fujitsu Ltd | Stoスタツク制御方式 |
US4803655A (en) * | 1981-12-04 | 1989-02-07 | Unisys Corp. | Data processing system employing a plurality of rapidly switchable pages for providing data transfer between modules |
US4581702A (en) * | 1983-01-10 | 1986-04-08 | International Business Machines Corporation | Critical system protection |
US4551797A (en) * | 1983-08-31 | 1985-11-05 | Amdahl Corporation | Apparatus for reverse translation |
US4589092A (en) * | 1983-12-12 | 1986-05-13 | International Business Machines Corporation | Data buffer having separate lock bit storage array |
US4663742A (en) * | 1984-10-30 | 1987-05-05 | International Business Machines Corporation | Directory memory system having simultaneous write, compare and bypass capabilites |
US4737909A (en) * | 1985-04-01 | 1988-04-12 | National Semiconductor Corp. | Cache memory address apparatus |
US4636990A (en) * | 1985-05-31 | 1987-01-13 | International Business Machines Corporation | Three state select circuit for use in a data processing system or the like |
US4758946A (en) * | 1986-04-09 | 1988-07-19 | Elxsi | Page mapping system |
JPS6376034A (ja) * | 1986-09-19 | 1988-04-06 | Hitachi Ltd | 多重アドレス空間制御方式 |
JPS63231550A (ja) * | 1987-03-19 | 1988-09-27 | Hitachi Ltd | 多重仮想空間制御方式 |
JPS63278145A (ja) * | 1987-05-11 | 1988-11-15 | Nec Corp | パラメ−タ対応検査方式 |
US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
US5023773A (en) * | 1988-02-10 | 1991-06-11 | International Business Machines Corporation | Authorization for selective program access to data in multiple address spaces |
US4979098A (en) * | 1988-02-10 | 1990-12-18 | International Business Machines Corporation | Multiple address space token designation, protection controls, designation translation and lookaside |
US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
US5220669A (en) * | 1988-02-10 | 1993-06-15 | International Business Machines Corporation | Linkage mechanism for program isolation |
US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
US5404476A (en) * | 1989-02-10 | 1995-04-04 | Nec Corporation | Multiprocessing system having a single translation lookaside buffer with reduced processor overhead |
GB2239724B (en) * | 1990-01-05 | 1993-11-24 | Sun Microsystems Inc | Apparatus for maintaining consistency in a multi-processor computer system using virtual caching |
US5341485A (en) * | 1991-05-07 | 1994-08-23 | International Business Machines Corporation | Multiple virtual address translation per computer cycle |
US5319761A (en) * | 1991-08-12 | 1994-06-07 | International Business Machines Corporation | Directory look-aside table for a virtual storage system including means for minimizing synonym entries |
CA2285096C (en) * | 1991-11-12 | 2000-05-09 | Ibm Canada Limited-Ibm Canada Limitee | Logical mapping of data objects using data spaces |
JP2839060B2 (ja) * | 1992-03-02 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムおよびデータ処理方法 |
JP3098344B2 (ja) * | 1992-12-18 | 2000-10-16 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
US6006312A (en) * | 1995-02-27 | 1999-12-21 | Sun Microsystems, Inc. | Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses |
US5754818A (en) * | 1996-03-22 | 1998-05-19 | Sun Microsystems, Inc. | Architecture and method for sharing TLB entries through process IDS |
US6560687B1 (en) * | 2000-10-02 | 2003-05-06 | International Business Machines Corporation | Method of implementing a translation lookaside buffer with support for a real space control |
US6560690B2 (en) * | 2000-12-29 | 2003-05-06 | Intel Corporation | System and method for employing a global bit for page sharing in a linear-addressed cache |
KR100459728B1 (ko) * | 2002-10-22 | 2004-12-03 | 삼성전자주식회사 | 고속 변환 색인 버퍼 |
US7093100B2 (en) | 2003-11-14 | 2006-08-15 | International Business Machines Corporation | Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL6806735A (de) * | 1968-05-11 | 1969-11-13 | ||
US3781808A (en) * | 1972-10-17 | 1973-12-25 | Ibm | Virtual memory system |
JPS532296B2 (de) * | 1973-03-19 | 1978-01-26 | ||
JPS5315778B2 (de) * | 1973-07-18 | 1978-05-27 | ||
FR130806A (de) * | 1973-11-21 | |||
JPS5434577B2 (de) * | 1974-06-28 | 1979-10-27 | ||
JPS52144929A (en) * | 1976-05-28 | 1977-12-02 | Fujitsu Ltd | Multiplex virtual space processing data processing system |
JPS52149444A (en) * | 1976-06-08 | 1977-12-12 | Fujitsu Ltd | Multiplex virtual space processing data processing system |
-
1977
- 1977-03-24 US US05/781,022 patent/US4136385A/en not_active Expired - Lifetime
- 1977-12-02 CA CA292,248A patent/CA1092719A/en not_active Expired
-
1978
- 1978-02-10 AU AU33209/78A patent/AU514699B2/en not_active Expired
- 1978-02-15 JP JP1548678A patent/JPS53118322A/ja active Pending
- 1978-02-21 IT IT20424/78A patent/IT1112663B/it active
- 1978-02-22 AT AT0129278A patent/AT378273B/de not_active IP Right Cessation
- 1978-02-22 DE DE2807476A patent/DE2807476C2/de not_active Expired
- 1978-02-22 GB GB7130/78A patent/GB1547746A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
GB1547746A (en) | 1979-06-27 |
IT7820424A0 (it) | 1978-02-21 |
ATA129278A (de) | 1984-11-15 |
IT1112663B (it) | 1986-01-20 |
AT378273B (de) | 1985-07-10 |
AU514699B2 (en) | 1981-02-19 |
JPS53118322A (en) | 1978-10-16 |
DE2807476A1 (de) | 1978-09-28 |
US4136385A (en) | 1979-01-23 |
CA1092719A (en) | 1980-12-30 |
AU3320978A (en) | 1979-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2807476C2 (de) | Speichereinrichtung mit mehreren virtuellen Adreßräumen | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE2241257C3 (de) | Datenverarbeitende Anlage | |
DE3011552C2 (de) | ||
EP0010198B1 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE3932675C2 (de) | ||
DE3224034A1 (de) | Mehrprozessorensystem | |
DE3338345C2 (de) | ||
EP0600112A1 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff | |
DE2841041A1 (de) | Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren | |
DE2716051A1 (de) | Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden | |
DE2835989A1 (de) | Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes | |
DE3502147C2 (de) | ||
DE3833933A1 (de) | Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
DE4123550A1 (de) | Informationsverarbeitungssystem mit direktem speicherzugriff | |
DE3932695A1 (de) | Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ | |
DE2717700C2 (de) | Speicherzugriffsanordnung | |
CH495584A (de) | Datenverarbeitungsanlage | |
DE2516050A1 (de) | Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |