DE2807476A1 - Speichereinrichtung mit mehreren virtuellen adressraeumen - Google Patents

Speichereinrichtung mit mehreren virtuellen adressraeumen

Info

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
Application number
DE19782807476
Other languages
English (en)
Other versions
DE2807476C2 (de
Inventor
Patrick Melvin Gannon
Andrew Robert Heller
Ronald Morton Smith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2807476A1 publication Critical patent/DE2807476A1/de
Application granted granted Critical
Publication of DE2807476C2 publication Critical patent/DE2807476C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address 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
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 m109839/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.
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 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.
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.
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.
ι 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
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,
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.
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 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.
Ausführungsform mit gemeinsamer Seite
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)

  1. PATENTANSPRÜCHE
    Speichereinrichtung 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. 2. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Berechtigungsindikator nur in Segmenttabelleneinträgen; (Fig. 4A) enthalten ist.
  3. 3. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Berechtigungsindikator nur in Seitentabelleneinträgen (PTE; Fig. 4B) enthalten sind.
  4. 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. 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. 6. Speichereinrichtung nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß der Zugriffsindikator für gemeinsamen Zugriff ausschließlich aus binären Einsen besteht.
  7. 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
DE2807476A 1977-03-24 1978-02-22 Speichereinrichtung mit mehreren virtuellen Adreßräumen Expired DE2807476C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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