DE2725718A1 - Verarbeitungssystem mit mehreren virtuellen adressenraeumen - Google Patents

Verarbeitungssystem mit mehreren virtuellen adressenraeumen

Info

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
Application number
DE19772725718
Other languages
English (en)
Other versions
DE2725718C2 (de
Inventor
Koichi Dipl Ing Inoue
Hajime Dipl Ing Nonogaki
Kazuyuki Dipl Ing Shimizu
Tatsuo Dipl Ing 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

-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
3· die Zuordnung entspricht dem gewünschten virtuellen Adressenraum.
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
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)

  1. PATENTANWÄLTE
    DR. CLAUS REINLANDER DIPL.-ING. KLAUS BERNHARDT
    Orthstmße 12 ■ D-8000 München 60 · Telefon 832024/5 Telex 5212744 · Telegramme Interpotent
    6/299
    Fujitsu Limited, Kawasaki, Japan
    Verarbeitungssystem mit mehreren virtuellen Adressenräumen Priorität: 8. Juni 1976 - Japan - Aktenzeichen 66807/1976
    Patentansprüche
    r1 Λ 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 Anzeigevorrichtung
    ORIGINAL INSPECTED
    fü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. 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. 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. 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
  5. .../3 7 0 9 8 5 0/1176
  6. -3-Bereich bilden.
  7. 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.
  8. 709flÜ0/117f;
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 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)

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

* 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
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
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
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

Citations (1)

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

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

Patent Citations (1)

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

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

* Cited by examiner, † Cited by third party
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
DE2725718C2 (de) 1985-05-02
ES459518A1 (es) 1978-10-01
US4145738A (en) 1979-03-20
JPS52149444A (en) 1977-12-12
CA1074455A (en) 1980-03-25

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
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2235841A1 (de) Anordnung zur speichersteuerung mit logischer und echter adressierung
DE2750721A1 (de) Ein/ausgabe-system
DE2350884A1 (de) Datenverarbeitungssystem
DE2637054A1 (de) Steuervorrichtung fuer einen pufferspeicher
DE2703559C2 (de)
DE2310631B2 (de) Speicherhierarchie fur ein Datenverarbeitungssystem
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE2551740A1 (de) Datenverarbeitungseinheit
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE2558417A1 (de) Datenverarbeitungssystem
EP1658575B1 (de) Datenübertragungssystem und verfahren zum betreiben eines datenübertragungssystems
DE3333894C2 (de)
CH495584A (de) Datenverarbeitungsanlage
DE3025167C2 (de) Datenverarbeitungseinrichtung
DE2516050A1 (de) Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem

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