DE2725718C2 - Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen - Google Patents
Datenverarbeitungsanordnung zum Übersetzen von virtuellen AdressenInfo
- Publication number
- DE2725718C2 DE2725718C2 DE2725718A DE2725718A DE2725718C2 DE 2725718 C2 DE2725718 C2 DE 2725718C2 DE 2725718 A DE2725718 A DE 2725718A DE 2725718 A DE2725718 A DE 2725718A DE 2725718 C2 DE2725718 C2 DE 2725718C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- virtual
- register
- segment
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000012545 processing Methods 0.000 title claims description 16
- 230000015654 memory Effects 0.000 claims description 91
- 238000013519 translation Methods 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- VZSRBBMJRBPUNF-UHFFFAOYSA-N 2-(2,3-dihydro-1H-inden-2-ylamino)-N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]pyrimidine-5-carboxamide Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C(=O)NCCC(N1CC2=C(CC1)NN=N2)=O VZSRBBMJRBPUNF-UHFFFAOYSA-N 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Description
50
In einem virtuellen Mehrfachspeichersystem darf in jedem Adreßraum nur ein Job (Anwenderprogramm)
stehen, und virtuelle Adreßräume werden in gleicher Zahl wie die Jobs bereitgestellt. Da jedem der Adreßräume
nur ein Job zugeordnet ist, und da die Adreßräume nicht miteinander interferieren, hat dieses System
den Vorteil, daß der Betrieb eines Jobs nicht durch den Betrieb eines anderen Jobs beeinträchtigt wird. Außerdem
hat dieses System den Vorteil, daß ein Anwachsen der Zahl der Adreßräume nicht durch die Architektur
der Hardware beschränkt wird. In der Regel enthalten
die Jobs gemeinsame Bereiche (Steuerprogramme, Steuertabellen zur Benutzung in den Steuerprogrammen,
Teilprogramme mit für die Jobs notwendigen Funktionen), die für jeden virtuellen Adreßraum vorgesehen
werden. Derartige Bereiche werden im folgenden als eemeinsame Bereiche bezeichnet.
Auch in einem derartigen virtuellen Mehrfachspeichersystem wird die Zuordnung zwischen der Adresse
des virtuellen Adreßraums und einer realen Adresse in
einem realen Hauptspeicher für jeden virtuellen Adreßraum wie im Falle einer einzigen virtuellen Adresse ausgeführt
Das Ergebnis dieser Zuordnung wird in einem Hochgeschwindigkeitsspeicher gespeichert, der als
Obersetzungsspeicher bezeichnet wird.
Die Zuordnung der virtuellen Adresse zui realen Adresse wird dadurch erreicht, daß der Obersetzungsspeicher
wieder aufgerufen wird Aber im gemeinsamen Bereich, der für jeden virtuellen Adreßraum, wie oben
erwähnt, bereitgestellt ist, bleibt die Zuordnung zwischen
der virtuellen und der realen Adresse dauernd -konstant, sogar im Fall verschiedener virtueller Adreßräume.
Daraus ergibt sich, daß der Ausnutzungsgrad des Obersetzungsspeichers vermindert wird, wenn_die Ergebnisse
verschiedener Zuordnungen in dem Obersetzungsspeicher für entsprechend verschiedene virtuelle
Adreßräume gespeichert werden.
Es ist bekannt, daß mehrere Programme simultan gemeinsame
invariante Teile eines Speicherraums benutzen können (Elektronische Rechenanlagen, 1974, Heft 6,
Seite 235).
Andererseits ist es bekannt, zum Verhüten einer Änderung eines Speicherinhalts einen Vergleicher vorzusehen,
der die Zone von Speicheradressen, die nicht geändert werden dürfen, mit einer von einem Kennteil
eines Befehlsworts bezeichneten Speicheradresse vergleicht (DE-AS 12 66 026).
Schließlich ist ein aus einem oder mehreren Bits bestehender Zusatz (Q-Zeichen) zu allen Worten bekannt,
der es gestattet, in einer Rechenanlage Worte von zwei oder mehreren Arten zu unterscheiden (Speiser, Digitale
Rechenanlagen, 1967, S. 273 und 400).
Die Erfindung geht aus von einem virtuellen Speicher, wie er in IBM-Nachrichten 1973, Bd. 22, Seiten 349 bis
352 offenbart ist und der anhand F i g. 3 der Zeichnung erläutert wird.
Die Aufgabe der Erfindung besteht darin, ein Datenverarbeitungssystem
zum Übersetzen von rituellen Adressen aus einer Mehrzahl virtueller Adreßräume (Jobs) in reale Adressen eines realen Hauptspeichers zu
schaffen, durch welches die Effizienz der Adressenübersetzung erhöht wird, wenn die den einzelnen Jobs zugeordneten
Segmente Bereiche aufweisen, die allen Segmenten (Programmen) gemeinsam sind. Gelöst wird
diese Aufgabe durch die Merkmale des Anspruchs.
Die Erfindung ergibt den Vorteil, daß von mehreren Programmen gemeinsam benutzte Adressen nur einmal
im Übersetzungsspeicher vorhanden sein müssen und dor Übersetzungsspeicher auf diese Weise einen geringeren
Umfang erhält.
Die Erfindung wird beispielhaft anhand der Zeichnung erläutert.
F i g. 1 ist eine schematische Darstellung mehrerer virtueller Adreßräume;
Fig. 2 ist eine schematische Darstellung einer Segmenttabelle
und einer Seitentabelle;
F i g, 3 ist eine schematische Darstellung der Übersetzung einer virtuellen Adresse in eine reale Adresse;
Fig.4 ist eine schematische Darstellung eines gemeinsamen
virtuellen Registers CVR der Erfindung;
Fig.5a bis 5h sind schematische Darstellungen der
Verbindung zwischen dem Inhalt, der durch das gemeinsame virtuelle Register der Fig.4 bestimmt wird, und
dem gemeinsamen Bereich eines virtuellen Adrcllraums;
Fig.6 ist ein Blockschaltbild einer Daienverarbeitungsanordnung
in einer Ausführungsform der Erfindung; die
F i g. 7a und 7b sind Blockschaltbilder für die Durchführung der Adressenübersetzung der Daten der Verarbeitungsanordnung
der F i g. 6, wobei die Darstellungen an den Positionen mit den gleichen Bezugszeichen ^aJt
(b). (c)und f<# verbunden sind.
In einem virtuellen Speichersystem kann während der Programmierung ein virtueller Raum nacheinander dazu
benutzt werden, Leistungsfähigkeitsbeschränkungen zu beseitigen, die einem Hauptspeicher auferlegt sind,
welcher in Praxis benutzt werden kann. Dies bedeutet,
daß die Größe des virtuellerr Speichers abhängig von der Architektur der Hardware ist Beispielsweise für
den Fall, daß 24 Bits zur Adressenbestimmung benutzt
werden können,224 = 16 777 216 Bytes 16 Megabytes.
Während der Programmausführung wird eine Adresse, die ohne Kenntnis der Größe eines realen Speichers
bestimmt worden ist d. h. eine virtuelle Adresse, übersetzt in eine reale Adresse, da es notwendig ist, in der
Praxis auf einen Pufferspeicher oder einen Hauptspeicher zuzugreifen.
Diese Übersetzung wird dynamisch durch eine dynamische Adressenübersetzungseinrichtung der Hardware
zur Zeit der Programmausführung ausgeführt
Im Falle eines mehrfachen virtuellen Speichersystems
können, da entsprechende Programme jeweils individuellen virtuellen Adreßräumen zugewiesen werden, identische
virtuelle Adressen in den jeweiligen virtuellen Adreßräumen existieren, und eine Vielzahl identischer
virtueller Adressen existiert im System als ein Ganzes.
In den F i g. 1 und 2 bezeichnen die Nummern 1-0 bis
1-n virtuelle Adreßräume. 2-0 bis 2-n bezeichnen Segmenttabellen.
3-00,3-01 3-10,3-11,.... 3-n 0,3-n/,
.., 4-0,4-1,.... 5-0,5-1,... bezeichnen Seitentabellen.
Wie in F i g. 1 dargestellt, ist jeweils ein Job einem virtuellen Adreßraum 1-0 bis 1-n zugeteilt Die Anzahl der
virtuellen Adreliräume ist im wesentlichen durch ein
Betriebssystem festgelegt. Zur Zeit ist es möglich, ungefähr 1500 Adreßräume zu handhaben. Die virtuellen
Adreßräume 1-0 bis 1-n haben jeweils zwei gemeinsame
Bereiche A und B und einen Bereich C, letzterer ist als
individueller Benutzerbereich USA bezeichnet. Der Bereich A (ein Syitembereich SYA) und de.· Bereich B (ein
gemeinsamer Bereich CMA) sind gemeinsam für die virtuellen Adreßräume 1-0 bis 1-/7 bereitgestellt.
Zur eindeutigen Zuordnung der Adressen der virtuellen Adreßräume zu den Speicherplätzen der realen
Adreßräume des Hauptspeichers dienen Segmenttabelle 2-0 bis 2-n und Seitentabellen 3-00, 3-01 3-10,
3-11 j-nfl, 3-nl 4-0, 4-1, .... 5-0, 5-1,
(Fig.2). Die Segmenttabellen 2-0 bis 2-n entsprechen
jeweils den individuellen virtuellen Adreßräumen 1-0 bis 1-n. Zur Identifizierung eines virtuellen Adreßraums
dient die Leitadresse der Segmenttabelle, die beispielsweise jeweils in einem Segment-Basis-Register (SBR)
gespeichert wird.
Die Verarbeitung einer virtuellen Adresse in eine reale Adresse kann wie folgt ausgeführt werden:
Mit dem Inhalt des Segment-Basis-Registers SBR, welches einem der Adreßräume, beispielsweise 1-1, zugeordnet
ist, und mit einem Teil der Bits im Register EAR der virtuellen Adresse wird auf die Adresse der
Segmenttabelle 2-1 (Fig.2) ein Zugriff ausgeführt. Mit
dieser Adresse der Segmemiabelle 2-1 und einem Teil der Bits des Registers EAR der virtuellen Adresse wird
auf die Adresse der Seitentabelle, beispielsweise 3-11, ein Zugriff ausgeführt Dann wird mit dieser Adresse
der Seitentabelle 3-11 und einem Teil der Bits im Register
EAR die reale Adresse bestimmt Das Ergebnis der Zuordnung der virtuellen Adresse zur realen Adresse,
die bestimmt wurde, wird in dem Übersetzungsspeicher TLB gespeichert Bei der nachfolgenden Verarbeitung
wird der Übersetzungsspeicher TLB zuerst wieder aufgefunden, um die Zuordnung der virtuellen Adresse zur
realen Adresse zu prüfen, und dann wird die reale Adresse bestimmt Für den Fall, daß die Zuordnung der
virtuellen zu den realen Adressen nicht in dem Speicher ZLB gespeichert worden ist, wird die reaie Adresse natürlich
durch Benutzung der Segmenttabelle 2 und der Seitentabellen 3,4 und 5 wiederum bestimmt, und dieses
Ergebnis wird in dem Speicher TLB gespeichert Da die Speicherkapazität des Speichers TLB begrenzt ist, wird
zu dieser Zeit ein Zuordnungsergebnis, welches nicht als letztes benutzt worden ist aus dem Speicher TLB entfernt
um dann die Speicherung eine«; neuen Zuordnungsergebnisses
zu ermöglichen.
F i g. 3 ist eine Darstellung, die im einzelnen das Verfahren
der obigen Adressenübersetzung zeigt
Wie oben erwähnt ist der virtuelle Adreßraun« in Einheiten von zwei Stufen geteilt dies sind Segment und Seite, und m Übereinstimmung mit der Art der Teilung wird die virtuelle Adresse ebenfalls in eine Segmentnummer SGN, eine Seitennummer PGN und eine Distanzadresse BYT ■ N innerhalb der Seite unterteilt Die Segmentnummer SGN zeigt an, weiches Segment von der virtuellen Adresse besetzt ist. Von 24 Bits der virtuellen Adresse EA werden die Bits 8 bis 15 benutzt, um in einem Segment von z. B. 64 K-Byte die Segmentnummer anzuzeigen. Die Seitennummer PGN zeigt an, welche Seite des Segments besetzt ist und wird von den Bits 16 bis 19 der virtuellen Adresse EA repräsentiert (Seitengröße beispielsweise 4 K-Byte). Die Distanzadresse BYT ■ N innerhalb der Seite zeigt an, welches Byte besetzt ist; es wird durch die Bits 20 bis 31 der virtuellen Adresse EA repräsentiert.
Wie oben erwähnt ist der virtuelle Adreßraun« in Einheiten von zwei Stufen geteilt dies sind Segment und Seite, und m Übereinstimmung mit der Art der Teilung wird die virtuelle Adresse ebenfalls in eine Segmentnummer SGN, eine Seitennummer PGN und eine Distanzadresse BYT ■ N innerhalb der Seite unterteilt Die Segmentnummer SGN zeigt an, weiches Segment von der virtuellen Adresse besetzt ist. Von 24 Bits der virtuellen Adresse EA werden die Bits 8 bis 15 benutzt, um in einem Segment von z. B. 64 K-Byte die Segmentnummer anzuzeigen. Die Seitennummer PGN zeigt an, welche Seite des Segments besetzt ist und wird von den Bits 16 bis 19 der virtuellen Adresse EA repräsentiert (Seitengröße beispielsweise 4 K-Byte). Die Distanzadresse BYT ■ N innerhalb der Seite zeigt an, welches Byte besetzt ist; es wird durch die Bits 20 bis 31 der virtuellen Adresse EA repräsentiert.
Für jedes Segment und jede Seite des virtuellen Adreßraums wird durch ein Betriebssystem eine Segmenttabelle
SGTund eine Seitentabelle PGrgebildet.
Jeder Eingang der Segmenttabelle SGT hat die Leitadresse (von beispielsweise 21 Bits) der Seitentabelle
PGT, die darin die reale Adresse jeder zum Segment gehörenden Seite und andere Information aufbewahrt.
Jeder Eingang der Seitentabelle PGThat eine Information
über die Anwesenheit oder Abwesenheit der
so Seite im realen Speicher und 12 Bits, die einen höheren
Stellenwert haben, von einer realen Seitenadresse (von beispielsweise 24 Bits).
Zuers* kann zur Bestimmung der Leitadresse der Segmenttabelle SGT, da 18 Bits mit höherem Stellenwert
der Leitadresse der Segmenttabelle in öen Bits 8 bis 25 eines Segment-Basis-Registers SBR nach F i g. 3
gespeichert sind, die Leitadresse der Segmenttabelle durch Addition von Nullen von 6 Bits zum geringeren
Stellenwert des Segment-Basis-Registers erhalten werden.
Andererseits wird, gestützt auf das Basis-Register, das
Index-Register und die Distanzadresse innerhalb der Seite (diese Distanzadresse wird in einem Programm
bestimmt) eine effektive virtuelle Adresse durch Hardware erhalten, und in είη virtuelles Adressenregister
EAR gesetzt. Diese virtuelle Adresse (24 Bits) kann als in Termen der Segmentnummer SGN (8 Bits), der Seitennummer
PGN (4 Bits! und der Distanzadresse
BYT- Λ/innerhalb der Seite (12 Bits) zusammengesetzt
betrachtet werden.
Dann wird die Segmentnummer SGN der virtuellen Adresse mit der Länge einer Segmenttabelle SGTADR
verglichen, die vom obengenannten Segment-Basis-Register SBR angezeigt wird. Falls die Länge der ersten
Adresse größer ist als die Länge der zweiten Adresse, existiert der Segmenttabelleneingang, der erhalten werden
soll, nicht in der Segmenttabelle SGT, so daß die Adresseniibersetzung gestoppt wird.
Die Leiladresse der Segmenttabelle, repräsentiert durch die Bits 8 bis 31 des Segment-Basis-Registers
SBR, und die Segmentnummer, repräsentiert durch die Bits 8 bis 15 des virtuellen Adressenregisters EAR, werden
in einem dynamischen Adressenübersetzungsaddierer DAT ADDIERER addiert; damit wird der gewünschte
Segmenttabelleneingang von der Segmenttabelle SGT erfaßt. In diesem Falle wird die Adressenübersetzung
unterbrochen, wenn ein ungültiges Bit im Eingang (z. B. ein Bit 31) »1« ist.
Da die Bits, beispielsweise 8 bis 28, des Segmenttabelleneingangs,
der so erfaßt worden ist, eine Anzeige für die Leitadresse der Seitentabelle sind, werden diese Bits
und die Seitennummer PGN, repräsentiert durch die Bits 16 bis 19 des virtuellen Adressenregisters EAR,
zusammen in einem Addierer ADDIERER addiert, und, gestützt auf das Ergebnis dieser Addition, wird ein gewünschter
Seitentabelleneingang von der Seitentabelle PGTerfaßt. In diesem Falle werden die Seitennummer
PGNund die Seitentabellenlänge PGTL, angezeigt vom
Segmenttabelleneingang, miteinander verglichen. Wenn die Seitennummer größer ist als die Seitentabellenlänge,
existiert der Seitentabelleneingang, der erhalten werden soll, nicht in der Seitentabelle PGT, so daß die Adressen-Übersetzung
gestoppt wird. Außerdem existiert der Inhalt der entsprechenden realen Seite nicht im realen
Speicher, wenn ein ungültiges Bit (beispielsweise ein Bit 12) im Seitentabelleneingang als »1« erfaßt wird, so daß
die Adressenübersetzung ebenfalls gestoppt wird.
Da die Bits 0 bis 11 im Seitentabelleneingang die 12
Bits mit höherem Stellenwert der realen Seite sind, werden sie zu den Bits 8 bis 19 eines realen Adressenregisters
RAR übertragen, und zur gleichen Zeit wird die seiteninterne Distanz BYT ■ N, repräsentiert durch die
Bits 20 bis 31 des virtuellen Adressenregisters EAR, zu den Bits 20 bis 31 des realen Adressenregisters RAR
übertragen, und als 12 Bits mit geringerem Stellenwert der realen Adresse benutzt.
Wie oben beschrieben wird in einer Datenverarbeitungsanordnung J.ie Zuordnung der virtuellen und realen
Adressen erreicht Wie aus Fig.2 zu ersehen ist,
werden die realen Adressen durch Benutzung der gemeinsamen Seitentabellen 4 und 5 erhalten, auch wenn
die gemeinsamen Bereiche A und ßin unterschiedlichen
virtuellen Adreßräumen 1-0 bis i-n und damit unterschiedlichen
Segmenttabellen 2 existieren. Dies bedeutet, daß den virtuellen Adressen der Bereiche A und B
gleiche reale Adressen entsprechen. Wenn die Ergebnisse der Zuordnung der virtuellen zu den realen Adressen,
die die gemeinsamen Bereiche A und B betreffen, in dem
Adressenübersetzungsspeicher TLB 7 gespeichert werden, ist es deshalb sehr kostspielig, wenn die Zuordnungsergebnisse
in dem Speicher TLB 7 für alie virtuellen Adreßräume gespeichert werden. Wenn die Ergebnisse
der Zuordnung der virtuellen zu den realen Adressen, d. h. daß die gleiche Adresse trotz verschiedener
virtueller Adreßräume erhalten wird, individuell in dem Speicher TLB 7 gespeichert werden, so bedeutet dies.
daß andere Zuordnungsergebnisse, die in der nachfolgenden
Verarbeitung benötigt werden können, aus dem Speicher TLB entfernt werden, so daß die Effektivität
der Nutzanwendung des Speichers TLB stark vermindert wird.
Um dies zu vermeiden, benutzt die vorliegende Erfindung
ein gemeinsames virtuelles Register CVR 6 (F i g. 4), das den Bereich in dem virtuellen Adreßraum 1
anzeigt, in dem die gemeinsamen Bereiche A und B
ίο liegen. In Fig.4 bezeichnet das Bezugszeichen HBA
eine obere Grenzadresse, die den Beginn des Bereichs A anzeigt, der sich nach F i g. 5a bis 5h bis zur maximalen
virtuellen Adresse (z. B. 16 MB) erstreckt. Ist das mit dem Bezugszeichen HV bezeichnete Bit eine logische
is »1«, so zeigt dies an, daß die durch das Feld HBA bestimmte
Adresse gültig ist. Das Bezugszeichen LBA bezeichnet eine untere Grenzadresse, die einen Bereich
entsprechend dem Bereich ß anzeigt, der sich von der Adresse »0« des virtuellen Adreßraums bis zu der durch
den Inhalt des oben genannten Feldes LBA angezeigten Adresse erstreckt. Ist das mit dem Bezugszeichen LV
bezeichnete Bit eine logische »1«, so zeigt es an. daß die vom Feld LBA angezeigte Adresse gültig ist.
Die gemeinsamen Bereiche A und ß auf dem virtuellen
Adreßraum können voneinandere abweichen, wie in den Fig.5a bis 5h gezeigt ist. Um die oben genannte
Information HV, HBA, L Vund LBA in das gemeinsame
virtuelle Register CVR 6 zu setzen, wird entsprechend den beispielsweise in den Fig. 5a bis 5h dargestellten
Betriebsweisen ein Ladebefehl für das gemeinsame virtuelle Register (im folgenden als LCVTMnstruktion bezeichnet)
ausgeführt.
Fig.6 zeigt das Blockschaltbild einer Ausführungsform
der Erfindung, die so ausgebildet ist. dan, gestützt auf den Inhalt, der in das gemeinsame virtuelle Register
gesetzt worden ist, die Ergebnisse der Zuordnung zwischen den virtuellen und realen Adressen, die den gemeinsamen
Bereichen A und B entsprechen, gemeinsam in den virtuellen Adreßräumen gespeichert werden. 8
bezeichnet einen Decoder für einen Zugriff auf eine vorbestimmte Adresse des Speichers 77.S. 9 bezeichnet
ein Adressenregister, in welches die virtuelle Adresse EA, die in eine reale Adresse RA übersetzt werden soll,
gesetzt wird, beispielsweise wenn eine zentrale Verarbeitungseinheit eine Verarbeitung ausführt. 10 bezeichnet
ein Adressenregister, in welches die reale Adresse RA gesetzt wird, die registriert werden muß. wenn das
Ergebnis der Zuordnung zwischen den virtuellen und realen Adressen in den Speicher TLB 7 geschrieben
so wird. 11 zeigt ein Register für eine einen vi: .aellen
Adreßraum identifizierende Information. In dieses Register wird eine Kennung ID gesetzt, die eine Anzeige des
virtuellen Adreßraums ist, dem das Zuordnungsergebnis zugeordnet ist, wenn das Zuordnungsergebnis in dem
Speicher TLB7 registriert und davon ausgelesen wird. 12 bezeichnet ein logisches Adressenhalteregister, in
dem zeitweise ein Teil des Inhalts des Registers 9 gehalten wird, wenn der Speicher TLB ausgelesen wird. 13
bezeichnet einen ersten Koinzidenz-Detektorkreis, der die Koinzidenz eines Teils der Bits der aus dem Speicher
TLS ausgeiesenen virtuellen Adresse EA mit dem Inhalt
des Haiteregisters prüft 14 bezeichnet einen zweiten Koinzidenz-Detektorkreis, der die Koinzidenz der Kennung
ID, die aus dem Speicher TLB 7 ausgelesen worden ist mit der Identifizierungsinformation, die in das
Register 11 gesetzt worden ist, prüft wenn die erstere Information aus dem Speicher TLB 7 ausgelesen wird. V
bezeichnet ein die Gültigkeit anzeigendes Bit, welches
anzeigt, daß das Ergebnis der Zuordnung zwischen den
virtuellen und den realen Adressen, die in dem Speicher TLB 7 registriert worden sind, gültig ist, wenn das die
Gültigkeit anzeigende Bit eine logische »1« ist. 15 bezeichnet
eine UND-Schaltung, die eine logische »1« lie- ο fcrt, wenn die reale Adresse RA, die der virtuellen
Adresse EA im virtuellen Adressenregister 9 entspricht,
in dem Reicher TLB 7 (TLB HIT) existiert. 16 bezeichnet einen Comparatorkreis, der prüft, ob bzw. ob nicht
die virtuelle Adresse EA, die in das virtuelle Adressenregistcr
9 gesetzt worden ist, den Adressen in den gemeinsamen Bereich A und B im gemeinsamen virtuellen Register
CVRe entspricht. 17 zeigt einen Identifizierungsschaltkrcis,
der die Identifizierungsinformation, die in das Register 11 gesetzt worden ist (dies ist die den virtueilen
AdreQraum bestimmende Information), in ein vorbestimmtes Muster modifiziert, wenn der Comparatorkreis
16 eine logische »1« ist.
_ ι -.: -τ :ee r -:
Speicher auszuführen,
wenn die zentrale Verarbeitungseinheit eine Verarbeilung
ausführt, ist es notwendig, die virtuelle Adresse EA in die reale Adresse RA zu übersetzen. Der erste Schritt
dafür ist, einen Zugriff auf den Speicher TLB7 auszuführen. Dies bedeutet, die virtuelle Adresse EA, die
übersetzt werden soll, wird in das virtuelle Adressenregister 9 gesetzt, und, beispielsweise, Bit 8 bis 11 der
virtuellen Adresse EA werden im Halteregister 12 gehalten, und mit Bits 12 bis 19 wird ein Zugriff auf den
Speicher TLB 7 ausgeführt, so daß dieser ausgelesen wird. Die Kennung ID, die den virtuellen Adreßraum
anzeigt, in dem die Information früher gespeichert wurde, d. h. das Ergebnis der Zuordnung der virtuellen zu
den realen Adressen und das vorliegende Zuordnungsergebnis entsprechen sich und das die Gültigkeit anzeigende
Bit V wird durch diese Operation aus der korrespondierenden Adresse des Speichers TLB 7 ausgelesen.
Das Zuordnunofserofebn!s ist bezeichnend für die
Zuordnung des 8. bis 11. Bits der virtuellen Adresse zum
8. bis 19. Bit der realen Adresse. Wenn das 8. bis 11. Bit
der virtuellen Adresse, die so ausgelesen wurde, und der Inhalt des Halteregisters 12 einander koinzident sind, so
wird dementsprechend angezeigt, daß das 8. bis 19. Bit der ausgelesenen realen Adresse der zu übersetzenden
virtuellen Adresse entspricht. Dementsprechend prüft der Koinzidenz-Detektorkreis 13 die obige Koinzidenz
und erzeugt einen Ausgang der logischen »1«, wenn er die Koinzidenz erfaßt. Bei der oben genannten Übersetzung
setzt die zentrale Verarbeitungseinheit außerdem eine Kennung in das Register 11, um den virtuellen
Adreßraum anzuzeigen, dem die in das virtuelle Adressenregister 9 gesetzte virtuelle Adresse entspricht Und
der Koinzidenz-Detektorkreis 14 prüft, ob die Kennung ID. die aus dem Speicher TLB 7 ausgelesen wurde, und
der Inhalt des Registers 11 einander koinzident sind oder nicht, und falls sie koinzident sind, liefert der Ausgang
eine logische »1«. Außerdem wird das Gültigkeitsbit V aus dem Speicher TLB 7 ausgelesen und dem
UND-Glied 15 zugeführt Dementsprechend schließt der Zustand., in dem das UND-Glied 15 den Ausgang
der logischen »1« erzeugt, die folgenden Tatsachen ein: eo
1. Die Zuordnung der virtuellen Adresse EA, die in das Register 9 gesetzt worden ist zu der realen
Adresse existiert in dem Speicher TLB 7,
2. die Zuordnung ist gültig, und
3. die Zuordnung entspricht dem gewünschten virtu- *"
eilen Adreßraum.
Als Ergebnis davon wird ein Signal TLB HIT erzeugt
und die zu diesem Zeitpunkt ausgelesene Adresse RA wird als eine übersetzte reale Adresse für einen Zugriff
auf den Speicher benutzt.
Liefert zu dieser Zeit das UND-Glied 15 keine »1«, so bedeutet dies, daß die Zuordnung der gewünschten virtuellen
Adresse zu der realen Adresse nicht in dem Speicher TLB 7 existiert. In diesem Falle wird die reale
Adresse durch die Segmenttabelle SGTund die Seitentabelle
PT hergeleitet, und das Zuordnungsergebnis wird in dem Speicher TLB 7 gespeichert. Dies bedeutet,
die hergeleitete reale Adresse wird in das Register 10 gesetzt und in dem Speicher TLB 7 durch Benutzung
der virtuellen Adresse EA, die in das Register 9 gesetzt worden ist, registriert.
Die Kennung ID, die den virtuellen Adreßraum anzeigt, wird in das Register 11 gesetzt und in dem Speicher
TLB 7 registriert.
Außerdem wird das die Gültigkeit anzeigende Bit V in der Form der logischen »1« geschrieben.
Falls jedoch die virtuelle Adresse EA, die in das Register 9 gesetzt worden ist, in der durch den Inhalt des
gemeinsamen virtuellen Registers 6 gegebenen Adresse liegt, erzeugt der Comparatorkreis 16 in diesem Falle
die logische »1«, wodurch die Kennung ID, die in das Register 11 gesetzt worden ist, durch den modifizierenden
Kreis 17 in ein vorbestimmtes Muster modifiziert wird und in dem Speicher 77.57 registriert wird. Wenn
die virtuelle Adresse EA, die in das Register 9 gesetzt worden ist, nicht in dem oben genannten gemeinsamen
Bereich liegt, wird die Kennung ID, die in das Register 11 gesetzt worden ist, natürlich registriert, wie sie in
dem Speicher TLB 7 ist. In diesem Zustand wird bei der Verarbeitung durch die zentrale Verarbeitungseinheit
die virtuelle Adresse EA in das Register 9 gesetzt, um die reale Adresse herzuleiten, und auf den Speicher 7LS
wird ein Zugriff ausgeführt, um ihn auszulesen. Falls die in das Rs^istsr 9 besetzte virtuelle Adresse EA zu dieser
Zeit in der durch den Inhalt des gemeinsamen virtuellen Registers 6 gegebenen Adresse liegt, erzeugt der Comparatorkreis
16 einen Ausgang der logischen »1« wie es bei obigem der Fall ist.
Dementsprechend wird auch in diesem Falle die in das Register 11 gesetzte Kennung ID durch den modifizierenden
Kreis 17 in ein vorbestimmtes Muster modifiziert und dem Koinzidenz-Detektorkreis 14 zugeführt
Bei dem oben genannten Zugriff zum Auslesen wird ein Zugriff auf den Speicher TLB 7 mit der in das Register 9
gesetzten virtuellen Adresse EA ausgeführt, wodurch die Kennung ID aus der entsprechenden Adresse aus
dem Speicher TLB 7 ausgelesen wird.
Die Kennung ID, die soeben ausgelesen worden ist,
ist ein vorbestimmtes Muster, welches in der früheren Registrierung beschrieben worden ist Dafür erzeugt
der Koinzidenz-Detektorkreis ein Koinzidenz-Ausgangssignal auch dann, wenn die virtuellen Adreßräume
verschieden sind. Dies bedeutet, das UND-Glied 15 erzeugt
das Signal TLBHIT, und dies gibt an, daß die
gewünschte Zuordnung der virtuellen zu den realen Adressen in dem Speicher TLB 7 existiert, und die soeben
ausgelesene reale Adresse RA wird benutzt
Dies bedeutet das Folgende: Auch wenn die virtuellen Adreßräume verschieden sind, falls die zu übersetzende
virtuelle Adresse EA dem gemeinsamen Bereich A oder B, dargestellt in F t g. 1, entspricht, wird das Ergebnis der
Zuordnung gemeinsam in den virtuellen AdreBraumen
registriert, und nicht für jeden von ihnen.
Anhand der Fig.7a und 7b wird die Wirkung der Anordnung der Erfindung im folgenden im Detail be-
schrieben. Die F i g. 7a und 7b zeigen den Speicher TLB, die Adressen-Übersetzungseinrichtung und das gemeinsame
virtuelle Register.
Die Kennung ID des virtuellen Adreßraums. die in
jedes Element des Speichers TLB geschrieben ist, wird durch die Hardware verwaltet, und ein Segmenttabellen-Ursprungr-Stapelspeicher
(im folgenden als der STO-Stapelspe-icher bezeichnet) hält Segmenttabeiien-Ursprungsadressen
von mehreren Räumen in den Speicher TLB zur gleichen Zeit.
Der STO-Stapelspeicher ist ein Hochgeschwindigkeitsspeicher, der die Zuordnung der Segmenttabellen-Leitadresse
eines jeden Adreßraumes, angezeigt durch ein Segment-Basis-Register SBR, zu der Kennung ID
der Hardware speichert.
Beim Schalten des virtuellen Adreßraums durch das Betriebssystem wird der STO-Stapelspeicher zuerst zugewiesen.
Wenn eine Information des gleichen Wertes wie die Segmenttabellen-Leitadresse im STO-Stapelspeicher
existiert, ist der virtuelle Adreßraum bereits im
STO-Stapelspeicher registriert, so daß die Kennung ID des STO-Stapelspeichers gültig ist. Bei Abwesenheit der
oben genannten Information wird der virtuelle Adreßraum aber erneut registriert, wodurch die Kennung ID
für den virtuellen Adreßraum erhalten wird. Und diese Kennung ID wird in einem Kennungsregister IDR gespeichert.
Damit ist es möglich, die Wahrscheinlichkeit, daß der Inhalt des Speichers TLB bei jeder Schaltung
des virtuellen Adreßraums ungültig wird, bemerkenswert zu senken.
Wenn eine virtuelle Adresse in eine reale Adresse zu übersetzen ist, wird in den F i g. 7a und 7b ein Hinweis
auf die Tabelle TLB gemacht, vor der Übersetzung durch Benutzung der Segmenttabelle SGT und der Seitentabelle
PCT.
Wenn dann auf den Speicher TLB ein Zugriff mit der Adresse (die Seitennummer PGN) der Bits 12 bis 19 des
virtuellen Adressenregisters EAR gemacht worden ist, wird diese Adresse decodiert, und irgendeiner der beispielsweise
256 Einträge wird ausgewählt. In einem solchen Falle wird ein Ausgang TLB HIT vom UND-Glied
A 1 erhalten, wenn folgende Bedingungen erfüllt werden: Erstens, das die Gültigkeit des ausgewählten Eingangs
anzeigende BIT V(4-Bit-Muster vom Kennungsregister IDR)und die Kennung /Din dem Speicher TLB
werden vom Comparator CMP1 als gleich erkannt, und
zweitens, die Bits 8 bis 11 des virtuellen Adressenregisters
EAR und die virtuelle Adresse EA im Speicher TLB werden im Comparator CMP 2 als gleich erkannt.
Ein zu dieser Zeit ausgewählter Eintrag in dem Speicher TLB wird in ein TLß-Datenregister TDR gesetzt und
durch den Ausgang TLB HIT wird ein Gatter geöffnet,
wodurch die reale Adresse RA im Eintrag in Bits 8 bis 19 eines realen Adressenregisters RAR gesetzt und zur
gleichen Zeit Bits 20 bis 31 des virtuellen Adressenregisters EAR als Bits des realen Adressenregisters RAR
mit geringem Stellenwert gesetzt werden.
Bevor auf den Speicher TLB ein Zugriff mit der virtuellen Adresse ausgeführt wird, werden andererseits die
obere Grenzadresse HBA, die mit Bits 8 bis 15 des gemeinsamen virtuellen Registers CVT? dargestellt wird,
und die Adresse (die Segmentnummer SGN), die mit Bits 8 bis 15 des virtuellen Adressenregisters EAR dargestellt
wird, miteinander in einem Comparator CMP 3 verglichen, und außerdem werden die niedrige Grenzadresse
LBA, die mit Bits 24 bis 31 des gemeinsamen virtuellen Registers CVT? dargestellt wird, und die
Adresse (die Segmentnummer SGN), die mit Bits 8 bis
15 des virtuell Adressenregisters EAR dargestellt
wird, miteinander in einem Comparator CMPA verglichen. Wenn die beiden die Gültigkeit anzeigenden Bits
WVund L V»l« sind und der gemeinsame Bereich angezeigt wird, wird ein gemeinsames anzeigendes Signal
CMN erzeugt, wodurch ein die Kennung modifizierender Schaltkreis IDM umgeschaltet wird, urn das 4-Bii-Muster
überall in »0« zu modifizieren. Dies bedeutet, bei 16 Mustern, die mit 4 Bits zu erhalten sind, wird »0«
im Fall des gemeinsamen Bereiches benutzt, und die verbleibenden »1« bis »15« werden für Eingänge anderer
virtueller Adreßräume benutzt. In dem Fall, daß die Kennung /Ddes gemeinsamen Bereiches im Bereich des
Speichers TLB gelesen wird, wird außerdem jede oben genannte »0« darin gelesen, so daß, wenn die beiden
miteinander im Comparator CMP1 verglichen werden,
ein Koinzidenz-Ausgang erzeugt wird, um die reaie Adresse des gemeinsamen Bereiches zu erhalten.
Wo der Eintrag des Speichers TLB nicht der Eintrug für diese virtuelle Adresse ist, wird der Ausgang
TLB HIT zunächst nicht erzeugt, so daß die reale Seitenadresse
dadurch erhalten wird, daß sofort auf die Segmenttabelle SGT mit der Segmentnummer SGN
und der Seitennummer PGN hingewiesen wird, die durch die Bits der virtuellen Adresse EA mit höheren
Stellenwert repräsentiert wird.
Dies bedeutet, die Segmenttabellen-Leitadresse, die durch das Segment-Basis-Register SBR angezeigt wird,
und die Segmentnummer SGNdes virtuellen Adressenregisters
EAR werden zusammen in einem dynamischen Adressenübersetzungsaddierer DAT ADDIERER addiert,
und das Ergebnis der Addition wird in ein Tabellenadressenregister
TAR gesetzt. Dann wird auf die in einem Hauptspeicher MS gespeicherte Segmenttabelle
SGT mit dem oben genannten Ergebnis, welches als eine Adresse benutzt wurde, ein Zugriff ausgeführt.
Die Breite der aus dem Hauptspeicher Miausgeiesenen
Daten beträgt 8-Byte, und dies wird in ein Speicherdatenregister SDR gesetzt. Aufgrund Bits 0 bis 31 (gerade)
und Bits 32 bis 63 (ungerade) der Daten von den 4-Byte-Segmenitabelleneinträgen wird »ungerade«
oder »gerade« davon abhängig ausgewählt, ob das Bit 29 eine »1« oder »0« ist, und ein Segmenteingangsgatter
SGE wird geöffnet, um die 4-Byte Daten an ein Tabelleneintragsregister
TER zu übertragen.
Danach werden Bits 8 bis 28 des Tabelleneintragsregisters TER und die Seitennummer PGN, die mit Bits \b
bis 19 des virtuellen Adressenregisters EAR dargestellt wird, zusammen addiert, und zwar in dem Addierer
DAT ADDIERER, und das Ergebnis der Addition wird in das Tabellenadressenregister TAR gesetzt. Und dieses
Ergebnis wird als eine Adresse für einen Zugriff auf die Seitentabelle PGT im Hauptspeicher MS benutzt,
um daraus einen Tabelleneintrag auszulesen, der in das Speicherdatenregister SDR gesetzt wird. In diesem Falle
ist die Datenbreite der Seitentabelle 2-Byte, und irgendeine der Gruppen der Bits 0 bis 15 und der Bits 16
bis 31 oder irgendeine der Gruppen der Bits 32 bis 47 und der Bits 47 bis 62 der in das Register SDR gesetzten
Datenbits wird abhängig davon ausgewählt, ob die Bit-Positionen
29 bis 30 »00« »01«, »10« oder »11« sind. Dann wird das Eintragsgatter PGE geöffnet, um die
2-Byte Daten zu Bits 0 bis 15 des Tabelleneintragsregisters TER zu übertragen.
Die Bits 0 bis 11 des Tabelleneintragsregisters TER
werden zu Bits 8 bis 19 des realen Adressenregisters RAR übertragen, und zur gleichen Zeit werden Bits 20
bis 31 des virtuellen Adressenregisters EAR mit gerin-
11
gerem Steüenwert übertragen, da sie zu den Bits 20 bis
31 mit geringerem Stellenwert des realen Adressenregisters RAR gehören. Wenn die Bits des virtuellen Adresse·,
registers EAR mit geringem Stellenwert in irgendein anderes Register gesetzt werden, werden sie daraus
übertragen.
Die Daten des realen Adressenregisters RAR werden als eine übersetzte reale Adresse zum Zugriff auf den
Speicher benutzt.
Zur gleichen Zeit wird die Zuordnung zwischen der virtuellen und der realen Seitenadresse im Eintrag des
Speichers TLB registriert, zusammen mit der Kennung ID.
In diesem Falle übt das Datenregister TDR die Funktion
des Auslesens des Eintrags aus dem Speicher TLB aus, um die gesamte Bit-Byte-Breite, wie oben beschrieben,
zu setzen, und dient gleichzeitig dazu. Daten zur Registrierung in dem Speicher TLB nach der dynamischen
Adressenübersetzung zu assemblieren. Dies bedeutet, die virtuelle Adresse EA, die reale Adresse RA,
die Kennung /Dnnd das die Gültigkeit anzeigende Bit V
setzen in dieser Reihenfolge 4 Bits 8 bis 11 des virtuellen Adressenregisters EAR, 12 Bits Obis 11 des Tabelleneintragsregisters
TER, 4 Bits des Kennungsregisters IDR und »1« vom Generator im Datenregister TDR, indem
ein Registrierungsgatter TLB EINTRAG geöffnet wird.
Wenn der in dem Speicher TLB zu registrierende Eintrag im Datenregister TDR assembliert worden ist,
wird ein Schreibgatter TLB WRT geöffnet, indem der Kreis der Registrierung benutzt wire', durch dieses Gatter
wird der oben genannte Eintrag in einen von 256 Einträgen des Speichers TLB geschrieben. Wenn 256
Einträge alle besetzt sind, wird der frühere Eintrag durch erneutes Schreiben des oben genannten Eintrages
entfernt Falls zwei Speicher TLB eines ersten und eines zweiten Blocks benutzt werden, wird der Eintrag in einen
von ihnen, der ausgewählt wurde, geschrieben.
Zur Anzeige, daß ein bestimmtes Zuordnungsergebnis in dem Speicher TLB dem gemeinsamen Bereich
entspricht, ist es auch möglich, eine solche Methode zu benutzen, die genau die gleiche wie gewöhnliche Methoden
in Verbindung mit der Kennung virtueller Adreßräume ist, die jedoch ein spezifisches Bit für jede
Zuordnung in dem Speicher TLB zufügt. Bei dieser Me- ; thode wird ein weiteres Bit zu dem Speicher TLB zügefügt,
und wenn eine neue Adressenzuordnung darin ge-' speichert wird, wird, falls sie dem gemeinsamen Bereich
entspricht, das oben genannte Bit zu »1« gemacht. Und wo das oben genannte Bit »1« ist, wie ein Ergebnis eines
Wiederauffindens des Speichers TLB, wird der Ausgang vom Koinzidenz-Detektorkreis in Fig.5 zu »1« gemacht,
ungeachtet des Ergebnisses von dessen Koinzidenz-Feststell-Operation.
Wenn das Ergebnis ei.ier Adressenzuordnung dem gemeinsamen Bereich A oder B entspricht, wird es auf
dem Speicher TLB gemeinsam in verschiedenen virtuellen Adreßräumen gespeichert, entsprechend der Erfindung,
wie oben beschrieben worden ist, damit wird der Speicher TLB effektiv benutzt und außerdem die Effektivität
der Anordnung erhöht
Hierzu 6 Blatt Zeichnungen
65
Claims (1)
- Patentanspruch:Dateuverarbeitungsanordnung zum Obersetzen von virtuellen Adressen aus einer Mehrzahl virtue!- ler Adreßräume(Jobs) in reale Adressen eines realen Hauptspeichers mit einem Adressenregister (EAR) für die aus Segmentnummer (SGN), Seitennummer (PGN) und Distanz (BYT-N) bestehende virtuelle Adresse, tomit einem Segmentbasisregister (SBR) für die Leitadresse (SGT-ADR)der Segmenttabelle (SGT),
mit einem Addierer (DAT) zum Ermitteln der Segmentadresse aus Leitadresse (SGT-ADR) und Segmentnummer (SGN) als Speicherstelle für die Leitadresse (PGT-ADR) der zugehörigen Seitentabelle (PGT),mit einem weiteren Addierer zum Ermitteln der Seitenadresse aus Leitadresse (PGT-ADR) und Seitennummer (FCiN) als Speicherstelie für die reale Seitenadresse des Hauptspeichers,
mit einem Register (RAR) für die durch die Distanz (BYT-N)ergänzte Seitenadresse und
mit einem Adressenübersetzungsspeicher (TLB), dessen Register nach der virtuellen Adresse (SGN und PGN) abgesucht werden, wobei in den Registern die reale Seitennummer der zugehörigen übersetzten virtuellen Adresse und eine Kennung (JD) des Segments abgelegt sind,gekennzeichnet durch ein gemeinsames virtuelles RegU.er (CVR 6), das die Grenzadressen (HBA, LBA) der gemeinsame? Bereiche sowie Gültigkeitsinformationen (HV, L V) enthält,
durch Komparatoren (16, CMP i bis 4), welche die Gültigkeit der Grenzadressen für das betreffende Segment überprüfen und ermitteln, ob die umzuwandelnde virtuelle Adresse einem gemeinsamen Bereich (A, B) angehört,durch einen Schaltkreis (IDM), der beim Erkennen einer virtuellen Adresse des gemeinsamen Bereichs (A, B) die Kennung (ID) des Segments im Adressenübersetzungsspeicher (TLB)gleich Null setzt, und
durch ein UND-Glied (15, AI), das bei Vorliegen aller Kriterien für eine gemeinsame virtuelle Adresse die Übernahme der zugehörigen realen Adresse aus dem Adressenübersetzungsspeicher (TLB)\n das Register (RAR) für die reale Seitennummer steuert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6680776A JPS52149444A (en) | 1976-06-08 | 1976-06-08 | Multiplex virtual space processing data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2725718A1 DE2725718A1 (de) | 1977-12-15 |
DE2725718C2 true DE2725718C2 (de) | 1985-05-02 |
Family
ID=13326494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2725718A Expired DE2725718C2 (de) | 1976-06-08 | 1977-06-07 | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen |
Country Status (5)
Country | Link |
---|---|
US (1) | US4145738A (de) |
JP (1) | JPS52149444A (de) |
CA (1) | CA1074455A (de) |
DE (1) | DE2725718C2 (de) |
ES (1) | ES459518A1 (de) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4136385A (en) * | 1977-03-24 | 1979-01-23 | International Business Machines Corporation | Synonym control means for multiple virtual storage systems |
JPS5454536A (en) * | 1977-10-08 | 1979-04-28 | Fujitsu Ltd | Data processor |
US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
US4170039A (en) * | 1978-07-17 | 1979-10-02 | International Business Machines Corporation | Virtual address translation speed up technique |
US4251860A (en) * | 1978-10-23 | 1981-02-17 | International Business Machines Corporation | Virtual addressing apparatus employing separate data paths for segment and offset portions of a virtual address and utilizing only the offset portion to calculate virtual address |
US4215402A (en) * | 1978-10-23 | 1980-07-29 | International Business Machines Corporation | Hash index table hash generator apparatus |
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 |
JPS5764383A (en) * | 1980-10-03 | 1982-04-19 | Toshiba Corp | Address converting method and its device |
US4520441A (en) * | 1980-12-15 | 1985-05-28 | Hitachi, Ltd. | Data processing system |
US4410941A (en) * | 1980-12-29 | 1983-10-18 | Wang Laboratories, Inc. | Computer having an indexed local ram to store previously translated virtual addresses |
US4374417A (en) * | 1981-02-05 | 1983-02-15 | International Business Machines Corp. | Method for using page addressing mechanism |
US4407016A (en) * | 1981-02-18 | 1983-09-27 | Intel Corporation | Microprocessor providing an interface between a peripheral subsystem and an object-oriented data processor |
JPS57143782A (en) * | 1981-03-03 | 1982-09-06 | Toshiba Corp | Information processor |
US4432053A (en) * | 1981-06-29 | 1984-02-14 | Burroughs Corporation | Address generating apparatus and method |
US4453212A (en) * | 1981-07-13 | 1984-06-05 | Burroughs Corporation | Extended address generating apparatus and method |
US4495565A (en) * | 1981-11-09 | 1985-01-22 | At&T Bell Laboratories | Computer memory address matcher and process |
JPS6047623B2 (ja) * | 1982-02-12 | 1985-10-22 | 株式会社日立製作所 | アドレス変換方式 |
US4539637A (en) * | 1982-08-26 | 1985-09-03 | At&T Bell Laboratories | Method and apparatus for handling interprocessor calls in a multiprocessor system |
US4714990A (en) * | 1982-09-18 | 1987-12-22 | International Computers Limited | Data storage apparatus |
USRE37305E1 (en) * | 1982-12-30 | 2001-07-31 | International Business Machines Corporation | Virtual memory address translation mechanism with controlled data persistence |
US4626988A (en) * | 1983-03-07 | 1986-12-02 | International Business Machines Corporation | Instruction fetch look-aside buffer with loop mode control |
US4602368A (en) * | 1983-04-15 | 1986-07-22 | Honeywell Information Systems Inc. | Dual validity bit arrays |
US4636942A (en) * | 1983-04-25 | 1987-01-13 | Cray Research, Inc. | Computer vector multiprocessing control |
US4901230A (en) * | 1983-04-25 | 1990-02-13 | Cray Research, Inc. | Computer vector multiprocessing control with multiple access memory and priority conflict resolution method |
US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
US4577274A (en) * | 1983-07-11 | 1986-03-18 | At&T Bell Laboratories | Demand paging scheme for a multi-ATB shared memory processing system |
US4714993A (en) * | 1983-10-18 | 1987-12-22 | International Business Machines Corporation | Apparatus and method for effecting dynamic address translation in a microprocessor implemented data processing system |
JPS6091462A (ja) * | 1983-10-26 | 1985-05-22 | Toshiba Corp | 演算制御装置 |
US4589092A (en) * | 1983-12-12 | 1986-05-13 | International Business Machines Corporation | Data buffer having separate lock bit storage array |
US4731740A (en) * | 1984-06-30 | 1988-03-15 | Kabushiki Kaisha Toshiba | Translation lookaside buffer control system in computer or virtual memory control scheme |
JPS61190638A (ja) * | 1985-02-20 | 1986-08-25 | Hitachi Ltd | 仮想計算機のフアイル制御方式 |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
US4745545A (en) * | 1985-06-28 | 1988-05-17 | Cray Research, Inc. | Memory reference control in a multiprocessor |
US4774653A (en) * | 1985-08-07 | 1988-09-27 | Hewlett-Packard Company | Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers |
JPH0658649B2 (ja) * | 1985-10-28 | 1994-08-03 | 株式会社日立製作所 | 仮想記憶装置における領域管理方法 |
US5123101A (en) * | 1986-11-12 | 1992-06-16 | Xerox Corporation | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss |
US5230045A (en) * | 1986-11-12 | 1993-07-20 | Xerox Corporation | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus |
EP0282213A3 (de) * | 1987-03-09 | 1991-04-24 | AT&T Corp. | Speicherverwaltungseinheit mit simultanem Kontext |
US5278840A (en) * | 1987-07-01 | 1994-01-11 | Digital Equipment Corporation | Apparatus and method for data induced condition signalling |
US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
US4943913A (en) * | 1988-02-10 | 1990-07-24 | International Business Machines Corporation | Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations |
JPH01255945A (ja) * | 1988-04-06 | 1989-10-12 | Hitachi Ltd | 仮想計算機におけるアドレス変換装置 |
GB8825764D0 (en) * | 1988-11-03 | 1988-12-07 | Lucas Ind Plc | Computer memory addressing system |
US5095420A (en) * | 1988-11-21 | 1992-03-10 | International Business Machines | Method and system for performing virtual address range mapping in a virtual storage data processing system |
US5142638A (en) * | 1989-02-07 | 1992-08-25 | Cray Research, Inc. | Apparatus for sharing memory in a multiprocessor system |
DE4019961C2 (de) * | 1989-06-23 | 1994-11-24 | Hitachi Ltd | Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem Prozessorsystem |
JPH0679296B2 (ja) * | 1989-09-22 | 1994-10-05 | 株式会社日立製作所 | 多重仮想アドレス空間アクセス方法およびデータ処理装置 |
US5497474A (en) * | 1993-02-25 | 1996-03-05 | Franklin Electronic Publishers, Incorporated | Data stream addressing |
US5666556A (en) * | 1993-12-30 | 1997-09-09 | Intel Corporation | Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit |
US6385712B1 (en) * | 1999-10-25 | 2002-05-07 | Ati International Srl | Method and apparatus for segregation of virtual address space |
GB2357166B (en) * | 1999-12-07 | 2001-10-31 | Marconi Comm Ltd | Memory access system |
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 |
US7366352B2 (en) * | 2003-03-20 | 2008-04-29 | International Business Machines Corporation | Method and apparatus for performing fast closest match in pattern recognition |
US7227994B2 (en) * | 2003-03-20 | 2007-06-05 | International Business Machines Corporation | Method and apparatus for imbedded pattern recognition using dual alternating pointers |
JP4085328B2 (ja) * | 2003-04-11 | 2008-05-14 | ソニー株式会社 | 情報処理装置および方法、記録媒体、プログラム、並びに撮像装置 |
US20070011429A1 (en) * | 2005-07-07 | 2007-01-11 | Vasudevan Sangili | Virtual memory key generation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE633719A (de) * | 1962-06-22 | |||
JPS532296B2 (de) * | 1973-03-19 | 1978-01-26 | ||
US3825904A (en) * | 1973-06-08 | 1974-07-23 | Ibm | Virtual memory system |
JPS5315778B2 (de) * | 1973-07-18 | 1978-05-27 | ||
JPS5434577B2 (de) * | 1974-06-28 | 1979-10-27 |
-
1976
- 1976-06-08 JP JP6680776A patent/JPS52149444A/ja active Pending
-
1977
- 1977-05-31 US US05/801,571 patent/US4145738A/en not_active Expired - Lifetime
- 1977-06-06 ES ES459518A patent/ES459518A1/es not_active Expired
- 1977-06-07 CA CA279,994A patent/CA1074455A/en not_active Expired
- 1977-06-07 DE DE2725718A patent/DE2725718C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
ES459518A1 (es) | 1978-10-01 |
US4145738A (en) | 1979-03-20 |
DE2725718A1 (de) | 1977-12-15 |
JPS52149444A (en) | 1977-12-12 |
CA1074455A (en) | 1980-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE3011552C2 (de) | ||
DE2807476C2 (de) | Speichereinrichtung mit mehreren virtuellen Adreßräumen | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE3805107C2 (de) | ||
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2712575C2 (de) | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE2339741A1 (de) | Anordnung zur bildung einer relativen adresse fuer einen speicher | |
DE3911182C2 (de) | ||
DE3825028C2 (de) | ||
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE1801620A1 (de) | Verfahren und Anordnung zur Adressierung eines Speichers in einer Datenverarbeitungsanlage | |
DE2054830A1 (de) | Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher | |
EP1352318B1 (de) | Mikroprozessorschaltung für tragbare datenträger | |
DE3333894C2 (de) | ||
DE2558417A1 (de) | Datenverarbeitungssystem | |
CH495584A (de) | Datenverarbeitungsanlage | |
DE1956460C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2516050A1 (de) | Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem | |
DE3340956A1 (de) | Verfahren und vorrichtung zur erfassung von speicherzugriffen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8181 | Inventor (new situation) |
Free format text: INOUE, KOICHI, DIPL.-ING., TOKIO/TOKYO, JP NONOGAKI, HAJIME, DIPL.-ING., KAMAKURA, JP URAKAWA, TATSUO, DIPL.-ING., YOKOHAMA, JP SHIMIZU, KAZUYUKI, DIPL.-ING., MACHIDA, JP |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: REINLAENDER, C., DIPL.-ING. DR.-ING., PAT.-ANW., 8000 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |