DE2807476C2 - Speichereinrichtung mit mehreren virtuellen Adreßräumen - Google Patents

Speichereinrichtung mit mehreren virtuellen Adreßräumen

Info

Publication number
DE2807476C2
DE2807476C2 DE2807476A DE2807476A DE2807476C2 DE 2807476 C2 DE2807476 C2 DE 2807476C2 DE 2807476 A DE2807476 A DE 2807476A DE 2807476 A DE2807476 A DE 2807476A DE 2807476 C2 DE2807476 C2 DE 2807476C2
Authority
DE
Germany
Prior art keywords
dlat
address
entry
sto
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2807476A
Other languages
English (en)
Other versions
DE2807476A1 (de
Inventor
Patrick Melvin Poughkeepsie Gannon
Andrew Robert Mohegan Lake Heller
Ronald Morton Wappingers Falls N.Y. 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

Description

Die Erfindung betrifft eine Speichereinrichtung mit mehreren virtuellen Adreßräumen nach dem Oberbegriff des Anspruchs 1.
In Systemen mit virtueller Adressierung wird zur Leistungsverbesserung häufig von sogenannten Adreßübersetzungs-Nebentabellen (DLAT Dynamic Lookaside Adress Translation) Gebrauch gemacht Dabei handelt es sich um schnelle, insbesondere assoziative Speicher, in denen die virtuellen und die reellen Adressen von Seiten gespeichert sind, die vor kurzem adressiert wurden. Beispiele für DLAT sind in den US-Patentschriften 37 25 874, 37 81 808 und 39 02 163 zu finden.
In virtuellen Systemen mit mehreren Adreßräumen tritt bei den Adreßübersetzungs-Nebentabellen das Problem synonymer Einträge auf (DLAT-Synonyme). Bei mehreren Adreßräumen wird beispielsweise jedem Benutzer ein verschiedener Adreßraum zugeordnet; aus Sicherheitsgründen dürfen keine Zugriffe von einem privaten Adreßraum zu einem anderen erfolgen. Da Systemprogrammroutinen von allen Programmen in allen Adreßräumen benötigt werden, wurden bisher diese gemeinsamen Programme und Daten einem oder mehreren Segmenten in jedem der Adreßräume zugeordnet Wenn ein in seinem privaten Adreßraum arbeitender Benutzer einen Zugriff zu gemeinsamen Programmen verlangte, adressierte er diese Programme innerhalb seines eigenen Adreßraums. Dieses getrennte Adressieren beeinträchtigte jedoch die Systemleistung, da die gemeinsamen Programme und Daten durch verschiedene DLAT-Einträge im Prozessor übersetzt werden. Benötigten beispielsweise zwei Benutzer gleichzeitig dasselbe Betriebsprogramm, so wird dieses Programm seitenweise in den Hauptspeicher eingeschrieben und für den Adreßraum des Benutzers übersetzt. Benötigt nun der andere Benutzer dasselbe Programm, wird es zwar für diesen nicht erneut in den Hauptspeicher eingeschrieben, es wird jedoch für den Adreßraum dieses Benutzers unabhängig übersetzt. Die Übersetzung für jeden einzelnen Adreßraum führte somit zu dem unerwünschten Resultat, daß zuviel Übersetzungsvorgänge durchgeführt wurden, und daß eine Verschwendung der knappen Zahl von zur Verfügung stehenden DLAT-Einträgen auftrat, da für die verschiedenen Benutzer der gemeinsamen Programme und Daten jeweils besondere DLAT-Einträge (d. h. DLAT-Synonyme) erzeugt wurden.
Die vorliegende Erfindung stellt sich daher die Aufgabe, eine Einrichtung anzugeben, mit der synonyme Einträge in den Adreßübersetzungs-Nebentabellen (DLAT) vermieden werden.
Diese Aufgabe wird durch die im Hauptanspruch gekennzeichnete Erfindung gelöst; Ausgestaltungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Die Erfindung geht so vor, daß für jeden Segmenttabelleneintrag (STE) oder alternativ für jeden Seitentabelleneintrag (PTE) in jedem privaten Adreßraum eine Anzeige (»gemeinsamer Speicherbereich«) vorgesehen ist die angibt, ob das Segment bzw. die Seite Programme und Daten enthält, die dem Adreßraum privat zugeordnet sind oder aber von allen Adreßräumen gemeinsam benutzt werden können. Dieser Eintrag in den Übersetzungstabellen wird auch Berechtigungsindikator genannt. Jeder Eintrag in den Adreßübersetzungs-Nebentabellen (DLAT) enthält einen Indikator »gemeinsam/privat«, der entsprechend dem Berechtigungsindikator im STE oder PTE gesetzt wird, das zur Adreßübersetzung für den DLAT-Eintrag herangezogen wird. Dieser DLAT-Eintrag wird auch Zugriffsindikator genannt. Wenn der DLAT-Eintrag gelesen wird, bestimmt der Zugriffsindikator, ob das DLAT nur von dem im DLAT identifizierten Adreßraum benutzt
werden kann oder von allen Adreßräumen.
Die Verhinderung von synonymen Einträgen im DLAT erhöht die Systemleistung, da nicht nur weniger Übersetzungsvorgänge erforderlich sind, sondern auch die Zahl der verfügbaren DLAT-Einträge (die ohnehin relativ klein ist) erhöht wird; im DJ-AT Finden somit mehr übersetzte Adressen Platz, so daß ein Überlauf mit der dann notwendigen komplizierten DLAT-Verwaltung seltener auftritt Für die gemeinsam benutzten Systemroutinen brauchen weiterhin keine Mehrfachkopien im Hauptspeicher gehalten werden. Der Zugriff zu gemeinsam benutzten Systemroutinen wird durch die von der Erfindung vorgeschlagene Hardware-Einrichtung beträchtlich erleichtert
Im folgenden wird die Erfindung in ihren Grundzügen beschrieben; ihre Einzelheiten werden später anhand eines Ausführungsbeispiels erläutert. Die Erfindung wird in einem Prozessor verwendet der die gleichzeitige Adressierbarkeit für die zuletzt benutzten Seiten in mehreren Adreßräumen durch seine DLAT-Einträge ermöglicht Die DLAT Adressierbarkeit für verschiedene Adreßräume wird üblicherweise dadurch erreicht daß in jedem DLAT-Eintrag ein Feld für einen Adreßraum-Identifiziercr vorgesehen ist, das eindeutig den einer Seite zugeordneten Adreßraum bezeichnet; diese Seite wird durch das Feld für die reale Adresse des Seitenrahmens (PFRA) im gleichen DLAT-Eintrag zur Aufnahme der übersetzten Seitenadresse identifiziert. Spätere Zugriffe zu Daten in einer übersetzten Seite, die durch einen DLAT-Eintrag adressiert wird, können schnell erfolgen, wenn der DLAT-Eintrag zur Adressierung der Daten im Hauptspeicher oder in einem Arbeitsspeicher (Cache) ohne erneute Übersetzung der virtuellen Adresse verwendet wird. Die Schaltungen zur Unterstützung dieser Operationen sind in der US-Patentschrift37 81 808 beschrieben.
Die Erfindung verwendet in jedem Segment- oder Seitentabelleneintrag und in jedem DLAT-Eintrag einen Berechtigungsindikator »gemeinsamer Speicherbereich« der während der Übersetzung der Segmenttabellen- oder der Seitentabelleneinträge geladen wird, um damit anzuzeigen, ob für eine Seite, die über einen DLAT-Eintrag adressiert wird; Zugriffe von allen Adreßräumen im System möglich sind, oder ob ein Zugriff zu der Seite nur durch den Adreßraum erfolgen kann, der im DLAT-Eintrag identifiziert ist.
Die Steuereinrichtungen zum Laden des DLAT erkennen diesen Berechtigungsindikator »gemeinsamer Speicherbereich« in jedem Segmenttabelleneintrag (bzw. in jedem Seitentabelleneintrag, entsprechend der Ausgestaltung der virtuellen Adressierung in einem betrachteten System). Der Berechtigungsindikator »gemeinsamer Speicherbereich« wiifl bevorzugt als Bitposition in jedem Segmenttabelleneintrag ausgeführt In der anderen Ausführungsform stellt dieser Berechtigungsindikator eine Bitposition in jedem Seitentabelleneintrag dar.
Eine Adreßübersetzungseinrichtung fühlt den Zustand des Bits für den Berechtigungsindikator »gemeinsamer Speicherbereich« während des Übersetzungsprozesses in einem übersetzten Segmenttabelleneintrag (oder Seitentabelleneintrag) ab und setzt entsprechend den Zugriffsindikator »gemeinsamer Speicherbereich« im DLAT-Eintrag, in den das Übersetzungsergebnis eingeschrieben wird, um damit anzuzeigen, ob die im DLAT-Eintrag übersetzte Seite gemeinsam benutzt werden kann oder eine private Seite ist. Ist der Berechtigungsindikator im Tabelleneintrag nicht gesetzt, so ist die übersetzte Seite privat; in diesem Fall wird eine Identifizierung für den einzigen Adreßraum, der diesen DLAT-Eintrag benutzen darf, ebenfalls in diesen DLAT-Eintrag gesetzt um eine Benutzung durch andere Adreßräume zu verhindsrn. Wenn das Bit für den Berechtigungsindikator »gemeinsamer Speicherbereich« in den Tabelleneintrag gesetzt ist erhält das DLAT einen Zugriffsindikator, der anzeigt, daß keine Prüfung auf einen Adreßraurri-Identi'rizierer erfolgen soll, so daß dieser DLAT-Eintrag von jedem Adreßraum benutzt werden kann.
Für die Erfindung ist es wesentlich, daß bei der sogenannten Hash-Adressierung (Ermittlung der Adresse eines DLAT-Eintrags unter Verwendung von einzelnen Feldern der virtuellen Adresse, gegebenenfalls unter Benutzung eines Algorithmus) keine Bits aus dem Adreßraum-Identifizierer verwendet werden, wie es bei der DLAT-Hash-Adressierung im Stand der Technik der Fall ist (z. B. in dem schon erwähnten US-Patent 37 81 808). Diese übliche Hash-Adressiemng würde die Erfindung nicht ausführbar machen, da dann gleiche virtuelle Adressen in verschiedenen Adreßräumen nicht das gleiche Paar von DLAT-Einträgen adressieren würden. Die Erfindung verwendet deshalb zur Hash-Adressierung nur Bits aus der virtuellen Adresse, nicht aber Bits aus dem Adreßraum-Identifizierer.
Die Steuereinrichtungen für das Auslegen des DLAT fühlen üblicherweise den Adreßraum-Identifizierer in jedem ausgelesenen DLAT-Eintrag ab. Für die vorliegende Erfindung müssen die DLAT-Steuereinrichtungen auch die Indikatoren »gemeinsamer Speicherbereich« in jedem ausgelesenen DLAT abfühlen; dieses Bit würde in konventionellen Prozessoren zu einer Fehlerbedingung führen. Wird in einem DLAT ein Zugriffsindikator »gemeinsamer Speicherbereich« festgestellt und sind in dem DLAT alle anderen Bedingungen erfüllt, so übergeben die DLAT-Lesesteuerschaltungen die Zugriffsanforderung mit der realen Adresse PFRA aus dem DLAT an die Hauptspeicherzugriffsteuerungen, die den Zugriff im Hauptspeicher oder im Arbeitsspeicher (cache) bewirken.
Die DLAT-Lesesteuerungen werden durch die Erfindung in zweierlei Hinsicht erweitert:
1. Sie stellen die Adreßraumsicherheit her, indem Anforderungen für DLAT-Übersetzungen aus Adreßräumen zurückgewiesen werden, deren Adreßraum-Identifizierer nicht mit dem im DLAT enthaltenen Adreßraum-Identifizierer übereinstimmt oder
2. sie erlauben allen Adreßräumen die DLAT-Übersetzung zu verwenden, indem der Adreßraum-Identifizierer im DLAT ignoriert wird.
Jeder Adreßraum wird im System durch eine Segmenttabelle dargestellt, die für den Prozessor durch eine Segmenttabellenanfangsadresse (STO) definiert ist Jede STO stellt eine reale Adresse mit dem Beginn der Segmenttabelle dar. In einem System kann eine sehr große Anzahl von STO's verfügbar sein. Wenn eine beliebige STO verwendet werden soll, wird sie aktiviert, indem sie in ein Steuerregister (CR) gesetzt wird; außerdem wird sie als nächster Eintrag in einen Stapel (STOK) für Segmenttabellenanfangsadressen gegeben.
Für jede STO im STOK ist ein Indikator verfügbar, ein sogenannter STO ID, und zwar als Index für den STOK. Eine STO in jedem STOK-Eintrag und im
Register CR umfaßt 32 Bits (ein Vollwort). Eine STO kann in mehr als einem Eintrag im STOK enthalten sein. Der Stapel STOK wird verwendet, um die Zahl der Bits zu verringern, die für die Adreßraumidentifizierung in den DLATs erforderlich sind und damit, um die DLAT-Größe herabzusetzen. Kleinere DLATs arbeiten im allgemeinen schneller als große. Beispielsweise erfordert ein STOK mit bis zu 29 STOs nur 5 Bits für einen STO ID, um einen Adreßraum zu identifizieren; damit wird vermieden, alle 32 Bits des STO verwenden zu müssen. Jedesmal, wenn eine neue STO dazu führen würde, daß der Stapel STOK überläuft, wird dieser zurückgesetzt und gleichzeitig alle DLAT-Einträge; die neue STO wird am Beginn des STOK eingesetzt und ein entsprechender DLAT-Eintrag übersetzt.
Ein Ausführungsbeispiel der Erfindung wird nun anhand von Zeichnungen näher erläutert. Es zeigt
F i g. 1 ein Blockdiagramm einer bevorzugten Ausführungsform,
F i g. 2 die Hauptspeicherbelegung in einem zweiten Ausführungsbeispiel,
F i g. 3 die im Stand der Technik benutzten Formate für Steuerregister, Segmenttabellen-Einträge und Seitentabelleneinträge,
F i g. 4A ein neues Format des Segmenttabelleneintrags für eine bevorzugte Ausführungsform,
Fig.4B ein neues Format für den Seitentabelleneintrag für eine andere Ausführungsform der Erfindung,
F i g. 5 Einzelheiten eines STOK und seiner Steuereinrichtungen zur Erzeugung von Adreßraumidentifizierern (STO ID) in den Ausführungsbeispielen,
Fig.6 das Format jedes Paares zugeordneter DLAT-Einträge, zu denen mit einer einzigen DLAT-Hash-Adresse zugegriffen werden kann,
F i g. 7 Einzelheiten eines Übersetzers, der in den Ausführungsbeispielen benutzt wird,
F i g. 8 Einzelheiten der DLAT- Lesesteuerungen,
F i g. 9 die DLAT-Ladesteuerung im einzelnen.
F i g. 1 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform. Ein Block »STOK und Steuerungen« 5 umfaßt ein Steuerregister (CR 1), in dem die aktive Segmenttabelle-Anfangsadresse (STO) enthalten ist, die zu diesem Zeitpunkt von den virtuellen Adressen des Prozessors benutzt wird; diese virtuellen Adressen stehen im logischen Adreßregister (LAR) 61, das somit die aktuelle Zugriffsadresse angibt. Die Steuerungen 5 enthalten außerdem einen Stapel für SegmenttabeHen-Anfangsadressen (STOK) 50, in den sequentiell jede aktive STO eingelesen wird, sobald sie in CR 1 geladen wird. Die durch die STOs in STOK dargestellten Adreßräume sind die einzigen Adreßräume, die zu diesem Zeitpunkt durch Einträge im DLAT 6 dargestellt werden. Jeder Eintrag im STOK besitzt einen indexwert von 2 bis 30. Diese !ndexwerte werden als STO-Identifizierer (STO ID) verwendet. Auf die gegenwärtig aktive STO im STOK wird durch den STO ID in einem Zeigerregister (ZGR REG) 51 hingewiesen. Der im Zeigerregister 51 enthaltene STO ID weist somit auf den STOK-Eintrag mit derselben STO, wie die im CR 1 enthaltene. Es werden nur die STO ID 2 bis 30 verwendet, da bei einer Indexgröße von 5 Bits, entsprechend den Werten O bis 31, die Werte 0,1 und 31 in den DLAT zur Anzeige der Spezialbedingungen »ungültige STO«, »keine dynamische Adreßübersetzung« bzw. »gemeinsamer Speicherbereich« verwendet werden. Der letztgenannte Wert wird in der vorliegenden Erfindung benutzt, um im DLAT anzuzeigen, daß damit eine Seite adressiert wird, zu der von allen Adreßräumen zugegriffen werden kann. Ein größerer STOK mit mehr STO IDs kann beispielsweise zur Verfügung gestellt werden, wenn ein STO ID mit 6 Bits gewählt wird, mit dem 61 STOK-Einträge (2-3) identifiziert werden können.
Schaltkreis 54 in Fig. 1 zeigt einen Überlauf des STOKs 50 an, wenn alle Einträge 2 bis 30 belegt sind und eine weitere STO in STOK eingeschrieben werden soll. Schaltkreis 54 erzeugt das Überlaufsignal, wenn STO ID 30 im Zeigerregister 51 steht und beim Durchsuchen der STOK-Einträge 2 bis 30 keine nächste aktive STO in CR 1 gefunden wird. Das Überlaufsignal des Schaltkreises 54 wird an die DLAT-Ladekreise 9 gegeben, um alle DLAT-Einträge zurückzusetzen.
Die Struktur des DLAT 6 entspricht derjenigen des IBM Systems/370 M168 CPU, mit der Ausnahme, daß hier mehr Einträge vorgesehen sind. DLAT 6 in F i g. 1 ist ein Assoziativspeicher mit zwei Sätzen, in dessen einer Hälfte die DLAT-Tabelle O mit 64 Einträgen enthalten ist, die mit OO bis 063 bezeichnet werden, und dessen andere Hälfte die DLAT-Tabelle 1 enthält, mit ebenfalls 64 Einträgen und den Bezeichnungen 10 bis 163. Ein DRR-Register 6B enthält die Adresse des gegenwärtig ausgewählten Paares von DLAT-Einträgen. Die Adresse des DRR-Registers 6B wird durch den Hash-Schaltkreis 6A erzeugt, in dem die Bits 9 bis 20 der virtuellen Adresse in LAP 61 zur Erzeugung der Hash-Adresse verarbeitet werden.
Fig.6 zeigt das Format des Paares ausgewählter Einträge, die über das DRR-Register adressiert werden. Danach enthält jeder Eintrag einen STO ID, der sich entweder aus dem Zeigerregister 51 oder aus einem Bit C für den Berechtigungsindikator »gemeinsamer Speicherbereich« im Segmenttabellen-Eintrag (STE)
ableitet, der für die Übersetzung des DLAT-Eintrags herangezogen wird. Mit Ausnahme des zusätzlichen Bits C für den Berechtigungsindikator »gemeinsamer Speicherbereich« im STE entspricht die Form aller Einträge in Segmenttabellen, Seitentabellen, CR O und CR 1 den Systemsteuerprogrammen MVS (Mehrfachspeichersysteme) im Betriebssystem IBM 0S/VS2 Release 3.7 für ein Datenverarbeitungssystem vom Typ IBM S/370 M168.
Die Übersetzung der virtuellen Adresse im LAR 61
erfolgt üblicherweise durch einen Übersetzer 7, in dem die Komponente SX der Adresse zum gewünschten STE-Eintrag führt indem sie zur STO-Adresse der Segmenttabelle in F i g. 1 hinzugezählt wird. Die Anfangsadresse für die Seitentabelle (PTO) befindet sich in dem ausgewählten STE und dient dem Übersetzer zur Adressierung des Seitentabelleneintrags (PTE), der in F i g. 1 mit PTE-g bezeichnet ist PTE-g wird in der Seitentabeiie an der Steile FTO+ PX adressiert. Die reelle oder absolute Adresse der gewünschten Seite wird im Feld PFRA des ausgewählten PTE gefunden und dann vom Übersetzer 7 an die Ladesteuerung 9 gegeben und von dort in das Feld (RA) für die absolute Adresse im ausgewählten DLAT gesetzt ^^
F i g. 4 zeigt das neuartige STE-Format mit dem Bit C (Berechtigungsindikator »gemeinsamer Speicherbereich«) in Bitposition 30; dieses Format wird in der Segmenttabelle von Fig. 1 verwendet Fig.3 zeigt das PTE-Format das in der Seitentabelle in Fig. 1 Verwendung findet
Wenn Bit C im STE-Format 1 gesetzt wird, zeigt der Segmenttabelleneintrag damit an, daß es sich um ein Segment aus einem gemeinsamen Speicherbereich
handelt; dieses umfaßt alle Seiten in der Seitentabelle, die mit Hilfe der PTO-Adresse innerhalb dieses STE adressierbar ist. Steht Bit C auf 0, so wird durch STE ein privates Segment definiert, d. h. es darf nur 'von dem Adreßraum adressiert werden, der von dem STO definiert ist, mit dem die betreffende Segmenttabelle adressiert wird.
In Fig.6 enthält das Feld für die virtuelle Adresse (VA) im ausgewählten DLAT-Eintrag auch die Bits 8 bis 14 aus der virtuellen Adresse in LAR 61, um diese virtuelle Seitenadresse im DLAT von allen anderen virtuellen Seitenadressen in anderen DLAT-Einträgen zu unterscheiden, in denen die Hash-Adresse immer ein Teil der unterscheidenden Merkmale für die im DLAT enthaltenen virtuellen Adressen ist. Die Felder »gerader Schlüssel« und »ungerader Schlüssel« in den DLAT-Einträgen sind Speicherschutzschlüssel für die erste Hälfte und zweite Hälfte der Seite, also die ersten 2K Bytes und die zweiten 2K Bytes der Seite, wenn diese insgesamt 4K Bytes groß ist Die Vorrichtungen zum Laden der Schlüsselfelder in DLAT 6 gehört nicht zum Gegenstand dieser Erfindung; im Stand der Technik sind sie beispielsweise in der Zentraleinheit IBM S/370 M168 CPU enthalten.
Ein DLAT-Laden erfolgt immer, wenn der Prozessor eine Adresse in LAR 61 gibt und die Lesesteuerungen feststellen, daß kein DLAT-Eintrag die von der Adresse in LAR 61 geforderte Seite adressiert Das Fehlen eines derartigen DLAT-Eintrags wird den DLAT Lesesteuerungen 8 in F i g. 1 über ein Signal »DLAT-Ausnahme« auf Leitung 87A zum Übersetzer 7 mitgeteilt Die DLAT-Lesesteuerungen 8 vergleichen gleichzeitig alle in Frage kommenden Felder jedes Paares ausgewählter DLAT-Einträge, die durch die Hash-Adresse im Register DRR adressiert wurden, mit entsprechenden Feldern, zu denen die Bits 8 bis 14 der virtuellen Adresse in LAR 61 gehören, der STOID aus dem Zeigerregister 51 und das Schlüsselfeld aus dem Programmstatuswort (PSW). Wenn sich für einen der beiden DLAT-Einträge 0 bzw. 1, die gleichzeitig in DLAT-Lesesteuerungen 8 verglichen werden, Übereinstimmung ergibt, wählen die Lesesteuerungen nur den DLAT-Eintrag aus, in dem alle Felder übereinstimmen. Der ausgewählte DLAT-Eintrag veranlaßt dann die Steuerungen 8, eine Seitenrahmenadresse (RA) als Signal auf Leitung 89Λ an die Speicherzugriffssteuerung 12 abzugeben, um den Zugriff zu einem oder mehreren Bytes, beginnend mit der RA-Adresse, einzuleiten, die in dem ausgewählten DLAT-Eintrag gefunden wurde; diese wird dabei mit dem Displacement (D) aus dem LAR 61 verkettet
Wenn die DLAT-Lesesteuerungen 8 einen Zugriffsindikator »gemeinsamer Speicherbereich« mit Wert 31 im Feld STO ID des ausgewählten DLAT-Eintrags finden, ignorieren die Lesesteuerungen 8 Vergleichsergebnisse »ungleich«, da der Wert 31 des STO ID für alle STO ID-Werte das Vergleichsergebnis »gleich« erzwingt Damit wird ein Zugriff der virtuellen Adresse LAR 61 erlaubt, und zwar unabhängig davon, welcher Adreßraum die Zugriffsanforderung stellt (entsprechend dem Inhalt des Zeigerregisters 51).
Das Feld STO ID wird also mit einem Wert geladen, der angibt, ob dieser DLAT-Eintrag nur von dem Adreßraum benutzt werden kann, durch den der Eintrag geladen wurde, oder aber ob von allen Adreßräumen, unabhängig davon, welcher das Laden bewerkstelligt hat Nach dieser allgemeinen Beschreibung der bevorzugten Ausführungsform werden deren einzelne Komponenten näher beschrieben.
8 STOK und Steuerungen 5
Fig.5 zeigt eine bevorzugte Ausführungsform für den Stapel STOK und die zugehörigen Steuerungen 5. Die Register CR O und CR 1 enthalten die in F i g. 3 dargestellten Formate, in denen Bits 8 bis 25 von CR 1 die aktive STO-Adresse darstellen, die Bits 8 und 9 in CR O die Seitengröße (z. B. 2K Bytes oder 4K Bytes) angeben und die Bits 10 und 11 die Segmentgröße, z. B.
ίο 64K Bytes oder lOOOK Bytes. Diese Bits des Registers CR O werden beim Laden eines Eintrages in STOK 50 ebenfalls eingeschrieben.
Die Steuerungen stellen sicher, daß im STOK 50 ein STO-Wert nur einmal enthalten ist. Gültige STO-Werte im STOK 50 sind in den Einträgen 2 bis x-1 enthalten, wobei χ durch den Inhalt eines FIFO-Registers 52 bestimmt ist Alle STOK-Einträge aus dem Index im
' FIFO-Register 52 bis zum Index 30 werden als ungültig angesehen.
Wenn ein neuer STO-Wert in CR 1 geladen wird, erfolgt eine Suche des STOK 50, um festzustellen, ob diese STO gegenwärtig im STOK 50 gespeichert ist; wenn ja, wird der Index dieses Eintrags in Zeigerregister 51 eingeschrieben, um auf den Leitungen 51C den aktiven STO ID anzuzeigen. Ist im STOK kein Eintrag für die aktive STO im CR 1 enthalten, wird die STO im CR 1 mit Hilfe des Index im FIFO-Register 52 in den Stapel STOK geladen und das FIFO-Register auf den nächstfolgenden STOKID-Wert gesetzt
Der STOK wird immer dann durchsucht wenn ein neuer STO-Wert in CR 1 eingelesen wird. Zur Suche wird der Inhalt des Zeigerregistes 51 auf STO ID 2 gesetzt entsprechend dem ersten Eintrag im STOK. Danach wird der Inhalt des Eintrags 2 ausgelesen und mit der gegenwärtigen, in CR 1 gespeicherten STO verglichen. Bei Übereinstimmung entspricht der STO-Eintrag 2 der neuen STO und somit STO ID 2. Die Übereinstimmung wird durch den Vergleichsschaltkreis CMPR 56 auf Leitung 56Λ an die Torschaltung 51B gemeldet die ihrerseits den Inhalt des Zeigerregisters 51 als aktiven STOID auf die Leitungen 51 Cgibt
Bei fehlender Übereinstimmung ergibt der Vergleichsschaltkreis 56 ein entsprechendes Signal auf Leitung 565, der Inhalt des Zeigerregisters 51 wird auf den nächsten STO ID-Wert gesetzt tmd der entsprechende nächste Eintrag im STOK 50 im Vergleichsschaltkreis 56 mit der STO in CR 1 verglichen. Diese Schrittfolge wird so lange forgesetzt, bis der Vergleich Übereinstimmung ergibt oder bis die STO in CR 1 in einen Eintrag geladen wird, der durch FIFO 52 bestimmt wird.
Die Durchsuchung des STOK endet wenn der Vergleichsschaltkreis CMPR 53 feststellt, daß der Inhalt des Zeigerregisters 51 gleich dem Wert des FIFO-Regi sters 52 ist In diesem Fall ist die aktive STO in CR 1 in keinem Eintrag von STOK 50 enthalten und sie wird deshalb in den Stapel STOK an der Stelle eingeschrieben, die gegenwärtig im FIFO-Register 52 bezeichnet ist; dieses Register ist dann aber gleich dem
Zeigerregister 51. Die Anzeige-»Übereinstimmung« des Vergleichskreises 53 wird auch an das ODER-Glied 58 gegeben, das seinerseits ein Signal »Schreibe STO« an die Eingangstorschaltungen von STOK 50 liefert, die die aktiven STO-Werte aus CR O und 1 in den durch FIFO bezeichneten Eintrag einschreiben.
Das Signal »Übereinstimmung« des Vergleichskreises 53 setzt weiterhin das FIFO-Register 52 auf den nächstfolgenden STO ID-Wert
Schließlich kann es vorkommen, daß im STOK 50 alle Einträge 2 bis 30 mit STOs belegt sind. Wenn dann ein neuer STO-Wert in CR 1 geladen wird und bei einer Suche in der oben beschriebenen Art kein gleicher STO-Wert in den STOK-Einträgen 2 bis 30 vorhanden ist, wird das Zeigerregister Sl schließlich auf den Wert 31 gesetzt; Schaltkreis 54 stellt dann fest, daß dieser Wert größer als 30 ist und gibt ein Ausgangssignal »Lösche DLAT« auf Leitung 54,4, wodurch alle DLAT-Einträge ungültig gesetzt werden. Das Ausgangssignal des Schaltkreises 54 dient außerdem zum Zurücksetzen des Zeigerregisters 51 auf den Wert 2, um den ersten Eintrag in STOK 50 zu adressieren. Außerdem wird das Ausgangssignal des Schaltkreises 54 auf einen Verzögerungskreis 57 gegeben, dessen Verzögerung gerade so groß ist, daß sie der zum Löschen aller DLAT-Einträge benötigten Zeit entspricht; das verzögerte Signal läuft dann über ein ODER-Glied 58 und veranlaßt das Einschreiben des neuen STO-Wertes in den STOK-Eintrag 2.
Übersetzer 7
Mit Ausnahme der Verriegelungsschaltung 67, in der der Wert des Berechtigungsindikators »gemeinsamer Speicherbereich« gespeichert wird, und der Eingangstorschaltungen entspricht der in F i g. 7 dargestellte Übersetzer dem in der Zentraleinheit IBM S/370 M168 CPU verwendeten. Die Eingänge des Übersetzers umfassen das logische Adreßregister (LAR) 61, das ebenfalls in F i g. 1 dargestellt ist und ein Übersetzereingangsregister (TIR) 62. In LAR 61 werden die virtuellen Adressen aus der Instruktionseinheit des Prozessors gegeben, in Register TIR 62 werden einzeln die STOs aus Register CR 1 sowie die STE und PTE aus dem Hauptspeicher eingelesen. Die Stellung des Bits C »gemeinsamer Speicherbereich« in einem STE wird durch ein Ausgangstor 62C bestimmt, das die Bitposition 30 im TIR 62 abfühlL Das Ausgangstor 62Cist mit dem Eingang zum Setzen der Verriegelungsschaltung COM STG 67 für die Speicherung des Berechtigungsindikators »gemeinsamer Speicherbereich« verbunden und setzt diese Schaltung, wenn Bit C angesetzt ist; im anderen Fall wird die Verriegelungsschaltung zurückgesetzt Die Ausgangsleitung 67Λ zeigt die Stellung der Verriegelungsschaltung der DLAT Ladesteuerung 9 an, die den Wert 31 für den Zugriffsindikator »gemeinsamer Speicherbereich« (sog. COM-Signal) in das STO ID eines gegenwärtig ausgewählten DLAT-Eintrags setzt, wenn Bit C »gemeinsamer Speicherbereich« angesetzt ist. Ist Bit C ausgesetzt, wird die Verriegelungsschaltung 67 zurückgesetzt und die Steuerungen 9 laden den STO ID aus dem Zeigerregister 51 in das ausgewählte DLAT.
Der Ausgang des Übersetzers 7 liefert die Adressen STO+ SX bzw. PTO+PX, die zum Auslesen der STE bzw. PTE erforderlich sind Der Wert PFRA+D wird nicht vom Übersetzer erzeugt, sondern entsteht durch Verkettung der.reellen Adresse RA aus dem ausgewählten DLAT und dem D-Wert aus dem LAR 61; diese Verkettung erfolgt direkt in die Speicherzugriffssteuerung 12, um somit die Byteadressen in einer Seite schneller zu erzeugen, die zu diesem Zeitpunkt über einen DLAT-Eintrag adressiert wird.
._ Ein Taktgeber 68 steuert den Zeitablauf im Übersetzer. Der Taktgeber wird durch ein Signal »DLAT-Ausnahme« auf Leitung 67j4 durch die DLAT-Lesesteuerungen 8 angestoßen. Wenn kein DLAT-Eintrag gefunden wird, beendet der Taktgeber seinen Betrieb, indem er ein Signal »DLAT Laden« auf Leitung 68Λ erzeugt, mit dem angezeigt wird, daß ein PFRA aus dem PTE zum Einschreiben in den ausgewählten DLAT-Eintrag zur Verfügung steht.
DLAT-Ladesteuerung 9
Die DLAT-Ladesteuerung in Fig.9 umfaßt eine Vielzahl von Torschaltungen, mit denen die verschiedenen Felder im ausgewählten DLAT geladen werden. Bekannte (und nicht dargestellte) LRU (Least recently
ίο used)-Schaltkreise wählen den zu ladenden DLAT-Eintrag aus. Der Schaltkreis zum Laden der Schlüsselfelder »ungerade« und »gerade« ist nicht dargestellt, da er dem im System IBM S/370 M168 CPU entspricht. In Fig.9 besteht die Erzeugungsschaltung COM ID GEN 91 für den Zugriffsindikator »gemeinsamer Speicherbereich« aus einem UND-Glied, dem auf Leitung 67Λ ein Signal COM STG »gemeinsamer Speicherbereich« und auf Leitung 68Λ ein Signal »DLAT Laden« zugeführt werden. Die Erzeugungsschaltung 91 erzeugt dann auf fünf Leitungen Bits mit Wert 1, um den Binärwert 31 darzustellen. Diese Leitungen sind über ODER-Glied 96 an das STO ID-FeId im ausgewählten DLAT-Eintrag geführt.
Leitung 67A gibt das Signal »gemeinsamer Speicherbereich« der Verriegelungsschaltung 67 auch an einen Inverter 97, dessen Ausgangssignal eine Torschaltung STOID 92 sperrt, um zu verhindern, daß der aktive STO ID aus dem Zeigerregister über Leitung 51C an das ODER-Glied 96 gelangt Wenn Bit C angesetzt ist, kann somit das Ausgangssignal des ODER-Gliedes 96 nur der Wert 31 sein, mit dem der Zugriffsindikator »gemeinsamer Speicherbereich« für das ausgewählte DLAT angezeigt wird.
Wenn das Bit für »gemeinsamer Speicherbereich« auf Null steht, erzeugt die Schaltung 91 kein Ausgangssignal und der Inverter 97 aktiviert die Torschaltung 92; in diesem Fall gelangt der STO ID auf den Leitungen 51C über das ODER-Glied 96 in das Fünf-Bit-Feld STO ID im ausgewählten DLAT-Eintrag.
Die Torschaltung VA 93 leitet die LAR-Bits 8 bis 14 auf Leitung 61Λ in das Feld VA des ausgewählten DLAT und ermöglicht so die Identifizierung der virtuellen Adresse VA. In ähnlicher Weise leitet Torschaltung RA 94 den realen Adreßteil PFRA auf Leitung 66ß von F i g. 7 auf das RA-FeId im ausgewählten DLAT.
DLAT-Lesesteuerung 8
Die DLAT-Lesesteuerung in Fig.8 faßt zwei identische DLAT-Lesesteuerschaltungen 80 und 86, denen das Paar ausgewählter DLAT-Einträge in den DLAT-Tabellen 0 und 1 zugeführt wird. Zu jedem Schaltkreis 80 und 86 gehören eine Mehrzahl von Vergleichsschaltkreisen. Der Vergleichsschaltkreis 81 in Schaltkreis 80 beispielsweise vergleicht den STOID des ausgewählten DLAT mit dem aktiven STO ID aus dem Zeigerregister 5t, um festzustellen, ob die DLAT-Adresse zum anfordernden Adreßraum gehört Bei Übereinstimmung wird auf Ausgangsleitung 8iB ein Signal an ODER-Glied 81Λ gegeben. Im anderen Fall wird auf Leitung 81 ß kein Signal erzeugt und so angezeigt, daß die DLAT-Adresse nicht zum anfordernden Adreßraum gehört Nach der Lehre der vorliegenden Erfindung wird jedoch ein UND-Glied 82 als Detektorschaltung für gemeinsame Speicherbereiche eingebaut, mit dem festgestellt wird, ob der STOID im ausgewählten DLAT der Zugriffsindikator 31 für gemeinsamen Speicherbereich ist Beim Schaltkreis 82 handelt es sich um ein
UND-Glied, das erfordert, daß alle fünf STO ID Eingangssignale auf 1 stehen (entsprechend Binär 31), wenn ein Ausgangssignal an ODER-Glied SiA gegeben werden soll, welches die Bedingung »ungleich« in Schaltkreis 81 überbrückt. Das ODER-Glied 81A liefert somit ein aktives Ausgangssignal, wenn entweder die empfangenen STO IDs gleich sind oder wenn es sich beim DLAT-Eintrag um den Zugriffsindikator »gemeinsamer Speicherbereich« handelt.
Ein Vergleichsschaltkreis 83 für virtuelle Adressen vergleicht die VA-Felder im ausgewählten DLAT mit oen Bitpositionen 8 bis 14 im LAR 61. Bei Übereinstimmung übersetzt DLAT diese virtuelle Adresse, vorausgesetzt, daß ODER-Glied 81A ein Adreßraumsignal abgibt, mit dem der Verknüpfungsschaltkreis 84 für DLAT O aktiviert wird, der seinerseits ein Ausgangssignal an Torschaltung 85.A abgibt, die die absolute Adresse (RA) aus dem ausgewählten DLAT über ein RA-Register 85 empfängt. Die reelle Adresse gelangt dann aus dem RA-Register in eine RA-Auswahltorschaltung 89. Die Ausgangssignale der Torschaltungen 85A und der Ausgang 8OA des Schaltkreises 84 aktivieren auch eine Torschaltung 84A, um den geraden oder ungeraden Schlüssel aus dem DLAT-Eintrag als Eingang für die Schaltkreise zur Verarbeitung der Schlüssel 88 auszuwählen.
Die Lesesteuerungen 86 für DLAT 1 umfassen identische Schaltkreise, wie die eben beschriebenen Steuerungen 80 für DLAT 0. Die DLAT-Lesesteuerungen 80 und 86 (die gleichzeitig die Ausgänge der beiden DLATs des durch die Hash-Adresse ausgewählten Paares empfangen) treffen die Entscheidung, welcher DLAT-Eintrag des Paares (wenn überhaupt) der gegenwärtigen Adreßanforderung in LAR 61 und dem Zeigerregister 51 entspricht Nur eine der Leitungen 8OA oder 86A kann zu einem gegebenen Zeitpunkt aktiv sein, da bei einem Paar von DLAT-Einträgen jeweils nur einer der beiden Schaltkreise ein Vergleichsergebnis »Übereinstimmung« aufweisen kann, das zur Aktivierung der jeweiligen Leitung erforderlich ist In ähnlicher Weise kann auch nur einer der Schaltkreise 80 oder 86 ein Ausgangssignal über die Torschaltung 85A an RA geben. Die reelle Adresse RA gelangt als Eingang zu einer RA-Auswahltorschaltung 89, die sie jedoch nur dann verlassen kann, wenn der Schlüssel im ausgewählten DLAT-Eintrag gleich dem PSW-Schlüssel ist, der von den Schlüsselschaltkreisen 88 empfangen wird. Bei Übereinstimmung des PSW-Schlüssels und des DLAT-Schlüssels wird auf Leitung 88A ein Signal erzeugt, mit dem die RA-Auswahltorschaltung 89 auf Durchgang geschaltet wird und die reale Adresse RA an die Speicherzugriffssteuerungen weitergibt, die ihrerseits den Zugriff zum Hauptspeicher bewerkstelligen. Sind die Schlüssel beim Vergleich in den Schaltkreisen 88 jedoch verschieden, so zeigt ein Signai auf Leitung SSB eine Speicherschutzverletzung an; dieses Signal wird an die Unterbrechungsschaltkreise des Prozessors weitergegeben und Torschaltung 89 verhindert den Zugriff.
ODER-Glied 87 besitzt ein komplementäres Ausgangssignal das anzeigt, daß weder Eingang 8OA noch 86A die Auswahl eines DLAT-Eintrages 0 oder 1 des Paares anzeigt Das Signal auf der Ausgangsleitung 87.5 erzeugt ein Signal »DLAT-Ausnahme«, mit dem angezeigt wird, daß die virtuelle Adresse in LAR 61 keinem gegenwärtigen DLAT-Eintrag entspricht und somit der Übersetzer die virtuelle Adresse in eine absolute Seitenadresse für eine Seite fibersetzen muß, die möglicherweise im Hauptspeicher enthalten ist.
Befindet sich die Seite nicht im Hauptspeicher, so muß eine Eingabe/Ausgabe-Operation erfolgen, um die Seite von einem Eingabe/Ausgabe-Gerät in den Hauptspeicher zu überführen, bevor der Übersetzer einen DLAT-Eintrag mit der übersetzten Adresse erstellen kann.
Ausführungsform mit gemeinsamer Seite In der bisher beschriebenen Ausführungsform wurde
ίο ein Berechtigungsindikator für ein gemeinsames Segment in diejenigen STE eingebaut, die allen Adreßräumen gemeinsam angehören, d. h. allen Segmenttabellen; alle Seiten in einem gemeinsamen Segment (d. h. die Seitentabellen) sind implizit in dem gemeinsamen Segment enthalten, ohne daß ein besonderer Berechtigungsindikator in den Seitentabellen erforderlich wäre. Ein einzelnes Bit C für ein gemeinsames Segment stellte somit die Vielzahl von Seiten in diesem Segment allen Adreßräumen zur Verfugung.
Die Ausführungsform mit gemeinsamen Seiten bezieht den gemeinsamen Speicherbereich auf das Niveau der Seite und nicht auf das Niveau der Segmente. In beiden Ausführungsformen bezieht sich aber der Eintrag für den Zugriffsindikator »gemeinsa mer Speicherbereich« im DLAT nur auf die Seite, die durch den DLAT-Eintrag gezeigt wird.
Die zweite Ausführungsform ermöglicht es somit, einzelne Seiten eines Segments als Seiten mit gemeinsamem Zugriff für alle Adreßräume zu definie ren, während andere Seiten im gleichen Segment auf einen einzelnen Adreßraum beschränkt werden können. Der bestimmende Faktor, welche Seiten von anderen Adreßräumen Zugriff erlauben, wird dadurch gesteuert, daß ein Bit C für den gemeinsamen Speicherbereich in die Seitentabellen eintrage (PTE) und nicht in die Segmenttabelleneinträge (STE) gesetzt wird. Dies ist in Fig.2 dargestellt, wo Bit C für den gemeinsamen Speicherbereich in einem Eintrag PTE-g in der Seitentabelle : dargestellt ist. Die in der Seitentabelle i dargestellten Seiten können somit selektiv entweder einem oder allen Adreßräumen zur Verfugung gestellt werden, indem das Bit C im Feld des Berechtigungsindikators »gemeinsamer Speicherbereich« der PTE gesetzt oder nicht gesetzt wird; die STE können somit auch das in F i g. 3 gezeigte übliche Format besitzen. Der neue PTE-Eintrag in F i g. 2 ist in F i g. 4B dargestellt
Der einzige Unterschied auf Schaltungsebene zur Behandlung des PTE-Bits C in F i g. 2 (und nicht des STE-Bits in Fig. 1) zeigt sich in Fig. 7, in der die
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 F i g. 5, 6, 7, 8 und 9
erfahren keine Änderung. Der Wert 31 wird auch hier als Zugriffsindikator für den gemeinsamen Speicherbereich in DLAT benutzt, doch führt er hier automatisch zur Steuerung des gemeinsamen Zugriffs auf Seitenbasis und nicht auf Segmentbasis.
Es ist selbstverständlich, daß der im DLAT benutzte Zugriffsindikator für den gemeinsamen Speicherbereich nicht den Wert 31 aufzuweisen braucht, sondern jeden in allen DLATs eindeutigen Wert annehmen kann. Beispielsweise kann es sich auch um ein besonderes Anzeigebit in jedem DLAT handeln, das entsprechend dem Wert des Bits C im übersetzten STE oder PTE gesetzt wird.
Hierzu 6 Blatt Zeichnungen

Claims (7)

Patentansprüche:
1. Speichereinrichtung mit mehreren virtuellen Adreßräumen, denen jeweils Seiten- oder Seiten-,und Segment-Obersetzungstabellen zugeordnet sind und die von allen Adreßräumen gemeinsam benutzbare virtuelle Speicherbereiche gleicher virtueller Adressen enthalten, sowie mit mindestens einer Übersetzungsnebentabelle (DLAT), deren Einträge ein Feld zur Identifizierung des jeweiligen Adreßraums aufweisen, dadurch gekennzeichnet, daß Einrichtungen (91, 92, 96) einen Zugriffsindikator »gemeinsamer Speicherbereich« für gemeinsame Benutzbarkeit erzeugen und anstel-Ie des Adreßraum-Identifizierers in den DLAT-Eintrag setzen und daß Einrichtungen (81,82) bei jedem DLAT-Zugriff das Adreßraumfeld (STO ID; F i g. 6) auf Vorhandensein des Zugriffsindikators prüfen, um im Fall eines gemeinsam benutzbaren Speicherbereichs bei übereinstimmender virtueller Adresse (im Vergleichsschaltkrejs 83, Fig.8) unabhängig vom Adreßraumidentifizierer des gerade aktiven Adreßraums die reale Adresse (RA) aus dem betreffenden DLAT-Eintrag auszugeben.
2. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß gemeinsam benutzbare virtuelle Segmente oder gemeinsam benutzbare virtuelle Seiten durch einen Berechtigungsindikator (Bit 30,
F i g. 4a bzw. Bit 22, F i g. 4b) in den Segment- bzw. Seitentabelleneinträgen angezeigt werden.
3. Speichereinrichtung nach Anspruch 2, dadurch gekennzeichnet, daß in einem Übersetzer für virtuelle Adressen (7, F i g. 1; F i g. 7) Abfühlschaltungen (23 bzw. 30) für den Berechtigungsindikator eines Segments bzw. einer Seite enthalten sind und daß abhängig von der Stellung des Berechtigungindikators eine Verriegelungsschaltung (67) zur Anzeige eines gemeinsam benutzbaren Speicherbereichs gesetzt wird.
4. Speichereinrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Zugriffsindikator eines DLAT-Eintrags ausschließlich aus binären Einsen besteht.
5. Speichereinrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Prüfung auf Vorliegen des Zugriffsindikators durch ein UND-Glied (82, F i g. 8) erfolgt, das parallel zum Vergleichsschaltkreis (81) für Adreßraumidentifizierer geschaltet ist.
6. Speichereinrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Adreßraumidentifizierer aus dem Index (ID) eines Ursprungsadreßeintrags für Übersetzungstabellen (STO) in einem Stapelspeicher (STOK; F i g. 5) besteht.
7. Speichereinrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Übersetzungsnebentabelle (DLAT) im Hash-Verfahren adressiert wird und daß nur Bits der virtuellen Adresse zur Bildung der Hash-Adresse verwendet werden.
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 DE2807476A1 (de) 1978-09-28
DE2807476C2 true DE2807476C2 (de) 1982-08-12

Family

ID=25121431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2807476A Expired DE2807476C2 (de) 1977-03-24 1978-02-22 Speichereinrichtung mit mehreren virtuellen Adreßräumen

Country Status (8)

Country Link
US (1) US4136385A (de)
JP (1) JPS53118322A (de)
AT (1) AT378273B (de)
AU (1) AU514699B2 (de)
CA (1) CA1092719A (de)
DE (1) DE2807476C2 (de)
GB (1) GB1547746A (de)
IT (1) IT1112663B (de)

Families Citing this family (39)

* 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
DE3176632D1 (en) 1980-11-10 1988-03-03 Ibm Cache storage hierarchy for a multiprocessor system
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4523275A (en) * 1980-11-14 1985-06-11 Sperry Corporation Cache/disk subsystem with floating entry
JPS5853079A (ja) * 1981-09-25 1983-03-29 Fujitsu Ltd Stoスタツク制御方式
US4803655A (en) * 1981-12-04 1989-02-07 Unisys Corp. Data processing system employing a plurality of rapidly switchable pages for providing data transfer between modules
US4581702A (en) * 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4551797A (en) * 1983-08-31 1985-11-05 Amdahl Corporation Apparatus for reverse translation
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
US4663742A (en) * 1984-10-30 1987-05-05 International Business Machines Corporation Directory memory system having simultaneous write, compare and bypass capabilites
US4737909A (en) * 1985-04-01 1988-04-12 National Semiconductor Corp. Cache memory address apparatus
US4636990A (en) * 1985-05-31 1987-01-13 International Business Machines Corporation Three state select circuit for use in a data processing system or the like
US4758946A (en) * 1986-04-09 1988-07-19 Elxsi Page mapping system
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
JPS63231550A (ja) * 1987-03-19 1988-09-27 Hitachi Ltd 多重仮想空間制御方式
JPS63278145A (ja) * 1987-05-11 1988-11-15 Nec Corp パラメ−タ対応検査方式
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US4979098A (en) * 1988-02-10 1990-12-18 International Business Machines Corporation Multiple address space token designation, protection controls, designation translation and lookaside
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US5220669A (en) * 1988-02-10 1993-06-15 International Business Machines Corporation Linkage mechanism for program isolation
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US5404476A (en) * 1989-02-10 1995-04-04 Nec Corporation Multiprocessing system having a single translation lookaside buffer with reduced processor overhead
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
US5341485A (en) * 1991-05-07 1994-08-23 International Business Machines Corporation Multiple virtual address translation per computer cycle
US5319761A (en) * 1991-08-12 1994-06-07 International Business Machines Corporation Directory look-aside table for a virtual storage system including means for minimizing synonym entries
CA2285096C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5754818A (en) * 1996-03-22 1998-05-19 Sun Microsystems, Inc. Architecture and method for sharing TLB entries through process IDS
US6560687B1 (en) * 2000-10-02 2003-05-06 International Business Machines Corporation Method of implementing a translation lookaside buffer with support for a real space control
US6560690B2 (en) * 2000-12-29 2003-05-06 Intel Corporation System and method for employing a global bit for page sharing in a linear-addressed cache
KR100459728B1 (ko) * 2002-10-22 2004-12-03 삼성전자주식회사 고속 변환 색인 버퍼
US7093100B2 (en) 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL6806735A (de) * 1968-05-11 1969-11-13
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
JPS532296B2 (de) * 1973-03-19 1978-01-26
JPS5315778B2 (de) * 1973-07-18 1978-05-27
FR130806A (de) * 1973-11-21
JPS5434577B2 (de) * 1974-06-28 1979-10-27
JPS52144929A (en) * 1976-05-28 1977-12-02 Fujitsu Ltd Multiplex virtual space processing data processing system
JPS52149444A (en) * 1976-06-08 1977-12-12 Fujitsu Ltd Multiplex virtual space processing data processing system

Also Published As

Publication number Publication date
GB1547746A (en) 1979-06-27
IT7820424A0 (it) 1978-02-21
ATA129278A (de) 1984-11-15
IT1112663B (it) 1986-01-20
AT378273B (de) 1985-07-10
AU514699B2 (en) 1981-02-19
JPS53118322A (en) 1978-10-16
DE2807476A1 (de) 1978-09-28
US4136385A (en) 1979-01-23
CA1092719A (en) 1980-12-30
AU3320978A (en) 1979-08-16

Similar Documents

Publication Publication Date Title
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2260353C2 (de) Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage
DE2241257C3 (de) Datenverarbeitende Anlage
DE3011552C2 (de)
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE3932675C2 (de)
DE3224034A1 (de) Mehrprozessorensystem
DE3338345C2 (de)
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE2716051A1 (de) Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden
DE2835989A1 (de) Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes
DE3502147C2 (de)
DE3833933A1 (de) Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE4123550A1 (de) Informationsverarbeitungssystem mit direktem speicherzugriff
DE3932695A1 (de) Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ
DE2717700C2 (de) Speicherzugriffsanordnung
CH495584A (de) Datenverarbeitungsanlage
DE2516050A1 (de) Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee