DE2725718A1 - Verarbeitungssystem mit mehreren virtuellen adressenraeumen - Google Patents
Verarbeitungssystem mit mehreren virtuellen adressenraeumenInfo
- Publication number
- DE2725718A1 DE2725718A1 DE19772725718 DE2725718A DE2725718A1 DE 2725718 A1 DE2725718 A1 DE 2725718A1 DE 19772725718 DE19772725718 DE 19772725718 DE 2725718 A DE2725718 A DE 2725718A DE 2725718 A1 DE2725718 A1 DE 2725718A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- virtual address
- virtual
- real
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 40
- 238000013519 translation Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 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
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
-h-In einem Datenverarbeitungssystem, welches eine Vielzahl
virtueller Adressenräumen besitzt, wird eine virtuelle Adresse in eine reale Adresse zum Zugriff auf einen Hauptspeicher übersetzt,
und das Ubersetzungsergebnis wird in einem Ubersetzungs-Seitenblick-Puffer
gespeichert, wie in einem Verarbeitungssystem, welches einen einzigen virtuellen Adressenraum besitzt.
Danach wird im Fall der gleichen virtuellen Adresse wie oben der Ubersetzungs-Seitenblick-Puffer zurückgeholt, um die virtuelle
Adresse in eine reale Adresse zu übersetzen. Im allgemeinen werden die virtuellen Adressen in verschiedene reale Adressen
übersetzt, sogar im Fall dergleichen virtuellen Adressen, falls
deren virtuelle Adressenräume verschieden sind. Jedoch ist ein Steuerprogramm, eine Steuertabelle oder ein gemeinsames Teilprogramm
(Subrontine) in einem gemeinsamen Bereich vorgesehen, in dem die Zuordnung der virtuellen und realen Adressen dauernd
konstant bleibt, sogar im Fall verschiedener virtueller Adressenräume. Um die Effektivität der Nutzanwendung des Ubersetzungs-Seitenblick-Puffers
zu erhöhen, ist eine einen gemeinsamen Bereich anzeigende Vorrichtung vorgesehen, von der die Koordination
der virtuellen und realen Adressen auf dem Übersetzungs-Seitenblick-Puffer registriert wird, so daß er gemeinsam für eine
Vielzahl virtueller Adressenräume benutzt werden kann.
Diese Erfindung bezieht sich auf ein Verarbeitungssystem mit mehreren virtuellen Adresenräumen, insbesondere auf ein Verarbeitungssystem
mit mehreren virtuellen Adressenräumen für ein Datenverarbeitungssystem, welches virtuelle und reale
Adressen miteinander koordiniert, entsprechend der Vielzahl virtueller Adressenräume, und welches das Ergebnis der Koordination
in einem Ubersetzungs-Seitenblick-Puffer (im folgenden
als Tabelle TLB bezeichnet) speichert, in dem ein gemeinsames virtuelles Register vorgesehen ist, um einen den virtuellen
Adressenräumen gemeinsamen Bereich zu bestimmen, und wenn das Ergebnis der Koordination bzw. Zuordnung der virtuellen und
realen Adressen, die dem gemeinsamen Bereich entsprechen, in der oben genannten Tabelle TLB gespeichert worden ist,so ist es ge-
7O9Rr>n/ 1 m ""/5
meinsam für die virtuellen Adressenräume gespeichert worden, obwohl
diese verschieden sind, so daß eine verbesserte Effektivität in der Benutzung der Tabelle TLB geschaffen wird.
Bekannte Datenverarbeitungssysteme benutzen gewöhnlich das sogenannte
virtuelle Speichersystem. Und das virtuelle Speichersystem hat eine Tendenz, daß ein einziges virtuelles Speichersystem,
welches nur einen Adressenraum besitzt, auf ein virtuelles Mehrfachspeichersystem umgeschaltet wird, welches eine Vielzahl
von Adressenräumen besitzt. In dem virtuellen Mehrfachspeichersystem darf in jedem Adressenraum nur ein Job bestehen, und
virtuelle AdreaBenräume werden in gleicher Zahl wie die Jobs der gleichzeitigen Operationen bereitgestellt. Da jedem der Adressenräume
nur ein Job zugeordnet ist, und da die Adressenrä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 in der Zahl der Adressenräume nicht durch die Architektur der Hardware beschränkt wird. In diesem Falle sind
den Jobs gemeinsame Bereiche, derartige Bereiche sind beispielsweise Steuerprogramme, Steuertabellen zur Benutzung darin und
andere gemeinsame Teilprogramme (Subrontine), für die Jobs notwendige Funktionen, so daß sie für jeden virtuellen Adressenraum
vorgesehen werden. Derartige Bereiche werden im folgenden als gemeinsame Bereiche bezeichnet.
Auch in einem derartigenvirtuellen Mehrfachspeichersystem, wie es oben beschrieben wurde, wird die Verarbeitung für die Zuordnung
zwischen der Adresse des virtuellen Adresenraumes und einer realen Adresse auf einem Hauptspeicher für jeden virtuellen
Adressenraum wie im Fall einer einzigen virtuellen Adresse ausgeführt. Und das Ergebnis dieser Zuordnung wird in einem Hochgeschwindigkeitsspeicher
oder in einer Tabelle gespeichert, die als Übersetzungs-Seitenblick-Puffer (TLB) bezeichnet wird. Bei
der Verarbeitung wird die Zuordnung der virtuellen Adresse zur realen Adresse dadurch erreicht, daß die Tabelle TL3 zurückgeholt
wird. Aber im gemeinsamen Bereich, der für jeden virtuellen Adressenraum, wie oben erwähnt, bereitgestellt ist, bleibt die
.../6 7098 ΒΠ/1176
Zuordnung zwischen der virtuellen und der realen Adresse dauernd konstant, sogar im Fall verschiedener virtueller
Adressenräume. Daraus ergibt sich, daß der Ausnutzungsgrad der Tabelle TLB vermindert wird, wenn die Ergebnisse verschiedener
Zuordnungen in der Tabelle TLB für entsprechend verschiedene virtuelle Adressenräume gespeichert werden.
Eine Aufgabe dieser Erfindung ist es, ein Verarbeitungssystem mit mehreren virtuellen Adressenräumen zu schaffen, in dem, wenn
die in eine reale Adresse umzuwandelnde virtuelle Adresse in dem gemeinsamen Bereich liegt, das Ergebnis der Zuordnung der
virtuellen Adresse zur realen Adresse auf einem Hauptspeicher registriert wird, und zwar auf der Tabelle TLB, in der Weise,
daß diese gemeinsam für verschiedene virtuelle Adressenräume verwendet werden kann, um eine effektive Benutzung der Tabelle
TLB zu ermöglichen.
Eine weitere Aufgabe dieser Erfindung ist es, ein Verarbeitungssystem mit mehreren virtuellen Adressenräumen zu schaffen,
welches eine einen gemeinsamen Bereich anzeigende Vorrichtung besitzt, und in welchem, wenn die in eine reale Adresse umzuwandelnde
virtuelle Adresse zugeführt wird, die Inhalte beider Adressen sofort miteinander verglichen werden, wobei im Fall
der Koinzidenz eine bestimmte Anzeige geschaffen wird, gerneinsam für verschiedene virtuelle Adressenräume.
Eine weitere Aufgabe dieser Erfindung ist es, ein Verarbeitungssystem mit mehreren virtuellen Adressenräumen zu schaffen, bei
dem, wenn der gemeinsame Bereich verändert wird, der Inhalt der den gemeinsamen Bereich anzeigenden Vorrichtung ebenfalls sofort
dementsprechend geändert wird.
Außerdem ist es eine Aufgabe dieserErfindung, ein Verarbeitungssystem mit mehreren virtuellen Adressenräumen zu schaffen, bei
dem das Ergebnis der Zuordnung virtueller und realer Adressen, die dem gemeinsamen Bereich entsprechen, auf der Tabelle TLB
registriert wird, gemeinsam für verschiedene virtuelle Adressenräume, um so andere Zuordnungsergebnisse nicht von der Tabelle
...Il 709850/1176
-7-TLB zu entfernen, so daß dadurch die Effektivität des Gesamtsystemes
erhöht wird, und daß gleichzeitig eine Verminderung der Aufnahmefähigkeit eines die Tabelle TLB bildenden Speichers möglich
ist.
Entsprechend dem Verarbeitungssystem mit mehreren virtuellen Adressenräumen gemäß der Erfindung wird bei einer Datenverarbeitung,
die so konstruiert ist, daß virtuelle und reale Adressen einander, entsprechend mehreren virtuellen Adressenräumen,
zugeordnet werden, daß ein vorbestimmter Bereich in jedem der vielen Adressenräume einen mit diesem gemeinsamen
Bereich hat, und daß die virtuelle Adresse, die dem gemeinsamen Bereich entspricht, einer den vielen virtuellen Adressenräumen
gemeinsamen realen Adresse entspricht, und die so ausgebildet ist, daß das Ergebnis der Zuordnung zwischen den virtuellen und
realen Adressen auf der Tabelle TLB gespeichert wird, und daß die Verarbeitung ausgeführt wird, während die Tabelle TLB zurückgeholt
wird, eine den gemeinsamen Bereich bestimmende Speichervorrichtung zur Bestimmung des gemeinsamen Bereiches geschaffen.
Und wenn das Ergebnis der Zuordnung der virtuellen zu den realen Adressen auf der Tabelle TLB gespeichert worden ist, wird der
Inhalt der den gemeinsamen Bereich bestimmenden Speichervorrichtung überwiesen , und das dem geraeinsamen Bereich entsprechende
Ergebnis der Zuordnung wird registriert, zusammen mit den mehrfachen virtuellen Adressen.
Figur 1 ist eine beispielhafte Darstellung für den Umriß mehrerer virtueller Adressenräume.
Figur 2 ist eine beispielhafte Darstellung für den Umriß einer Segmenttabelle und einer Seitentabelle.
Figur 3 ist ein Blockschema, beispielhaft für die Durchführung der Übersetzung einer virtuellen Adresse in eine reale Adresse.
Figur 4 ist eine Darstellung, die ein Beispiel für ein gemeinsames virtuelles Register CVR darstellt, welches in dieser Er-
-findung bereitgestellt wird.
Die Figuren 5a bis 5h einschließlich sind beispielhafte Darstellungen
der Verbindung zwischen dem Inhalt, der durch das gemeinsame virtuelle Register der Figur k bestimmt wird, und dem
. . ./3 7 0 9 R ri η / 1 1 7 i;
■MS
27257Ί8
Existenzbereich eines gemeinsamen Bereiches eines virtuellen Adressenraumes.
Figur 6 ist ein Blockschema eines Verarbeitungssystems, welches eine Ausführungsform dieser Erfindung zeigt.
Die Figuren 7a und 7b sind Blockdarstellungen für die Durchführung
der Adressenübersetzung, diese Figuren zeigen genauer das Verarbeitungssystem der Figur 6, dabei sind die Darstellungen
an den Positionen mit den gleichen Bezugszeichen (a), (b), (c) und (d) verbunden.
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 virtuellen Speichers abhängig von der Architektur der Hardware ist. Beispielsweise für den Fall, daß
24 Bits zur Adressenbestimmung benutzt werden können, 22k - 16 777 216 Bytes t 16 Megabytes.
Während der Programmierung 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, wenn das Programm ausgeführt wird. Diese übersetzung wird dynamisch durch einen dynamischen Adressenübersetzungsmechanismus
der Hardware zur Zeit der Programmausführung ausgeführt.
Im Falle eines mehrfachen virtuellen Speichersystems können, da entsprechende Programme jeweils individuellen virtuellen Adressenräumen
zugewiesen werden, identische virtuelle Adressen in den ,jeweiligen virtuellen Adressenräumen existieren, und eine Vielzahl
identischer virtueller Adressen existiert im System als ein Ganzes.
In den Figuren 1 und 2 bezeichnen die Nummern 1-0 bis 1-n virtuelle
Adressenräume. 2-0 bis 2-n bezeichnen Segmenttabellen. 3-00,
3-01 3-10, 3-11, ... , 3 -nO, 3-nl 4-0, 4-1
5 -0, 5-1, ... bezeichnen üioitent.abellen. Wie in Figur 1 darge-
7098 SD / 1 17( .../<)
stellt, sind Jobs der Vielzahl der virtuellen Adressenräume 1-0
bis 1-n zugeteilt, die jeweils Jobs entsprechen. Die Nummer der
virtuellen Adressenräume ist im wesentlichen durch ein Betriebssystem begrenzt. Zur Zeit ist es möglich, ungefähr 1500 Adressenräume
zu handhaben. Die virtuellen Adressenräume 1-0 bis 1-1 haben jeweils zwei geraeinsame Bereiche A und B und einen Bereich C,
als individueller Benutzerbereich USA bezeichnet. Der Bereich A ( ein Systembereich SYA) und der Bereich B (ein gemeinsamer Bereich
CMA) sind gemeinsam für die virtuellen Adressenräume 1-0 bis 1~n bereitgestellt.
Damit die Adressen der virtuellen Adressenräume eine eineindeutige
Zuordnung zu den Adressen der realen Adressenräume des Hauptspeichers besitzen, sind die Segmenttabellen 2-0 bis 2-n
und die Seitentabellen 3-00, 3-01, ..., 3-10, 3-11, ... , 3-nO, 3-n1, ..., 4-0, 4-1, ..., 5-0, 5-1,·.· , bereitgestellt, wie
in Figur 2 gezeigt. Die Segmenttabellen 2-0 bis 2-n entsprechen jeweils den individuellen virtuellen Adressenräuraen 1-0 bis 1-n.
Und um einen aus der Vielzahl der virtuellen Adressenräume zu bestimmen oder zu identifizieren, wird die Leitadresse der Segmenttabelle
bestimmt. Zur Bestimmung der Leitadresse wird beispielsweise ein Register benutzt, welches als Segment-Basis-Register
(SBR) bezeichnet wird.
Die Verarbeitung, um eine reale Adresse aus einer virtuellen Adresse, die einem be stimmten virtuellen Adressenraum entspricht,
zu erhalten, kann wie folgt ausgeführt werden:
Gestützt auf den Inhalt des Segment-Basis-Registers SBR, welches einem der oben genannten Adressenräume entspricht, beispielsweise
1-1, und gestützt auf einen Teil der Bits einer gegebenen virtuellen Adresse, wird auf eine Adresse der Segmenttabelle 2-1,
dargestellt in Figur 2, ein Zugriff ausgeführt. Und gestützt auf den Inhalt der zugegriffenen Adresse der Segmenttabelle 2-1
und eines Teils der Bits der oben genannten virtuellen Adresse wird auf eine Adresse auf der Seitentabelle, beispielsweise 3-11,
ein Zugriff ausgeführt. Dann wird, gestützt auf den Inhalt der zugegriffenen Adresse der Seitentabelle 3-11 und eines Teils der
Bits der oben genannten virtuellen Adresse, die reale Adresse
.../10 709850/1176
bestimmt. Das Ergebnis der Zuordnung der virtuellen Adresse zur realen Adresse, die bestimmt wurde, wird in der Tabelle TLB gespeichert.
Bei der nachfolgenden Verarbeitung wird die Tabelle TLB zuerst zurückgeholt, 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 auf der Tabelle TLB gespeichert worden ist, wird die reale Adresse natürlich durch Benutzung der Segmenttabelle
2 und der Seitentabellen 3, 4 und 5 wiederum bestimmt, und dieses Ergebnis wird auf der Tabelle TLB gespeichert. Da
die Speicherkapazität der Tabelle TLB begrenzt ist, wird zu dieser Zeit ein Zuordnungsergebnis, welches nicht als letztes
benutzt worden ist, aus der Tabelle TLB entfernt, um darin die Speicherung eines neuen Zuordnungsergebnisses zu ermöglichen.
Figur 3 ist eine Darstellung, die im einzelnen das Verfahren der obigen Adressenübersetzung zeigt.
Wie oben erwähnt, ist der virtuelle Adressenraum in Einheiten
von zwei Stufen geteilt, dies sind Segment und Seiten, und in Übereinstimmung mit der Art der Teilung wird die virtuelle
Adresse ebenfalls in eine Segmentnummer SGN, eine Seitennummer PGN und eine Distanzadresse innerhalb der Seite BYT · N unterteilt.
Die Segmentnummer SGN zeigt an, welches Segment von der virtuellen Adresse besetzt ist. Von 24 Bits der virtuellen
Adresse EA werden 8 Bits, z.B. 64-K Byte, 8 bis 15 benutzt, um die Segmentnummer anzuzeigen. Die Seitennummer PGN zeigt an,
welche Seite des Segmentes besetzt ist, und wird von 4 Bits der virtuellen Adresse EA repräsentiert, beispielsweise 4-K Byte
Seitengröße, 16 bis 19. Die Distanzadresse innerhalb derSeite BYT ♦ N zeigt an, welches Byte besetzt ist, und wird durch
12 Bits der virtuellen Adresse EA repräsentiert, z.B. 64-K Byte Segment und 4-K Byte Seite, 20 bis 31.
Für jedes Segment und jede Seite des virtuellen Adressenraumes
wird durch ein Betriebssystem eine Segmenttabelle SGT und eine Seitentabelle PGT gebildet. Jeder Eingang der Segmenttabelle SGT
.../11 709850/1176
hat die Leitadresse (von beispielsweise 21 Bits) der Seitentabelle
PGT, die darin die reale Adresse jeder zum Segment gehörenden Seite und andere Information aufgewahrt.
Jeder Eingang der Seitentabelle PGT hat Information von der Anwesenheit oder Abwesenheit der Seite im realen Speicher und
12 Bite, die einen höheren Stellenwert haben, von einer realen Seitenadresse (von beispielsweise 24 Bits).
Zuerst kannzur Bestimmung der Leitadresse der Segmenttabelle SGT, da 18 Bits mit höherem Stellenwert der Leitadresse der
Segmenttabelle in den Bits 8 bis 25 eines Segment-Basis-Registers SBR nach Figur 3 gespeichert sind, die Leitadresse der
Spgmenttabelle 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 ein virtuelles Adressenregister EAR gesetzt. Diese virtuelle Adresse (24 Bits)
kann in Termen der Segmentnummer SGN (8 Bits), der Seitennummer PGN (4 Bits) und der Distanzadresse innerhalb der Seite BYT · N
(12 Bits) zusammengesetzt betrachtet werden.
Dann wird die Segmentnummer SGN der virtuellen Adresse mit der Länge einer Segmenttabellenlänge SGT ADR verglichen, die vom
oben genannten Segment-Basis-Register SBR angezeigt wird. Falls in diesem Falle die Länge der ersten Adresse größer ist als die
Lttnge der zweiten Adresse, existiert der Segmenttabelleneingang, der erhalten werden soll, nicht in der Segmenttabelle SGT, so
daß die Adressenübersetzung gestoppt wird.
Die Leitadresse der Segmenttabelle, repräsentiert durch die Bits
B 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übersetzungs-
.../12
addierer 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 Segraenttabelleneingangs,
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, ein gewünschter Seitentabelleneingang wird von der Seitentabelle PGT erfaßt.
In diesem Falle werden die Seitennummer PGN und 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 werden die seiteninternen Distanzadressen
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.
Damit ist die AdressenUbersetzung erschwert.
Wie oben beschrieben wird in einem Datenverarbeitungssystem die Verarbeitung für die Zuordnung der virtuellen und realen Adressen
erreicht. Wie aus Figur 2 zu ersehen ist, werden die realen Adressen durch Benutzung der gemeinsamen Seitentabellen 4 und 5
709850/1 176 "·/13
erhalten, auch wenn die gemeinsamen Bereiche A und B die auf den
virtuellen Adressenräumen 1-0 bis 1-n existieren, voneinander im
virtuellen Adressenraum 1 und dementsprechend in der Segmenttabelle 2 verschieden sind. Dies bedeutet, daß die virtuellen
Adressenräume, auch wenn sie sich, wenn die virtuellen Adressen der Bereiche A und B gleich sind, unterscheiden, der gleichen
realen Adresse entsprechen. Wenn die Ergebnisse der Zuordnung der virtuellen zu den realen Adressen, die die gemeinsamen Bereiche
A und B betreffen, in der Tabelle TLB gespeichert werden, ist es deshalb sehr kostspielig, wenn die Zuordnungsergebnisse
auf der Tabelle TLB für alle virtuellen Adressenräume gespeichert werden. Wenn die Ergebnisse der Zuordnung der virtuellen zu den
realen Adressen, da8 die gleiche Adresse trotz verschiedener virtueller Adressenräume erhalten wird, individuell auf der
Tabelle TLB gespeichert werden, so bedeutet dies, daß andere Zuordnungsergebnisse, die in der nachfolgenden Verarbeitung benötigt
werden können, aus der Tabelle TLB entfernt werden, so daß die Effektivität der Nutzanwendung der Tabelle TLB stark
vermindert wird.
Um dies zu vermeiden, benutzt die vorliegende Erfindung ein gemeinsames virtuelles Register CVR6, wie in Figur h gezeigt,
durch dieses Register wird der Bereich auf dem virtuellen Adressenraum 1 angezeigt, auf dem die gemeinsamen Bereiche A und B liegen.
In Figur k bezeichnet das Bezugszeichen HBA eine hohe Grenzadresse,
die einen Bereich entsprechend dem Bereich A, gezeigt in Figur 1, anzeigt. Wie aus den Figuren 5a bis 5h zu ersehen
ist, zeigt die oben genannte Adresse an, daß der Bereich von der Adresse, die durch den Inhalt des obigen Feldes HBA zu
einer maximalen virtuellen Adresse (z.B. 16 MB) bestimmt ist, der gemeinsame Bereich ist. Das Bezugszeichen HV bezeichnet
ein Bit, welches die Gültigkeit der hohen Grenzadresse anzeigt, und wenn dieses die Gültigkeit der hohen Grenzadresse anzeigende
Bit die logische "1" hat, so zeigt es an, daß die durch das Feld HBA bestimmte Adresse gültig ist. Das Bezugszeichen LBA bezeichnet
eine niedrige Grenzadresse, die einen Bereich entsprechend dem Bereich B, gezeigt in Figur 1, anzeigt. Und wie aus
Figur k zu ersehen ist, ist angezeigt, daß der Bereich von der
7 09 8 BO / 1 176 "·/14
COPY
Adresse "O" des virtuellen Adressenraumes bis zu der durch den
Inhalt des oben genannten Feldes LBA angezeigten Adresse der gemeinsame Bereich ist. Das Bezugszeichen LV bezeichnet ein
Bit, welches die Gültigkeit der niedrigen Grenzadresse anzeigt, und wenn dieses Bit die logische "1" hat, zeigt es an, daß die
vom Feld LBA angezeigte Adresse gültig ist.
Die Bereiche, die die gemeinsamen Bereiche A und B auf dem
virtuellen Adressenraum einnehmen, weichen voneinander entsprechend den Systemen ab, wie in den Figuren 5a bis 5h gezeigt
ist. Um die oben genannte Information HV, HBA, LV und LBA in das gemeinsame virtuelle Register 6 zu setzen, entsprechend zu
den beispielsweise in den Figuren 5a bis 5h dargestellten Betriebsweisen, wird ein Ladebefehl für das gemeinsame virtuelle
Register (im folgenden als LCVR-Instruktion bezeichnet) ausgeführt,
der in dieser Erfindung bereitgestellt wird.
Figur 6 zeigt die Konstruktion einer Ausführungsform dieser Erfindung,
die so ausgebildet ist, daß, 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 zu den virtuellen Adressenräumen gespeichert werden. In Figur 6 bezeichnet das Bezugszeichen 6 ein gemeinsames
virtuelles Register CVR. 7 bezeichnet einen Ubersetzungs-Seitenblick-Puffer
TLB. 8 bezeichnet einen Decoder für einen Zugriff auf eine vorbestimmte Adresse der Tabelle TLB. 9 bezeichnet
ein virtuelles 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 reales 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 die Tabelle TLB 7 geschrieben wird. 11 zeigt ein Register für eine einen virtuellen
Adressenraum identifizierende Information, in dieses Register wird eine Identifizierungsinformation ID gesetzt, die eine Anzeige
des virtuellen Adressenraumes ist, dem das Zuordnungser-
709850/1176 *·*/15
gebnis zugeordnet ist, wenn das Zuordnungsergebnis auf der
Tabelle TLB 7 registriert und davon ausgelesen wird. 12 bezeichnet ein logisches Adressenhalteregister, in dem zeitweise ein
Teil des Inhalts des Registers 9 gehalten wird, wenn die Tabelle TLB ausgelesen wird. 13 bezeichnet einen ersten Koinzidenz-Detektorkreis,
der die Koinzidenz eines Teils der Bits der aus derTabelle TLB ausgelesenen virtuellen Adresse EA mit dem Inhalt
des Halteregisters prüft. 14 bezeichnet einen zweiten Koinzidenz-Detektorkreis, der die Koinzidenz der Identifizierungsinformation
ID, die aus der Tabelle TLB 7 ausgelesen worden ist, mit der Identifizierungsinformation, die in das Register 11 gesetzt
worden ist, prüft, wenn die erstere Information aus der Tabelle 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 auf der
Tabelle TLB 7 registriert worden sind, gültig ist, wenn das die Gültigkeit anzeigende Bit die logische "1" hat. 15 bezeichnet
eine UND-Schaltung, deren Ausgang einer logischen "1" anzeigt,
daß die reale Adresse RA, die der virtuellen Adresse EA entspricht, die in das virtuelle Adressenregister 9 gesetzt worden
ist, auf der Tabelle TLB 7 (TLB HIT) existiert. 16 bezeichnet einen Comparatorkreis, der entsprechend dieser Erfindung vorgesehen
ist, dieser Kreis prüft, ob bzw. ob nicht die virtuelle Adresse EA, die in das virtuelle Adressenregister 9 gesetzt
worden ist, den Adressen in den gemeinsamen Bereichen A und B entspricht, die in das gemeinsame virtuelle Register CVR 6 gesetzt
worden sind. 17 zeigt einen eine Identifizierungsinformation modifizierenden Kreis, der die Identifizierungsinformation, die
in das Register 11 gesetzt worden ist, dies ist die den virtuellen Adressenraum bestimmende Information, in ein vorbestimmtes Muster
modifiziert, wenn der Comparatorkreis 16 eine logische "1" hat.
Um einen Zugriff auf einen Speicher auszuführen, wenn die zentrale
Verarbeitungseinheit eine Verarbeitung ausführt, ist es notwendig, die virtuelle Adresse EA in die reale Adresse RA zu übersetzen.
Dererste Schritt dafür ist, einen Zugriff auf die Tabelle TLB 7 auszuführen. Dies bedeutet, die virtuelle Adresse EA, die übersetzt
werden soll, wird in das virtuelle Adressenregister 9 ge-
.../16 709850/1176
setzt, und,beispielsweise, Bite 8 bis 11 der virtuellen Adresse EA
werden im Halteregister .12 gehalten, und mit Bits 12 bis 19 wird ein Zugriff auf die Tabelle TLB 7 ausgeführt, so daß diese ausgelesen
wird. Die Identifizierungsinformation ID, die den virtuellen
Adreasenraum anzeigt, zu dem die Information früher gespeichert wurde, d.h. das Ergebnis der Zuordnung der virtuellen zu den
realen Adressen und das vorliegende Zuordnungsergebnis korrespondieren, und das die Gültigkeit anzeigende Bit V werden durch
diese Operation aus der korrespondierenden Adresse der Tabelle TLB 7 ausgelesen. Das Zuordnungsergebnis ist bezeichnend für die
Zuordnung des a bis 11. Bits der virtuellen Adresse zum 8. bis Bit der realen Adresse. Wenn das 8. bis 11. Bit der virtuellen
Adresse, die so ausgelesen wurde, und der Inhalt des Halteregisters 12 miteinander koinzidieren, so wirddementsprechend 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 Identifizierungsinformation in
das Register 11, um den virtuellen Adressenraum anzuzeigen, dem die in das virtuelle Adressenregister 9 gesetzte virtuelle Adresse
entspricht. Und der Koinzidenz-Detektorkreis 14 prüft, ob die
IdentifizierungsinformationID, die aus der Tabelle TLB 7 ausgelesen
wurde, und der Inhalt des Registers 11 miteinander koinzident sind oder nicht, und falls sie koinzident sind, erzeugt
er einen Ausgang der logischen "1". Außerdem wird das Gültigkeitsbit V aus der Tabelle TLB 7 ausgelesen und der UND-Schaltung
15 zugeführt. Dementsprechend schließt der Zustand, in
dem die UND-Schaltung 15 den Ausgang der logischen "1" erzeugt,
die folgenden Tatsachen ein:
1. Die Zuordnung der virtuellen Adresse, die dieser EA entspricht,
die in das Register 9 gesetzt worden ist, zu der realen Adresse existiert auf der Tabelle TLB 7,
2. die Zuordnung ist gültig,
und
und
3· die Zuordnung entspricht dem gewünschten virtuellen Adressenraum.
Als Ergebnis davon wird ein Signal TLB HIT erzeugt, und die zu
Als Ergebnis davon wird ein Signal TLB HIT erzeugt, und die zu
709850/1176 '
COPY
diesem Zeitpunkt ausgelesene Adresse RA wird als eine übersetzte reale Adresse für einen Zugriff auf den Speicher benutzt.
Wenn zu dieser Zeit die UND-Schaltung 15 nicht einschaltet (durchschaltet),
so bedeutet dies, daß die Zuordnung der gewünschten virtuellen Adresse zu der realen Adresse nicht auf der Tabelle TLB
7 existiert. In diesem Falle wird die reale Adresse durch die Segmenttabelle SGT und die Seitentabelle PT hergeleitet, und das
Zuordnungsergebnis wird auf der Tabelle TLB 7 gespeichert. Dies bedeutet, die hergeleitete reale Adresse wird in das Register 10
gesetzt und auf der Tabelle TLB 7 durch Benutzung der virtuellen Adresse EA, die in das Register 9 gesetzt worden ist, registriert.
Es ist überflüssig, in diesem Falle zu sagen, daß die Identifizierungsinforraation
ID, die den virtuellen Adressenraum anzeigt, in das Register 11 gesetzt und auf der Tabelle TLB 7 registriert
wird. 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 Identifizierungsinformation
ID, die in das Register 11 gesetzt v/orden ist, durch den modifizierenden Kreis 17 in ein vorbestimmtes Muster modifiziert
wird und auf der Tabelle TLB 7 registriert v/ird. Wenn die virtuelle Adresse EA, die in das Register 9 gesetzt worden ist,
nicht in dem oben genannten gemeinsamen Bereich liegt, wird die Identifizierungsinformation ID, die in das Register 11 gesetzt
worden ist, natürlich registriert, wie sie auf der Tabelle 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 die Tabelle TLB wird ein Zugriff ausgeführt, «um sie auszulesen. Falls
die in das Register 9 gesetzte 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.
.../18
709850/1 17G
COPY f
Dementsprechend wird auch in diesem Falle die in das Register 11
gesetzte Identifizierungsinformation 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 die Tabelle TLB 7 mit der in
das Register 9 gesetzten virtuellen Adresse EA ausgeführt, wodurch die Identifizierungsinformation ID aus der entsprechenden
Adresse aus der Tabelle TLB 7 ausgelesen wird. Es ist überflüssig zu sagen, daß die Identifizierungsinformation ID, die
soeben ausgelesen worden ist, ein vorbestimmtes Muster ist, welches in der früheren Registrierung geschrieben worden ist.
Dafür erzeugt der Koinzidenz-Detektorkreis einen Koinzidenz-Ausgang auch dann, wenn die virtuellen Adressenräume verschieden
sind. Dies bedeutet, die UND-Schaltung 15 erzeugt das Signal TLB HIT, und es wird angesehen, daß die gewünschte Zuordnung der
virtuellen zu den realen Adressen auf derTabelle TLB 7 existiert, und die soeben ausgelesene reale Adresse RA wird benutzt. Dies
bedeutet das Folgende: Auch wenn die virtuellen Adressenräume verschieden sind, falls die zu übersetzende virtuelle Adresse EA
dem gemeinsamen Bereich A oder B, dargestellt in Figur 1, entspricht,
wird das Ergebnis der Zuordnung gemeinsam zu den virtuellen Adressenräumen registriert, und nicht für jeden von ihnen.
Anhand der Figuren 7a und 7b wird die Wirkung des Systems dieser Erfindung im folgenden im Detail beschrieben. Die Figuren 7a und
7b zeigen die Tabelle TLB, den Adressen-Übersetzungsmechanismus und das gemeinsame virtuelle Register.
Die Identifizierungsinfonnation ID des virtuellen Adressenraumes, die in jedes Element der Tabelle TLB geschrieben ist, wird in
Gliedern der Hardware verwaltet, und ein Segmenttabellen-Ursprungs-Stapelspeicher
(im folgenden als der STO-Stapelspeicher bezeichnet) hält Segmenttabellen-Ursprungsadressen von mehreren Räumen im
TLB zur gleichen Zeit.
35
35
Der STO-Stapelspeicher ist ein Hochgeschwindigkeitsspeicher, der die Zuordnung der Segmenttabellen-Leitadresse eines jeden Adressenraumes,
angezeigt durch ein Segment-Basis-Register SBR, zu der
709850/1176 --·/19
-19-Identifizierungsinformation ID der Hardware speichert.
Beim Schalten des virtuellen Adressenraumes durch das Betriebssystem
wird der STO-Stapelepeicher zuerst zugewiesen. Wenn eine
Information des gbichen Wertes wie die Segmenttabellen-Leitadresse
im STO-Stapelspeicher existiert, ist der virtuelle Adressenraum bereits im STO-Stapelspeicher registriert, so daß
die Identifizierungsinformation ID des STO-Stapelspeichers gültig ist. Bei Abwesenheit der oben genannten Information wird der
virtuelle Adressenraum aber erneut registriert, wodurch die Identifizierungsinformation ID für den virtuellen Adressenraum
erhalten wird. Und diese Identifizierungsinformation ID wird in
einem Identifizierungsregister IDR gespeichert. Damit ist es möglich, die Wahrscheinlichkeit, daß der Inhalt der Tabelle TLB
bei jeder Schaltung des virtuellen Adressenraumes ungültig wird, bemerkenswert zu senken.
Wenn eine virtuelle Adresse in eine reale Adresse zu übersetzen ist, wird in den Figuren 7a und 7b ein Hinweis auf die Tabelle
TLB gemacht, vor der übersetzung durch Benutzung der Segmenttabelle
SGT und der Seitentabelle PGT.
Wenn dann auf die Tabelle TLB ein Zugriff mit der Adresse (die Seitennummer PGM) der Bits 12 bis 19 des virtuellen Adressenregisters
EAR gemacht worden ist, wird diese Adresse decodiert, und irgendeiner der beispielsweise 256 Eingänge wird ausgewählt.
In einem solchen Falle wird ein AusgangTLB HIT von einem UND-Gatter AL dadurch erhalten, daß die Bedingungen erfüllt werden,
daß das die Gültigkeit anzeigende Bit V, welches die Gültigkeit des ausgewählten Einganges anzeigt, daß ein A-Bit-Muster vom
Identifizierungsregister IDR und daß die Identifizierungsinformation
ID im Eingang miteinander in einem Comparator CMP 1 gemischt werden, um einen Koinzidenz-Ausgang zu erhalten, und daß
die Bits 8 bis 11 des virtuellen Adressenregisters EAR und der virtuellen Adresse EA im Eingang miteinander in einem Comparator
CMP 2 gemischt werden,um einen Koinzidenzausgang zu erhalten. Ein zu dieser Zeit ausgewählter Eingang in die Tabelle TLB wird
in ein TLB Datenregister TDR gesetzt und durch den Ausgang TLB HIT
.../20 709850/1176
wird ein Gatter geöffnet, wodurch die reale Adresse RA im Eingang in Bits 8 bis 9 eines realen Adressenregisters RAR gesetzt
und zur gleichen Zeit Bits 20 bis ?1 des virtuellen Adreasenregisters
EAR als Bits des realen Adressenregisters RAR mit geringem Stellenwert gesetzt werden.
Bevor auf die Tabelle TLB ein Zugriff mit der virtuellen Adresse ausgeführt wird, werden andererseits die hohe Grenzadresse HBA,
die mit Bits 8 bis 15 des gemeinsamen virtuellen Registers CVR repräsentiert wird, und die Adresse (die Segmentnummer SGN), die
mitBits 8 bis 15 des virtuellen Adressenregisters EAR repräsentiert wird, mitetiander in einem Comparator CMP 3 verglichen,und
außerdem werden die niedrige Grenzadresse LBA, die mit Bits 24 bis 31 des gemeinsamen virtuellen Registers CVR repräsentiert
wird, und die Adresse (die Segmentnummer SGN), die mit Bits 8 bis 15 des virtuellen Adressenregisters EAR repräsentiert
wird, miteinander in einem Comparator CMP 4 verglichen. Wenn die beiden die Gültigkeit anzeigenden Bits HV und
LV "1" sind und der gemeinsame Bereich angezeigt wird, wird ein gemeinsames anzeigendes Signal CMN erzeugt, wodurch ein eine
identifizierende Information modifizierender Schaltkreis IDN umgeschaltet wird, um das 4-Bit-Muster überall in 11O" zu modifizieren.
Dies bedeutet, bei 16 Mustern, die mit 4 Bits zu erhalten sind, wird "0" im Fall des gemeinsamen Bereiches benutzt,
und die verbleibendenn1w bis "15" werden für Eingänge anderer
virtueller Adressenräume benutzt. In dem Fall, daß die Identifizierungsinformation
ID des gemeinsamen Bereiches im Bereich der Tabelle TLB gelesen wird, wird außerdem jede oben genannte "0"
darin gelesen, so daß, wenn die beiden miteinander im Comparator CMP 1 verglichen werden, ein Koinzidenz-Ausgang erzeugt wird, um
die reale Adresse des gemeinsamen Bereiches zu erhalten.
Wo der TLB Eingang nicht der Eingang 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.
.../21 709850/1176
Dies bedeutet, die Segmenttabellen-Leitadresse, die durch das Segment-Basis-Register SBR angezeigt wird, und die Segmentnummer
SGN des 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 MS ausgelesenen 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 Segmenttabelleneingängen 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 Tabelleneingangsregister TER zu übertragen.
Danach werden Bits 8 bis 28 des Tabelleneingangsregisters TER und die Seitennumraer PGN, die mit Bits 16 bis 19 des virtuellen
Adressenregisters EAR repräsentiert wird, zusammen addiert, und zwar in dem Addierer GAT 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 Tabelleneingang 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 Daxenbits wird abhängig
davon ausgewählt, ob die Bit-Positionen 29 bis 30 "00", "01", "10" oder "11" sind. Dann wird das Eingangsgatter PGE geöffnet,
um die 2-Byte Daten zu Bits 0 bis 15 des Tabelleneingangsregisters TER zu übertragen.
Die Bits 0 bis 11 des Tabelleneingangsregisters TER werden zu Bits 8 bis 19 des realen Adressenregisters RAR übertragen, und
zur gleichen Zeit werden Bits 20 bis 31 des virtuellen Adressen-
709850/1176 .../22
registers EAR mit geringerem Stellenwert übertragen, da sie zu den Bits 20 bis 31 mit gerhgerem Stellenwert des realen Adressenregisters
RAR gehören. Wenn die Bits des virtuellen Adressenregisters EAR mit geringem Stellenwert in irgendein anderes
Register gesetzt werden, werden sie davon ü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 Eingang der Tabelle TLB registriert,
zusammen mit der Identifizierungsinformation ID.
In diesem Falle übt das TLB Datenregister TDR die Funktion des Auslesens des Eingangs aus der Tabelle TLB aus, um die gesamte
Bit-Byte-Breite, wie oben beschrieben, zu setzen, und dient gleichzeitig dazu, Daten zur Registrierung in der Tabelle TLB nach der
dynamischen Adressenübersetzung zu assemblieren. Dies bedeutet, die virtuelle Adresse EA, die reale Adresse RA, die Identifizierungsinformation
ID und das dieGültigkeit anzeigende Bit V werden in dieser Reihenfolge gesetzt, h Bits 8 bis 11 des virtuellen Adressenregisters
EAR, 12 Bits 0 bis 11 des Tabelleneingangsregisters TER, 4 Bits des Identifizierungsregisters IDR und "1" vom Generator im
TLB Datenregister TDR, indem ein TLB Registrierungsgatter TLB EINTRAG geöffnet wird.
Wenn der in der Tabelle TLB zu registrierende Eingang im TLB Datenregister TDR assembliert worden ist, wird ein TLB Schreibgatter
TLB WRT geöffnet, indem der Kreis der Registration benutzt wird, durch dieses Gatter wird der oben genannte Eingang
in einen von 256 Eingängen der Tabelle TLB geschrieben. Wenn 256 Eingänge alle besetzt sind, wird der frühere Eingang durch
erneutes Schreiben des oben genannten Einganges entfernt- Falls zwei Tabellen TLB eines ersten und eines zweiten Blocks benutzt
werden, wird der Eingang in einen von ihnen, der ausgewählt wurde,
geschrieben.
Zur Anzeige, daß ein bestimmtes Zuordnungsergebnis in der Tabelle
•../23 709850/1176
TLB dem gemeinsamen Bereich entspricht, ist es auch möglich, eine solche Methode zu benutzen, die exakt die gleiche wie gewöhnliche
Methoden in Verbindung mit der Identifizierung virtueller Adressenräume
ist, die jedoch ein spezifisches Bit für jede Zuordnung in der Tabelle TLB zufügt. Bei dieser Methode wird ein weiteres Bit
zu der Tabelle TLB zugefügt, und wenn eine neue Adressenzuordnung darin gespeichert wird, wird, falls die dem gemeinsamen
Bereich entspricht, das oben genannte Bit zu n1" gemacht. Und wo
das oben genannte Bit "1" ist, wie ein Ergebnis eines Zurückholens
der Tabelle TLB, wird der Ausgang vom Koinzidenz-Detektorkreis in Figur 5 zu "1" gemacht, ungeachtet des Ergebnisses von
dessen Koinzidenz-Detektierungs-Operation.
Wenn das Ergebnis einer Adressenzuordnung dem geraeinsamen Bereich
A oder B entspricht, wird es auf der Tabelle TLB gemeinsam zu verschiedenen virtuellen Adressenräumen gespeichert, entsprechend
der Erfindung, wie oben beschrieben worden ist, damit wird die Tabelle TLB effektiv benutzt und außerdem die Effektivität des
Systems erhöht.
709850/1176
Claims (8)
- PATENTANWÄLTEDR. CLAUS REINLANDER DIPL.-ING. KLAUS BERNHARDTOrthstmße 12 ■ D-8000 München 60 · Telefon 832024/5 Telex 5212744 · Telegramme Interpotent6/299Fujitsu Limited, Kawasaki, JapanVerarbeitungssystem mit mehreren virtuellen Adressenräumen Priorität: 8. Juni 1976 - Japan - Aktenzeichen 66807/1976Patentansprücher1 Λ Verarbeitungssystem mit mehreren virtuellen Adressenräumen fUr ein Datenverarbeitungssystem, welches einen Ubersetzungsmechanismus zur Übersetzung einer virtuellen Adresse in eine reale Adresse und einen Speicher zur Speicherung der realenf vom Übersetzungsmechanismus übersetzten Adresse besitzt, und bei dem bei der Datenverarbeitung, wenn eine reale Adresse im Speicher gespeirhert worden ist, die reale Adresse zur Datenverarbeitung benutzt wird, und bei dem, wenn diese reale Adresse nicht gespeichert worden ist, die gewünschte reale Adresse mit dem Übersetzungsmechanismus erhalten wird,dadurch gekennzeichnet , daß dieses Verarbeitungssystem mit mehreren virtuellen Adressenräumen eine AnzeigevorrichtungORIGINAL INSPECTEDfür einen gemeinsamen Bereich zur Anzeige des Umfanges eines gemeinsamen Bereiches, in dem die gleiche virtuelle Adresse in die gleiche reale Adresse in jedem virtuellen Adressenraum übersetzt wird, und einen Comparatorkreis besitzt, der erfaßt, ob die in die reale Adresse zu übersetzende virtuelle Adresse innerhalb des durch die Anzeigevorrichtung für den gemeinsamen Bereich angezeigten Umfanges liegt oder nicht, wobei , wenn die reale Adresse im Speicher gespeichert worden ist, falls die der realen Adresse entsprechende virtuelle Adresse als eine Adresse des gemeinsamen Bereiches angezeigt worden ist, eine den gemeinsamen Bereich identifizierende Information zusammen mit der realen Adresse gespeichert wird, und wobei, falls die der realen Adresse entsprechende virtuelle Adresse als eine Adresse aus einem anderen als dem gemeinsamen Bereich angezeigt wird, eine den virtuellen Adressenraum identifizierende Information zusammen mit der realen Adresse gespeichert wird.
- 2. Verarbeitungssystem mit mehreren virtuellen Adressenräumen nach Anspruch 1, dadurch gekennzeichnet , daß die Anzeigevorrichtung für den gemeinsamen Bereich so ausgebildet ist, daß der Inhalt seiner Anzeige restauriert werden kann, in Entsprechung zu Programmen.
- 3. Verarbeitungssystem mit mehreren virtuellen Adressenräumen nach Anspruch 1, dadurch gekennzeichnet , daß die den gemeinsamen Bereich identifizierende Information ein spezifisches Bit ist, welches zu einem Bit-Muster addiert wird, welches für die den virtuellen Adressenraum identifizierende Information benutzt wird.
- 4. Verarbeitungssystem mit mehreren virtuellen Adressenräumen nach Anspruch 1, dadurch gekennzeichnet , daß der Comparatorkreis, der erfaßt, ob die virtuelle Adresse innerhalb des gemeinsamen Bereiches liegt oder nicht, eine Vorrichtung ist, die jeweils eine hohe Grenzadresse mit einer niedrigen Grenzadresse vergleicht, die in Verbindung mit dem die virtuelle Adresse bildenden zugeordneten Teil das Anzeigemittel für den gemeinsamen
- .../3 7 0 9 8 5 0/1176
- -3-Bereich bilden.
- Verarbeitungssystem mit mehreren virtuellen Adressenräumen nach einem der Ansprüche 1, 3 oder 4, dadurch gekennzeichnet , daß, wenn die virtuelle Adresse durch den Comparatorkreis als innerhalb des gemeinsamen Bereiches liegend erfaßt ist, eine Schaltvorrichtung eines modifizierenden Kreises betätigt wird, der die den virtuellen Adressenraum identifizierende Information modifiziert, um das Bit-Muster zu modifizieren, welches als Information zur Identifizierung des virtuellen Adressenraumes benutzt wird.
- 709flÜ0/117f;
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 true DE2725718A1 (de) | 1977-12-15 |
DE2725718C2 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0007001A1 (de) * | 1978-07-17 | 1980-01-23 | International Business Machines Corporation | Datenverarbeitungseinrichtung mit beschränktem Paging |
EP0010195A1 (de) * | 1978-10-23 | 1980-04-30 | International Business Machines Corporation | Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage |
DE3011552A1 (de) * | 1979-03-30 | 1980-10-09 | Honeywell Inc | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer |
DE4029986A1 (de) * | 1989-09-22 | 1991-04-04 | Hitachi Ltd | Verfahren zum zugreifen auf eine mehrzahl von virtuellen adressraeumen und datenverarbeitungssystem |
Families Citing this family (55)
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 |
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 |
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 |
US4638426A (en) * | 1982-12-30 | 1987-01-20 | 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 |
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 |
US4901230A (en) * | 1983-04-25 | 1990-02-13 | Cray Research, Inc. | Computer vector multiprocessing control with multiple access memory and priority conflict resolution method |
US4636942A (en) * | 1983-04-25 | 1987-01-13 | Cray Research, Inc. | Computer vector multiprocessing control |
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 | 仮想計算機のフアイル制御方式 |
US4745545A (en) * | 1985-06-28 | 1988-05-17 | Cray Research, Inc. | Memory reference control in a multiprocessor |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
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 | 株式会社日立製作所 | 仮想記憶装置における領域管理方法 |
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 |
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 |
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 |
US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
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 |
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 |
US7227994B2 (en) * | 2003-03-20 | 2007-06-05 | International Business Machines Corporation | Method and apparatus for imbedded pattern recognition using dual alternating pointers |
US7366352B2 (en) * | 2003-03-20 | 2008-04-29 | International Business Machines Corporation | Method and apparatus for performing fast closest match in pattern recognition |
JP4085328B2 (ja) * | 2003-04-11 | 2008-05-14 | ソニー株式会社 | 情報処理装置および方法、記録媒体、プログラム、並びに撮像装置 |
US20070011429A1 (en) * | 2005-07-07 | 2007-01-11 | Vasudevan Sangili | Virtual memory key generation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1266026B (de) * | 1962-06-22 | 1968-04-11 | Sperry Rand Corporation, Nevv York N Y (V St A) | Verfahren und Anordnung zum Verhüten einer Änderung eines Speichermhaltes |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1266026B (de) * | 1962-06-22 | 1968-04-11 | Sperry Rand Corporation, Nevv York N Y (V St A) | Verfahren und Anordnung zum Verhüten einer Änderung eines Speichermhaltes |
Non-Patent Citations (3)
Title |
---|
Elektronische Rechenanlagen 1974, H. 6, S. 230 bis 235 * |
IBM-Nachrichten 1973, Bd. 22, S. 349-352 * |
Speiser: Digitale Rechenanlagen", Springer Verlag, 1967, S. 273, 400 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0007001A1 (de) * | 1978-07-17 | 1980-01-23 | International Business Machines Corporation | Datenverarbeitungseinrichtung mit beschränktem Paging |
EP0010195A1 (de) * | 1978-10-23 | 1980-04-30 | International Business Machines Corporation | Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage |
DE3011552A1 (de) * | 1979-03-30 | 1980-10-09 | Honeywell Inc | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer |
DE4029986A1 (de) * | 1989-09-22 | 1991-04-04 | Hitachi Ltd | Verfahren zum zugreifen auf eine mehrzahl von virtuellen adressraeumen und datenverarbeitungssystem |
Also Published As
Publication number | Publication date |
---|---|
JPS52149444A (en) | 1977-12-12 |
CA1074455A (en) | 1980-03-25 |
US4145738A (en) | 1979-03-20 |
DE2725718C2 (de) | 1985-05-02 |
ES459518A1 (es) | 1978-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2725718A1 (de) | Verarbeitungssystem mit mehreren virtuellen adressenraeumen | |
DE3011552C2 (de) | ||
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE2807476C2 (de) | Speichereinrichtung mit mehreren virtuellen Adreßräumen | |
DE3833933C2 (de) | Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion | |
DE69033540T2 (de) | Verfahren zur Verwaltung von in Familien aufgeteilten mehrfachen virtuellen Speichern und entsprechende Struktur | |
DE2521436C3 (de) | Informationswiedergewinnungsanordnung | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE2227882A1 (de) | Virtuelle Speicheranordnung | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE2235841A1 (de) | Anordnung zur speichersteuerung mit logischer und echter adressierung | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE2350884A1 (de) | Datenverarbeitungssystem | |
DE2637054B2 (de) | ||
DE2703559C2 (de) | ||
DE2310631A1 (de) | Speicherhierarchie fuer ein datenverarbeitungssystem | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
DE2558417A1 (de) | Datenverarbeitungssystem | |
EP1658575B1 (de) | Datenübertragungssystem und verfahren zum betreiben eines datenübertragungssystems | |
DE3333894C2 (de) | ||
DE3025167C2 (de) | Datenverarbeitungseinrichtung |
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 |