DE2725718C2 - Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen - Google Patents

Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen

Info

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
Application number
DE2725718A
Other languages
English (en)
Other versions
DE2725718A1 (de
Inventor
Koichi Dipl.-Ing. Tokio/Tokyo Inoue
Hajime Dipl.-Ing. Kamakura Nonogaki
Kazuyuki Dipl.-Ing. Machida Shimizu
Tatsuo Dipl.-Ing. Yokohama Urakawa
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE2725718A1 publication Critical patent/DE2725718A1/de
Application granted granted Critical
Publication of DE2725718C2 publication Critical patent/DE2725718C2/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

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.
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 -:
Will trillGII £-.Uglll! ClUl ClIlCIl
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)

  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, to
    mit 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.
DE2725718A 1976-06-08 1977-06-07 Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen Expired DE2725718C2 (de)

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)

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

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

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