DE2807476A1 - Speichereinrichtung mit mehreren virtuellen adressraeumen - Google Patents
Speichereinrichtung mit mehreren virtuellen adressraeumenInfo
- Publication number
- DE2807476A1 DE2807476A1 DE19782807476 DE2807476A DE2807476A1 DE 2807476 A1 DE2807476 A1 DE 2807476A1 DE 19782807476 DE19782807476 DE 19782807476 DE 2807476 A DE2807476 A DE 2807476A DE 2807476 A1 DE2807476 A1 DE 2807476A1
- Authority
- DE
- Germany
- Prior art keywords
- dlat
- address
- entry
- sto
- indicator
- 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.)
- Granted
Links
- 102100027152 Dihydrolipoyllysine-residue acetyltransferase component of pyruvate dehydrogenase complex, mitochondrial Human genes 0.000 claims description 149
- 101001122360 Homo sapiens Dihydrolipoyllysine-residue acetyltransferase component of pyruvate dehydrogenase complex, mitochondrial Proteins 0.000 claims description 149
- 230000015654 memory Effects 0.000 claims description 54
- 238000013519 translation Methods 0.000 claims description 24
- 238000013475 authorization Methods 0.000 claims description 6
- 230000014616 translation Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 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 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 101100134883 Caenorhabditis elegans dlat-1 gene Proteins 0.000 description 1
- 101150021395 JUND gene Proteins 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Anmelderin: International Business Machines
Corporation, Armonk, N. Y. 10504
Te / sue
Speichereinrichtung mit mehreren virtuellen Adreßrrumen
Speichereinrichtung mit mehreren virtuellen Adreßrrumen
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
asoziative 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
3 725 874, 3 781 808 und 3 902 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 (z. B. im Betriebssystem IBM 0S/VS2 Release 2 MVS) 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 beispeilsweise zwei Benutzer gleichzeitig
PO976021 609839/0704
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ür»sehten
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 schlägt vor, für jeden Segmenttabelleneintrag (STE) oder alternativ für jeden Seitentabelleneintrag (PTE)
j ι
in jedem privaten Adreßraum eine Anzeige ("gemeinsamer Adreßbereich") vorzusehen, 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 gemein- i
sam benutzt werden können. Dieser Eintrag in den Übersetzungstabellen wird auch Berechtigungsindikator genannt. Jeder
Eintrag in den Adreßübersetzungs-Nebentabellen (DLAT) enthält jeinen Speicherindikator "gemeinsam/privat", der entsprechend
idem Bit im STE oder PTE gesetzt wird, das zur Adreßübersetzung ί
!für den DLAT-Eintrag herangezogen wird. Dieser DLAT-Eintrag I
j !
jwird auch Zugriffsindikator genannt. Wenn der DLAT-Eintrag gelesen wird, bestimmt der Speicherindikator "privat/gemeinsam",
po 976 021 809839/07OA
ob das DLAT nur von dem im DLAT identifizierten Adreßraum
benutzt v/erden 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 DLAT 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 Adreßraum-Identifizierfeld
vorgesehen ist, das eindeutig den einer Seite zugeordneten Adreßraum bezeichnet; diese Seite wird durch das Feld
für die reale Adresse des Seitenrahmens (PFEA) 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, die beispielsweise in dem Rechensystem IBM S/370 Modell 168 CPu!
(verwendet werden, sind in der US-Patentschrift 3 781 808 beschrieben.
po m™ 109839/0704
Die Erfindung verwendet in jedem Segment- oder Seitentabelleneintrag
und in jedem DLAT-Eintrag einen Indikator "gemeinsamer Speicher", der während der Übersetzung der Segmenttabelle
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 Indikator "gemeinsamer Speicherbereich" in jedem Segmenttabelleneintrag
(bzw. in jedem Seitentabelleneintrag, entsprechend der Ausgestaltung der virtuellen Adressierung in
einem betrachteten System). Der Indikator "gemeinsamer Speicher" wird bevorzugt als Bitposition in jedem Segmenttabelleneintrag
ausgeführt. In der anderen Ausführungsform stellt dieser Indikator eine Bitposition in jedem Seitentabelleneintrag
dar.
Eine Adreßübersetzungseinrichtung fühlt den Zustand des Bit "gemeinsamer Speicherbereich" während des Übersetzungsprozesses in einem übersetzten Segmenttabelleneintrag (oder
Seitentabelleneintrag) ab und setzt entsprechend den Indikator "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 Indikator im Tabelleneintrag nicht gesetzt, so ist die übersetzte
Seite privat; in diesem Fall wird eine Identifizierung für jden einzigen Adreßraum, der diesen DLAT-Eintrag benutzen darf,
ebenfalls in diesen DLAT-Eintrag gesetzt, um eine Benutzung durch andere Adreßräume zu verhindern. Wenn das Bit "gemeinsamer
Speicherbereich" in den Tabelleneintrag gesetzt ist, jerhält das DLAT einen Indikator, der anzeigt, daß keine '
prüfung auf einen Adreßraum-Identifizierer erfolgen soll, so '
Idaß dieser DLAT-Eintrag von jedem Adreßraum benutzt werden kanni.
P0 976 °21 009839/0704
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 Benützung 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 3 781 808). Diese übliche Hash-Adressierung 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 Auslesen des DLAT fühlen üblicherweise den Adreßraum-Indikator 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 eine Anzeige "gemeinsamer Speicherbereich" festgestellt und sind in dem DLAT alle anderen:
Bedingungen erfüllt, so übergeben die DLAT-Lesesteuerschaltunge|n die Zugriffsanforderung mit der realen Adresse PFRA aus dem j
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: j
1. Sie stellen die Adreßraumsicherheit her, indem An- ;
forderungen für DLAT-übersetzungen aus Adreßräumen ι zurückgewiesen werden, deren Adreßraumindikator j
nicht mit dem im DLAT enthaltenen Adreßraumindikator ■ übereinstimmt oder !
2. sie erlauben allen Adreßräumen die DLAT-Obersetzung
PO976021 608839/0704
zu verwenden, indem der Adreßraumindikator 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. Jede 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 überlaut, 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 zeigen:
P0 976 °21 809839/070A
Fig. 1 ein Blockdiagramm einer bevorzugten Ausführungsform,
Fig. 2 die Hauptspeicherbelegung in einem zweiten
Ausführungsbeispiel,
Fig. 3 die im Stand der Technik benutzten Formate
für Steuerregister,Segmenttabellen-Einträge
und Seitentabelleneinträge,
Fig. 4A ein neues Format des Segmenttabelleneintrags
für eine bevorzugte Ausführungsform,
Fig. 4B ein neues Format für den Seitentabellenein-
trag für eine andere Ausführungsform der
Erfindung,
Fig. 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,
Fig. 7 Einzelheiten eines Übersetzers, der in den
Ausführungsbeispielen benutzt wird,
Fig. 8 Einzelheiten der DLAT-Lesesteuerungen
Fig. 9 die DLAT-Ladesteuerung im einzelnen.
PO 976 O21
809839/0704
Fig. 1 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform.
Ein Block "STOK und Steuerungen" 5 umfasst 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 Segmenttabellen-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 Indexwerte werden als STO-Identifizierer (STO ID) verwendet. Auf die gegenwärtig aktive STO im STOK wird
durch den STO ID in einem Zeigerregister (PTR 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 0 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 ge- j
isteilt werden, wenn ein STO ID mit 6 Bits gewählt wird, mit '
jdeia 61 STOK-Einträge (26-3) identifiziert werden können. J
!Die Komponente 54 in Fig. 1 zeigt einen überlauf des STOK 50 t
!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 Zeigeregister 51 steht
jund beim Durchsuchen der STOK-Einträge 2 bis 30 keine nächste
976-O2T
809839/0704
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 Fig. 1 ist ein Assoziativspeicher mit zwei Sätzen, in dessen einer Hälfte die DLAT-Tabelle
0 mit 64 Einträgen enthalten ist, die mit 00 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 LAR 61 zur Erzeugung der Hash-Adresse verarbeitet v/erden.
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 "gemeinsamer Speicherbereich"
im Segmenttabellen-Eintrag (STE) ableitet, der für die Übersetzung des DLAT-Eintrags herangezogen wird. Mit Ausnahme
des zusätzlichen Bits C "gemeinsamer Speicherbereich" im STE entspricht die Form aller Einträge in Segmenttabellen, Seitentabellen,
CR 0 und CR 1 den Systemsteuerprogrammen MVS (Mehrfachspei
eher sy sterne) 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 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 Fig. 1 hinzugezählt '
wird. Die Anfangsadresse für die Seitentabelle (PTO) befindet :
sich in dem ausgewählten STE und dient dem übersetzer zur !
PO976021 609839/0704
Adressierung des Seitentabelleneintrags (PTE), der in Fig. 1 mit PTE-g bezeichnet ist. PTE-g wird in der Seitentabelle
an der Stelle PTO + 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.
Fig. 4 zeigt das neuartige STE-Format mit dem Bit C (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 auf 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
PLAT-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 insge-
P0 976021 B09839/070Ä
samt 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 im 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 Lesesfeuerungen 8 in Fig. 1 über ein Signal "DLAT-Ausnahme"
auf Leitung 87Ά 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 STO ID 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 Lesesteuerunaen 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 89A an die SpeicherZugriffssteuerungen 12 abzugeben, um den Zugriff zu
einem oder mehreren Bytes, beginnend mit der RA-Adresse, einzu-j
leiten, 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 Indikator "gemeinsamer j
Speicherbereich" mit Wert 31 im Feld STO ID des ausgewählten j
DLAT-Eintrags finden, ignorieren die Lesesteuerungen 8 Ver- j
gleichsergebnisse "ungleich", da der Wert 31 des STO ID für !
alle STO ID-Werte das Vergleichsergebnis "gleich" erzwingt. i
Damit wird ein Zugriff der virtuellen Adresse LAR 61 erlaubt,
P0 976021 809839/0704
und zwar unabhängig davon, welcher Adreßraum die Zugriffsanforderung stellt (ensprechend dem Inhalt des Zeigerregisters
Das Feld STO ID wird also mit einem Wert geladen, der angibt, ob dieser DLAT-Eintrag nur von dem idreßraum benutzt werden
kann, durch den der Eintrag geladen wurde, oder aber ob von allen AdreßrMumen unabhängig davon, welcher das Laden bewerkstelligt
hat. Nach dieser allgemeinen Beschreibung der bevorzugten Ausführungsform werden deren einzelne Komponenten näher
beschrieben.
Fig. 5 zeigt eine bevorzugte Ausführungsform für den Stapel
STOK und die zugehörigen Steuerungen 5. Die Register CR 0 und CR 1 enthalten die in Fig. 3 dargestellten Formate, in denen
Bits 8 bis 25 vö CR 1 die aktive STO-Adresse darstellen, die Bits 8 und 9 in CR 0 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 1000K Bytes. Diese Bits des Registers CR 0 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.
; i
;Wenn ein neuer STO-Wert in CR 1 geladen wird, erfolgt eine
!suche des STOK 50, um festzustellen, ob diese STO gegenwärtig j im STOK 50 gespeichert ist; wenn ja, wird der Index dieses Ein-j
trags in Zeigerregister 51 eingeschrieben, um auf den Leitungen!
809839/0704
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 STOK ID-Wert gesetzt.
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 STOK ID-Wert gesetzt.
Der STOK wird immer dann durchsucht, wenn ein neuer STO-Wert
in CR 1 eingelesen wird. Zur Suche wird der Inhalt des
Zeigerregisters 51 auf STO ID2 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-Elntrag 2
der neuen STO und somit STO ID2. Die Übereinstimmung wird durch den Vergleichsschaltkreis CMPR 56 auf Leitung 56A an die Torschaltung 51B gemeldet, die ihrerseits den Inhalt des Zeigeregisters 51 als aktiven STO ID auf die Leitungen 51C gibt.
in CR 1 eingelesen wird. Zur Suche wird der Inhalt des
Zeigerregisters 51 auf STO ID2 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-Elntrag 2
der neuen STO und somit STO ID2. Die Übereinstimmung wird durch den Vergleichsschaltkreis CMPR 56 auf Leitung 56A an die Torschaltung 51B gemeldet, die ihrerseits den Inhalt des Zeigeregisters 51 als aktiven STO ID auf die Leitungen 51C gibt.
Bei fehlender Übereinstimmung ergibt der Vergleichsschaltkreis
56 ein entsprechendes Signal auf Leitung 56B, der Inhalt des
Zeigerregisters 51 wird auf den nächsten STO ID-Wert gesetzt
und der entsprechende nächste Eintrag im STOK 50 im Vergleichs-; schaltkreis 56 mit der STO in CR 1 verglichen. Diese Schritt- . folge wird so lange fortgesetzt, bis der Vergleich Übereinstimmung ergibt oder bis die STO in CR 1 in einen Eintrag
geladen wird, der durch FIFO 52 bestimmt wird.
56 ein entsprechendes Signal auf Leitung 56B, der Inhalt des
Zeigerregisters 51 wird auf den nächsten STO ID-Wert gesetzt
und der entsprechende nächste Eintrag im STOK 50 im Vergleichs-; schaltkreis 56 mit der STO in CR 1 verglichen. Diese Schritt- . folge wird so lange fortgesetzt, 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-Registers 52 ist. In diesem Fall ist i
die aktive STO in CR 1 in keinem Eintrag von STOK 50 enthalten j und sie wird deshalb in den Stapel STOK an der Stelle einge- j
schrieben, 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 j
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 j
po 976 °21 8G9839/070A
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 Zeigeregister 51 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 54A, 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 "gemeinsamer
!Speicherbereich" und der Eingangstorschaltungen entspricht öer in Fig, 7 dargestellte Übersetzer dem in der Zentraleinheit
IBM S/370 M168 CPU verwendeten. Die Eingänge des übert
Setzers umfassen das logische Adreßregister (LAR) 61, das ebenfalls in Fig. 1 dargestellt ist und ein Übersetzereingangsregister (TIR) 62. In LAR 61 werden die virtuellen Adressen aus der Instruktionseinheit des Prozessors gegeben,
Setzers umfassen das logische Adreßregister (LAR) 61, das ebenfalls in Fig. 1 dargestellt ist und ein Übersetzereingangsregister (TIR) 62. In LAR 61 werden die virtuellen Adressen aus der Instruktionseinheit des Prozessors gegeben,
PO976021 809839/0704
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ühlt. Das Ausgangstor 62C ist mit dem Eingang zum Setzen der Verriegelungsschaltung COM STG 67
"gemeinsamer Speicherbereich" verbunden und setzt diese Schaltung, wenn Bit C angesetzt ist; im anderen Fall wird die Verriegelungsschaltung zurückgesetzt. Die Ausgangsleitung 67A zeigt
die Stellung der Verriegelungsschaltung der DLAT Ladesteuerung
9 an, die den Wert 31 für den gemeinsamen 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 PPRA + 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 den SpeicherZugriffssteuerungen
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-Ausnähme" auf Leitung
67A 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 68A
erzeugt, mit dem angezeigt wird, daß ein PFRA aus dem PTE zum Einschreiben in den ausgewählten DLAT-Eintrag zur Verfügung!
steht.
PO 97© O2t
009839/0704
- 18 PLAT 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 das Signal
"gemeinsamer Speicherbereich" aus einem UND-Glied, dem auf Leitung 67A ein Signal COM STG "gemeinsamer Speicherbereich"
und auf Leitung 68A 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 STO ID 92 sperrt,
um zu verhindern, daß der aktive ETO 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 gemeinsame
identifizierer ID für das ausgewählte DLAT angezeigt wird.
Sienn das Bit für den gemeinsamen 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-Eintraq-,
Die Torschaltung VA93 leitet die LAR-Bits 8 bis 14 auf Leitung
61A in das Feld VA des ausgewählten DLAT und ermöglicht
PO 9Ύ6" Ö2T
809839/0704
so die Identifizierung der virtuellen Adresse VA. In ähnlicher Weise leitet Torschaltung RA94 den realen Adreßteil PFRA auf
Leitung 66B von Fig. 7 auf das RA-FeId im ausgewählten DLAT.
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 STO ID des ausgewählten DLAT mit dem aktiven STO ID aus dem Zeigerregister
51, um festzustellen, ob die DLAT-Adresse zum anfordernden
Adreßraum gehört. Bei Übereinstimmung wird auf Ausgangsleitung 81B ein Signal an ODER-Glied 81A gegeben. Im anderen
Fall wird auf Leitung 81B 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 STO ID im ausgewählten DLAT der Indikator 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 81A 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 Indikator COM "gemeinsamer ID" handelt.
Ein Vergleichsschaltkreis 83 für virtuelle Adressen vergleicht j die VA-Felder im ausgewählten DLAT mit den Bitpositionen 8
bis 14 im LAR 61. Bei Übereinstimmuna übersetzt DLAT diese
PO 976 021
809839/07CU
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 85A 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 Ausgancrssignale 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 entspricht. Nur eine der Leitungen 80A oder 86A kann zu
einem gegebenen Zeitpunkt aktiv sein, da bei einem Paar von DLAT-Einträgen jeweils nur einer der beiden Schaltkreise
ein Vergleichsergebins "Übereinstimmung" aufweisen kann, das zur Aktivierung der jeweiligen Leitung erforderlich
1st. 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 verjlassen
kann, wenn der Schlüssel im ausgewählten DLAT-Eintrag [gleich dem PSW-Schlüssel ist, der von den Schlüsselschalt-
|kreisen 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
PO 976 O21
809839/070Λ
Zugriff zum Hauptspeicher bewerkstelligen. Sind die Schlüssel beim Vergleich in den Schaltkreisen 38 jedoch verschieden,
so zeigt ein Signal auf Leitung 8RB 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 Äusgangsleitung 87B 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 übersetzen 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.
In der bisher beschriebenen Ausführungsform wurde ein
Indikator 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 Indikator 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
Verfügung. j
PO 976 021
809839/0704
Die Ausfuhrungsform 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 Identifizierer "gemeinsamer 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 definieren, 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
Seitentabelleneintrage (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 i dargestellt ist. Die in der Seitentabelle i dargestellten Seiten können somit
selektiv entweder einem oder allen Adreßräumen zur Verfügung gestellt werden, indem das Indikatorbit C im Feld "gemeinsamer
Speicherbereich" der PTE gesetzt oder nicht gesetzt wird; die STE können somit auch das in Fig. 3 gezeigte übliche
Format besitzen. Der neue PTE-Eintrag in Fig. 2 ist in Fig. 4B dargestellt.
Der einzige Unterschied auf Schaltungsebene zur Behandlung ;des PTE-Bits C in Fig. 2 (und nicht des STE-Bits in Fig. 1)
rzeigt sich in Fig. 7, in der die Ausgangsschaltung 62D des
!Registers TIR dazu verwendet wird, den Zustand des PTE-Bits !23 abzufühlen; eine Ausgangsschaltung 62C braucht nicht vorhanden
zu sein.
[Alle anderen Schaltkreise in den Fign. 5, 6, 7, 8 und 9
erfahren keine Änderung. Der Wert 31 wird auch hier als
PO"6021 809839/0704
Indikator 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 Indikator 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
besonders Anzeigebit in jedem DLAT handeln, das entsprechend dem Wert des Bits C im übersetzten STE oder PTE gesetzt wird.
PO976021 809839/0704
Claims (7)
- PATENTANSPRÜCHESpeichereinrichtung mit mehreren virtuellen Ädreßräumen, jeweils zugeordneten ein- oder mehrfachen Übersetzungstabellen und mindestens einer Übersetzungsnebentabelle (DLAT), dadurch gekennzeichnet, daß zu einem virtuellen Speicherabschnitt (Segment, bzw. Seite) nur ein Adreßraum oder aber alle Adreßräume zugreifen können, daß die gemeinsame oder exklusive Zugriffsberechtigung durch einen Eintrag (Berechtigungsindikator) in einer der Übersetzungstabellen angezeigt wird, daß Einrichtungen (62, 67, 91, 92, 96) zur Erzeugung eines Indikators (Zugriffsindikator) für gemeinsamen bzw. exklusiven Zugriff in DLAT-Einträgen abhängig vom Berechtigungsindikator vorgesehen sind und daß weiter Einrichtungen (81, 82) zur Prüfung des Zugriffsindikators bei jedem DLAT-Zugriff enthaIten s ind.
- 2. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Berechtigungsindikator nur in Segmenttabelleneinträgen; (Fig. 4A) enthalten ist.
- 3. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Berechtigungsindikator nur in Seitentabelleneinträgen (PTE; Fig. 4B) enthalten sind.
- 4. Speichereinrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Zugriffsindikator als Spezialwert im DLAT-FeId für die Adreßraum-Identifizierung (STO ID, Fig. 6) enthalten ist.021 6 0 9 8 3 9/0704 - c^3jnal inspected
- 5. Speichereinrichtung nach Anspruch 4, dadurch gekennzeichnet, daß das DLAT-FeId für die Adreßraum-Identifizierung aus dem Index (ID) eines Ursprungsadreß-Eintrags für Übersetzungstabellen (STO) in einem Stapelspeicher (STOK? Fig. 5) besteht.
- 6. Speichereinrichtung nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß der Zugriffsindikator für gemeinsamen Zugriff ausschließlich aus binären Einsen besteht.
- 7. Speichereinrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Prüfung auf Vorliegen des gemeinsamen Zugriffsindikators durch ein UND-Glied (82, Fig. 8) erfolgt, das parallel zur Vergleichseinrichtung (81) für Adreßraum— Identifizierer geschaltet ist.PO976021 Β09Θ39/0
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 true DE2807476A1 (de) | 1978-09-28 |
DE2807476C2 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 |
EP0051745B1 (de) | 1980-11-10 | 1988-01-27 | International Business Machines Corporation | Pufferspeicherhierarchie für ein Multiprozessorsystem |
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 |
US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
US4979098A (en) * | 1988-02-10 | 1990-12-18 | International Business Machines Corporation | Multiple address space token designation, protection controls, designation translation and lookaside |
US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
US5023773A (en) * | 1988-02-10 | 1991-06-11 | International Business Machines Corporation | Authorization for selective program access to data in multiple address spaces |
US5220669A (en) * | 1988-02-10 | 1993-06-15 | International Business Machines Corporation | Linkage mechanism for program isolation |
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725874A (en) * | 1968-05-11 | 1973-04-03 | Philips Corp | Segment addressing |
US3781808A (en) * | 1972-10-17 | 1973-12-25 | Ibm | Virtual memory system |
US3902163A (en) * | 1973-11-21 | 1975-08-26 | Amdahl Corp | Buffered virtual storage and data processing system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS532296B2 (de) * | 1973-03-19 | 1978-01-26 | ||
JPS5315778B2 (de) * | 1973-07-18 | 1978-05-27 | ||
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 GB GB7130/78A patent/GB1547746A/en not_active Expired
- 1978-02-22 DE DE2807476A patent/DE2807476C2/de not_active Expired
- 1978-02-22 AT AT0129278A patent/AT378273B/de not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725874A (en) * | 1968-05-11 | 1973-04-03 | Philips Corp | Segment addressing |
US3781808A (en) * | 1972-10-17 | 1973-12-25 | Ibm | Virtual memory system |
US3902163A (en) * | 1973-11-21 | 1975-08-26 | Amdahl Corp | Buffered virtual storage and data processing system |
Non-Patent Citations (1)
Title |
---|
Speiser: "Digitale Rechenanlagen", 1967, Springer Verlag Berlin, S. 263, 273, 400 * |
Also Published As
Publication number | Publication date |
---|---|
IT1112663B (it) | 1986-01-20 |
AU3320978A (en) | 1979-08-16 |
DE2807476C2 (de) | 1982-08-12 |
ATA129278A (de) | 1984-11-15 |
JPS53118322A (en) | 1978-10-16 |
CA1092719A (en) | 1980-12-30 |
IT7820424A0 (it) | 1978-02-21 |
AU514699B2 (en) | 1981-02-19 |
AT378273B (de) | 1985-07-10 |
GB1547746A (en) | 1979-06-27 |
US4136385A (en) | 1979-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2807476C2 (de) | Speichereinrichtung mit mehreren virtuellen Adreßräumen | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE68923627T2 (de) | Steuerungsverfahren und -vorrichtung für Nullursprungsdatenräume. | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE3932675C2 (de) | ||
DE2241257C3 (de) | Datenverarbeitende Anlage | |
DE69724572T2 (de) | Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen | |
DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
DE3151745C2 (de) | ||
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE69635865T2 (de) | Adressentransformation in einem cluster-computersystem | |
DE2131066A1 (de) | Anordnung zur Adressen-Umsetzung | |
DE3224034A1 (de) | Mehrprozessorensystem | |
DE3833933A1 (de) | Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE68925336T2 (de) | Datenverarbeitungsvorrichtung mit Cache-Speicher | |
DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
DE3932695A1 (de) | Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ | |
DE1574502C3 (de) | Assoziativspeicher | |
DE3919802A1 (de) | Speicherbaustein mit vektorprozessoren und einem skalarprozessor | |
DE69126898T2 (de) | Vorrichtung und Verfahren zum Steuern eines Cache-Speichers | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher |
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 |