DE2332603C3 - Virtuelle Speichereinrichtung mit zusätzlichem Pufferspeicher - Google Patents
Virtuelle Speichereinrichtung mit zusätzlichem PufferspeicherInfo
- Publication number
- DE2332603C3 DE2332603C3 DE19732332603 DE2332603A DE2332603C3 DE 2332603 C3 DE2332603 C3 DE 2332603C3 DE 19732332603 DE19732332603 DE 19732332603 DE 2332603 A DE2332603 A DE 2332603A DE 2332603 C3 DE2332603 C3 DE 2332603C3
- Authority
- DE
- Germany
- Prior art keywords
- memory
- address
- virtual
- real
- translation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000015654 memory Effects 0.000 title claims description 160
- 230000000875 corresponding Effects 0.000 claims description 13
- 241000625014 Vir Species 0.000 claims description 2
- 230000001419 dependent Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 8
- 230000014616 translation Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000002965 rope Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Description
durchführen zu können. Eine solche Übersetzung erfordert
im Normalfall zwei Hauptspeicherzugriffe, und zwar einmal zur Segmenttabelle und dann zur Seitentabelle.
Um diesen zeitraubenden Übersctzungsprozeß nicht für jede Datenanforderung ausführen zu müssen,
werden die Obersetzungen zu den laufend verwendeten virtuellen Adressen in einem besonderen Speicher
gespeichert, der als Übersetzungsnebentabelle bezeichnet
werden kann. Die gewünschte Übersetzung kann also von diesem schnell zugreifbaren Speicher rasch erhalten
werden. Die Unterteilung der virtuellen Adresse in einen Segmentteil und einen Seitenteil, welche insbesondere
für große virtuelle Speicherräume und Mulitprozessoranlagen notwendig ist, ist wohl nach der genannten
USA.-Patentschrift, jedoch nicht nach der genannten deutschen Offenlegungsschrift möglich. Die in
der USA.-Patentschrift verwendete assoziative Übersetzungsnebentabelle
hat jedoch den Nachteil, daß für jede Übersetzung der gesamte virtuelle Adressenteil
gespeichert werden muß, wobei bei jedem Zugriff zu dieser Nebentabelle alle gespeicherten virtuellen
Adreßteile mit der angebotenen virtuellen Adresse verglichen werden müssen. Im Falle der USA.-Patentschrift
stellt dies keinen besonders schwerwiegenden Nachteil dar, da darin die Nebentabelle insgesamt nur
aus acht Registern besteht Die Wirksamkeit einer solchen kurzen Übersetzungsnebentabelle ist jedoch äußerst
begrenzt und die Tabellenlänge sollte zumindest das 5- bis lOfache betragen. Bei einer Übersetzungsnebentabelle
jedoch von solcher Größe würde ein Vergleich der angebotenen virtuellen Adresse mit allen gespeicherten
virtuellen Adreßteilen bei seriellem Vergleich zu lange dauern, bzw. bei parallelem Vergleich
zu hohen Aufwand erfordern.
Ein weiteres Problem ergibt sich daraus, daß in den modernen Datenverarbeitungsanlagen mit hoher Verarbeitungsgeschwindigkeit
die Zugriffe der zentralen Verarbeitungseinheit nicht zum Hauptspeicher, sondern
zu einem schnellen Pufferspeicher erfolgen. Der Zweck eines solchen Pufferspeichers besteht also darin,
die Geschwindigkeit der Erledigung von Datenanforderungen zu erhöhen. Der Pufferspeicher speichert
vorzugsweise eine bestimmte Anzahl von Datenblocks, deren Größe vorzusweise gleich ist den verwendeten
Datenseiten. Wenn der Datenblock, welcher die angeforderten Daten enthält, sich im Pufferspeicher befindet,
kann die Datenanforderung sofort ausgeführt werden. Falls der Block im Pufferspeicher vorhanden ist,
muß er erst aus dem Hauptspeicher in den Pufferspeicher übertragen werden, wobei zugleich auch die gewünschten
Daten sofort zur zentralen Verarbeitungseinheit übertragen werden können.
Bei Verwendung eines solchen Pufferspeichers werden die Datenanforderungen der zentralen Verarbeitungseinheit
stets zuerst mit den in einem Zuordnungsspeicher enthaltenen Bezeichnungen aller im Pufferspeicher
gespeicherten Datenblocks verglichen. Bei Datenanforderungen, welche das Speichern von Daten
im Pufferspeicher beinhalten, werden diese Daten zugleich auch im Hauptspeicher gespeichert. Bei
Kanalanforderungen ist es auch möglich, Abrufanforderungen nur zum Hauptspeicher zu leiten, hingegen
Schreibvorgänge sowohl im Hauptspeicher als auch im Pufferspeicher durchzuführen, falls der betreffende Datenblock
auch im Pufferspeicher gespeichert ist.
Eine Anordnung mit einem externen Unterstützungsspeieher,
mit einem Hauptspeicher und einem schnellen Puffersneicher ist z. B. in der deutschen Offenlegungsschrift
1 956 604 beschrieben. Im Pufferspeicher ist ein Adressenbereich und ein entsprechender Datenbereich
vorgesehen. Der Datenbereich enthält z. B. Datenblocks
zu 32 Bytes oder vier Doppelworten, während der Adressenbereich kongruent zum Datenbereich aufgebaut
ist und in den entsprechenden Speicherstellen eine Bezeichnung, z. B. die Adresse, der in den entsprechenden
Speicherstellen des Datenbereiches gespeicherten Datenblöcke enthält In der genannten Einrichtung
werden keine virtuellen Adressen verwendet, so daß der Blockadressenteil der Adresse von der zentralen
Verarbeitungseinheit oder vom Kanal direkt mit den im Adressenbereich gespeicherten Blockadressen
verglichen werden kann, um zu bestimmen, ob der betreffende Datenblock im Pufferspeicher gespeichert ist.
Wenn jedoch die zentrale Verarbeitungseinheit virtuelle Adressen und ein Kanal reale Adressen verwendet,
ergeben sich Schwierigkeiten bei der Bestimmung, ob der Datenblock mit der bestimmten der virtuellen
Adresse entsprechenden realen Adresse im Pufferspeicher gespeichert ist.
Wenn der Pufferspeicher so aufgebaut wird, daß die Speicherstelle eines Datenblocks im Pufferspeicher
eine direkte Beziehung zu der virtuellen Adresse dieses Datenblocks hat, entfällt naturgemäß eine Übersetzung
der von der zentralen Verarbeitungseinheit gelieferten virtuellen Adresse eines Datenblocks in seine reale
Adresse. Verzögerungen ergeben sich wohl dann, wenn sich der Datenblock nicht im Pufferspeicher befindet
und entweder vom Hauptspeicher oder vom Unterstützungsspeicher geholt werden muß. Insgesamt könnte
jedoch ein Zeitgewinn deshalb erzielt werden, weil Zugriffe der zentralen Verarbeitungseinheit zum Pufferspeicher
weitaus häufiger sind, als die obengenannte Blockübertragung.
Es ergeben sich jedoch große Schwierigkeiten bei der in einem virtuellen Speichersystem stets notwendigen
Übertragung von Datenseiten zwischen dem Hauptspeicher und dem Unterstützungsspeicher. Wenn
sich nämlich zwei verschiedene virtuelle Adressen auf die gleiche reale Adresse beziehen, wird der virtuellorientierte
Pufferspeicher die Daten vom realen Hauptspeicher für jede verschiedene virtuelle Adresse
in verschiedenen Speicherstellen speichern. Es wäre deshalb notwendig, alle Anforderungen zunächst in
einer besonderen wechselseitigen Überprüfungseinrichtung zu prüfen.
Ein anderes Problem entsteht bei der Entfernung von Eintragungen in der Segment- oder Seitentabelle.
Die Daten im Pufferspeicher, welche sich auf solche zu entfernende Eintragungen beziehen, müssen nämlich
ihren Zusammenhang zum Unterstützungsspeicher behalten, d. h. ihre reale Speicherstelle muß aufbewahrt
werden. Dies macht eine Abtastung und Überprüfung des virtuell orientierten Pufferspeichers bei jeder Veränderung
in den Segment- oder Seitentabellen notwendig.
Schließlich ergeben sich auch bei Verwendung eines virtuell orientierten Pufferspeichers Schwierigkeiten
bei der Verwendung von Speicherschutz-Schlüsselworten. Solche Schlüsselworte sind nämlich realadressenorientiert
und müssen bei jeder Datenanforderung der zentralen Verarbeitungseinheit überprüft werden. Da
jedoch die Verarbeitungseinheit virtuelle Adressen liefert, erfordert die Überprüfung der Schlüsselworte eine
umständliche Behandlung.
Der Erfindung liegt daher die Aufgabe zugrunde, aus einer virtuellen Speichereinrichtung der eingangs be-
schriebenen Art eine dreistufige Speich«_rhierachie bei
Verwendung von virtuellen Adressen durch die zentrale Verarbeitungseinrichtung zu machen, wobei jedoch
der Zugriff zum Pufferspeicher zur Vereinfachung und Beschleunigung der Übertragung der Datenblocks und
der Verwendung von Speicherschlüsselworten realadressenorientiert
ausgeführt wird.
Diese Aufgabe wird durch die im Kennzeichen des Hauptanspruchs beschriebene Einrichtung gelöst.
Da die Adressierung des Pufferspeichers gemäß der Erfindung mit realen Adressen erfolgt, entfällt die Notwendigkeit
der Verwendung einer speziellen Überprüfungseinrichtung, wie sie bei Verwendung eines virtuell
orientierten Pufferspeichers notwendig wäre. Da ferner die Daten im Pufferspeicher mit ihrer realen Adresse
adressiert werden, entfällt auch die Notwendigkeit der Abtastung des Pufferspeichers, wenn Eintragungen in
der Segment- oder Seitentabelle verändert werden sollen. Ebenso ergibt sich hierdurch eine Vereinfachung
bei der Verwendung von realadressenorientierten Speicherschlüsselworten.
Da die Übersetzungsnebentabelle mit einem virtuellen Teil der von der zentralen Verarbeitungseinheit gelieferten
virtuellen Datenadresse adressiert wird, entfällt oder verringert sich zumindest der notwendige
Zeitaufwand zum Vergleich der angebotenen virtuellen Adresse mit eventuell gespeicherten virtuellen Adressenbits.
Die Verwendung von realen Bezeichnungen für die im Pufferspeicher gespeicherten Datenblocks vereinfacht
den Vergleich dieser Bezeichnungen mit den aus dem Zuordnungsspeicher ausgelesenen realen Adressen,
da beide sofort ohne weitere Übersetzung miteinander verglichen werden können.
Insgesamt ermöglicht also die Erfindung eine ganz wesentliche Zeiteinsparung bei Zugriffen zum schnellen
Pufferspeicher.
Ein Ausführungsbeispiel der Erfindung soll nun an Hand von Figuren beschrieben werden. Es zeigt
F i g. 1 das Format einer virtuellen Adresse,
F i g. 2 eine Einrichtung zur Übersetzung von virtuellen Adressen in reale Adressen,
F i g. 3 das Format von Eintragungen in Segmenttabellen und Seitentabellen,
F i g. 4 eine bevorzugte Ausführungsform der Erfindung,
F i g. 5 ein Zeitdiagramm zur Darstellung der in der Einrichtung nach F i g. 4 ablaufenden Vorgänge,
F i g. 6 das Format von Eintragungen in einer Übersetzungsnefoentabeile
und
Fig.7 die genauere Darstellung der erfindungsgemäßen
Obersetzungseinrichtung.
Virtuelle Adresse
In F i g. 1 ist ein bevorzugtes Format einer virtuellen Adresse gezeigt Die 24 Bits der virtuellen Adresse sind
in drei Felder unterteilt: Ein Segmentfeld (SX), welches
die Bits 8-15 umfaßt ein Seitenfeld (PX), welches aus
den Bits 16-20 besteht und ein Bytefeld, welches die
Bits 21-31 enthält Gemäß diesem Format besteht der virtuelle Speicher aus 256 Segmenten, von denen jedes
bis zu 32 Seiten aufweisen kann. Eine Seite kann bis zu 2048 Bytes enthalten. Die Aufteilung der Adressenbits
auf die einzelnen Felder könnte jedoch auch in anderer Weise erfolgen, z. B. können for das Seitenfeld die Bits
8-11 und für das Segmentfeld die Bits 12-19 vorgesehen
werdea Für das Bytefeld würden dann die Bits 20-31 zur Verfügung stehen. Gemäß einem solchen Format
würde der virtuelle Speicher aus 16 Segmenten zu je maximal 256 Seiten zu je maximal 4096 Bytes bestehen.
Die Bits 0-7 werden in der gezeigten Ausführungsform nicht benutzt. Sie können dazu dienen, den virtuellen
Speicherbereich bis auf eine 32-Bitadresse auszuweiten.
In einem solchen erweiterten Speichersystem könnten über 4 Milliarden Bytes gespeichert werden.
Mit dem Segmentfeld wird eine Speicherstelle in der
ίο Segmenttabelle adressiert. In dieser Speicherstelle ist
ein Wert gespeichert, welcher die Beginnadresse derjenigen Seitentabelle angibt, welche zu dem vom Segmentfeld
definierten Segment gehört. Mit dem Seitenfeld wird eine Speicherstelle in der Seitentabelle adressiert.
In dieser Speicherstelle ist ein Wert gespeichert, welcher die reale Adresse der Seite im Hauptspeicher
angibt. Bei der dynamischen Adressenübersetzung einer virtuellen Adresse in eine reale Adresse wird das
Bytefeld der virtuellen Adresse nicht verändert, sondem ergibt zusammen mit der durch die Übersetzung
gefundenen realen Adresse der Seite die gesuchte reale Adresse eines Bytes im Hauptspeicher.
Adressenübersetzung
Der Übersetzungsvorgang soll nun an Hand von F i g. 2 erläutert werden. Die Übersetzung erfolgt in
zwei aufeinanderfolgenden Schritten, wobei zunächst die Segmenttabelle und dann die Seitentabelle adressiert
wird. Der Segmentteil SX der virtullen Adresse wird zur Beginnadresse STO, welche im Steuerregister
2 gespeichert ist, hinzuaddiert. Mit der somit erhaltenen Adresse wird die Speicherstelle 4 der Segmenttabelle
6 ausgelesen. In dieser Speicherstelle ist die Beginnadresse PTO der Seitentabelle gespeichert, zu
der der Seitenteil der virtuellen Adresse hinzuaddiert wird. Mit der somit erhaltenden Adresse wird die
Speicherstelle 8 der Seitentabelle 10 adressiert. In dieser Speicherstelle ist die gesuchte reale Adresse dieser
Seite im Kernspeicher enthalten und diese reale Seitcnadresse und die reale Byteadresse werden nun aneinandergereiht
und ergeben damit die gesuchte reale Byteadresse.
Um nicht bei jedem Zugriff zum Hauptspeicher
einen solchen zweistufigen Übersetzungsvorgang
durchführen zu müssen, ist eine Nebentabelle vorgesehen. In dieser Nebentabelle werden die Segment- und
Seitenteile von virtuellen Adressen zusammen mit den dazugehörigen realen Adressen, weiche aus der Seiten
tabelle ausgelesen wurden, gespeichert Die Nebenta
belle wird dabei dauernd auf den neuesten Stand ge bracht und speichert die zugehörigen virtuellen unc
realen Adressen von Seiten, zu denen kürzlich ein Zu
griff erfolgte. Zum Beginn einer Adressenübersetzunj wird daher die Nebentabelle an Hand der verlangt«
virtuellen Adresse überprüft um festzustellen, ob di<
dazugehörige reale Adresse nicht leicht bereits in de NebentabeJle gespeichert ist Wenn dies der Fall ist
wird die reale Adresse aus der Nebentabelle ausgelesei
und mit dem realen Byteteil der virtuellen Adresse zu sammengefügt und damit der Hauptspeicher adressien
Wenn zu der angebotenen virtuellen Adresse kein Eintragung in der Nebentabelle gefunden wird, win
der oben beschriebene zweistufige Obersetzungsvor gang durchgeführt und die gefundene Übersetzung dai
aufhin in der Nebentabelle gespeichert.
In F i g. 3 sind bevorzugte Formate für die Segment tabellencimragungen 4 und Seitentabelleneintragunge
8 gezeigt. Zu jedem virtuellen Adressenraum gibt e
eine Segmenttabelle und die dazugehörige Seiteniabel-Ie. Die Beginnadresse und die Länge der gerade aktiven
Segmenttabelle sind im Steuerregister (F i g. 2) gespeichert. Die Segmenttabelleneintragung 4 enthält ein
Längenfeld (LTH) in den Bits 0-3, welches die Länge der Seitentabelle in Inkrementen angibt, welche gleich
sind einem sechzehntel der maximalen Größe. Das Bit 31, das I-Bit, zeigt an, ob die Information, welche in der
Segmenttabelleneintragung enthalten ist. gültig ist. Wenn das I-Bit 1 ist, kann die Eintragung nicht zu einer
Übersetzung benutzt werden. Die Seilentabelleneintragung 8 enthält in den Bitpositionen 0-12 die 13 hochwertigen
Bits der realen Adresse. Wie bereits beschrieben, werden die niederwertigen Bits der virtuellen
Adressen, welche die reale Byteadresse darstellen, neben die hochwertigen Bits von der Seitentabelle gesetzt
und geben somit die Byteverschiebung innerhalb der Seite an. In jeder Seitentabelleneintragung ist
außerdem ein Gültigkeitsbit vorgesehen. Wenn dieses Bit 1 ist, kann die Eintragung nicht zu einer Überset- ao
zung verwendet werden.
Übersetzungsvorgang unter Verwendung der Übersetzungsnebentabelle
Die obigen Ausführungen bezogen sich auf bekannte Einrichtungen, welche in dem Ausführungsbeispiel der
Erfindung Verwendung finden. Im folgenden sollen nun die Teile des Ausführungsbeispieles beschrieben werden,
welche eine Verbesserung der bekannten dynamisehen Übersetzungseinrichtungen und der dazu notwendigen
Datenübertragungseinrichtungen ergeben.
In F i g. 4 sind die wesentlichsten Teile des Ausführungsbeispieles
der Erfindung gezeigt. Die von der zentralen Verarbeitungseinheit CPU angebotene virtuelle
Adresse 12 wird gleichzeitig dazu benutzt, die Übersetzungsnebentabelle (TLA T) 14 und den Zuordnungsspeicher
16 zu adressieren. In der Übersetzungsnebentabelle 14 sind Übersetzungen der kürzlich verwendeten virtuellen
Adressen gespeichert, während der Zuord-40 nungsspeicher 16 die realen Adressen von Daten enthält,
welche sich gerade im schnellen Pufferspeicher befinden. Der Aufbau der Übersetzungsnebentabelle und
des Zuordnungsspeichers kann auf verschiedene bekannte Arten erfolgen. Zum Beispiel können hierzu as-45
soziative Speicher verwendet werden. Es ist aber auch möglich, die Tabellen durch Adressenbits der virtuellen
Adresse zu adressieren. Dabei kann die Übersetzungsnebentabelle durch Teile des virtuellen Teiles d. h. des
Segmentteiles und des Seitenteiles, der virtuellen Adresse und der Zuordnungsspeicher durch Bits des
realen Teiles, d. h. des Byteteiles, der virtuellen Adresse
adressiert werden. Im allgemeinen ist es vorteilhaft nur einen Teil der virtuellen Adresse als Zugriffsadresse
zur ÜbersetzungsnebentabeHe zu benutzen. In diesen^
Falle wird der Teil der virtuellen Adresse, welcher nicht «1s Zugriffsadresse zur ÜbersetzungsnebentabeHe benutzt wurde, von dem virtuellen Teil der ÜbersetzungsnebentabeHe ausgelesen und mit dem übereinstimmenden Teil der von der zentralen Verarbeitungseinheit
gelieferten virtuellen Adresse 12 durch einen Vergleicher 18 verglichen.
Um sicherzustellen, daß es sich bei den im Pufferspeicher gespeicherten Daten auch wirklich um die Daten handelt, welche von der virtuellen Adresse 12 ver-65
langt werden, wird die reale Adresse, welche von der Übersetzungsnebentabelle 14 ausgelesen wurde, mit
der realen Adresse, welche von dem Zuordnungsspeicher 16 ausgelesen wurde, in einem Vergleicher 20
verglichen. Die Ausgangssignale der Vergleicher 18 und 20 bilden die Eingangssignale eines UND-Gliedes
22, welches ein Ausgangssignal auf der Leitung 24 erzeugt, wenn sich die gewünschten Daten im Pufferspeicher
befinden. Die geeigneten Teile der virtuellen Adresse und der realen Adresse werden auf den Leitungen
26 und 28 zum Pufferspeicheradressenregister 30 gebracht, so daß nunmehr ein Zugriff zu den gewünschten
Daten im Pufferspeicher erfolgen kann.
Wenn die reale Adresse, weiche der virtuellen Adresse 12 entspricht, sich in der ÜbersetzungsnebentabeHe
14 befindet, die Daten jedoch nicht im Pufferspeicher vorhanden sind, wird durch das durch den Inverter 32
invertierte Ausgangssignal des Vergleichers 20, zusammen mit dem Ausgangssignal des Vergleichers 18 ein
UND-Glied 34 angesteuert, welches auf der Leitung 36 ein Signal erzeugt, das anzeigt, daß ein Hauptspeicherzugriff
durchgeführt werden muß.
Wenn die virtuelle Adresse 12 nicht gleich ist einer der in der ÜbersetzungsnebentabeHe 14 gespeicherten
virtuellen Adressen, wird durch das Ausgangssignal des Vergleichers 18 und das lnverier-UND-Glied 38 ein Signal
auf der Leitung 40 erzeugt, welches anzeigt, daß der oben im Zusammenhang mit der F i g. 2 beschriebene
Übersetzungsvorgang durchgeführt werden muß.
In F i g. 5 ist die Arbeitsweise der Einrichtung nach F i g. 4 noch einmal in zeitlicher Reihenfolge zusammengefaßt.
Aus F i g. 5 ist auch ersichtlich, welche Vorgänge zu gleicher Zeit ablaufen. Die virtuelle Adresse
von der zentralen Verarbeitungseinheit wird zugleich der Übersetzungsnebentabelle TLATund dem Zuordnungsspeicher
angeboten. Hierauf wird zu gleicher Zeit die in der Übersetzungsnebentabelle enthaltene virtuelle
Adresse mit der angebotenen virtuellen Adrer .ε und
die von der Übersetzungsnebentabelle ausgelesene reale Adresse mit der vom Zuordnungsspeicher ausgelesenen
realen Adresse verglichen. Wenn in beiden Vergleichen eine Gleichheit festgestellt wird, kann der gewünschte
Zugriff (Lesen oder Schreiben) zum Pufferspeicher durchgeführt werden.
In einer bevorzugten Ausführungsform enthält die ÜbersetzungsnebentabeHe 64 Wörter, wobei in jedem
Wort zwei virtuelle Adressen zusammen mit den entsprechenden realen Adressen gespeichert sind. Jedes
Wort weist Eintragungen für eine geradzahlige Seite und Eintragungen für die darauffolgende ungeradzahlige
Seite auf. Wenn ein Zugriff zur ÜbersetzungsnebentabeHe durchgeführt wird, wird die geeignete Hälfte
des adressierten Wortes durch das niederwertige Bit (Bit 20) des Seitenteiles der virtuellen Adresse ausgelesen. In F i g. 6 sind Einzelheiten des Formates der in der
ÜbersetzungsnebentabeHe gespeicherten Worte gezeigt Beide Hälften dieser Worte sind gleich im Format. Wie gezeigt enthält eine Hälfte 27 Bits. Wie bereits oben erwähnt enthalten der Segmentteil und der
Seitenteil der virtuellen Adresse zusammen 13 Bits. In einer bevorzugten Ausführungsform werden sechs dieser Bits dazu gebraucht die ÜbersetzungsnebentabeHe
zu adressieren und wird ein siebentes Bit. wie oben erwähnt dazu benutzt die geeignete Hälfte des adressierten Wortes auszuwählen. Es brauchen also nur
sechs Bits der virtuellen Adresse, welche in F i g. 6 mit VIR bezeichnet sind, in einer Speicherstelle der Überseizungsnebentabelie gespeichert werden. Em aus
zwölfs Bit bestehender Teil des Wortes enthält die zehn realen Adressenbiis, welche die Übersetzung des
virtuellen Segment· und Seitenteiles darsteilen, sowie
709608/448
2 332 (303
ίο
ein I-Bit und ein Paritätsbit P Sechs Bits, welche in
F i g. 6 STPRO bezeichnet sind, können für Speicherschutzzwecke verwendet werden.
Außerdem enthält jede Eintragung in der Übersetzungsnebentabellc
zwei codierte Gültigkeitsbiis, welche in F i g. 6 mit STO bezeichnet sind. Diese Bits, zeigen
an, ob eine Eintragung gültig ist oder ungültig. Eine gültige Eintragung kann sich auf einen von drei verschiedenen
Adressenräumen, je nach Wert der codierten STO-Bits, beziehen. Die Beginnadressen der Seitentabellen,
welche den codierten Bits entsprechen, werden in einem speziellen Register gespeichert. Ihre Zuweisung
erfolgt z. B. unter Steuerung des Mikroprogramms. Die vier durch die codierten 5TO-Bits angegebenen
Werte haben folgende Bedeutung: 00 zeigt eine ungültige Eintragung an; 01 zeigt eine gültige Eintragung
an. welche zu dem ersten STO-Wert, welcher in dem geannten Register gespeichert ist, gehört: 10 zeigt
eine gültige mit einem zweiten STO-Wert verbundene
Eintragung an und 11 zeigt eine mit einem dritten STO-Wert
verbundene Eintragung an. Sobald das Steuerregister 2 (s. Fi g. 2) mit der Beginnadresse einer Segmenttabelle
geladen wird, wird durch das Mikroprogramm festgelegt, ob sich diese Segmenttabelle auf
einen der drei STO-Werte in dem speziellen Register
bezieht. Wenn die Segmenttabellen-Beginnadresse, welche in das Steuerregister 2 geladen wird, nicht
einem bestehenden STO-Wert entspricht, erfolgt eine
Zuweisung. Wenn alle drei codierten STO-Werte aktiv sind, und keiner davon gleich ist dem neuen, in das
Steuerregister 2 geladenen Wert, wird der älteste Wert in der Übersetzungsnebentabeile gelöscht, indem das
STO-Bit, welches sich auf diese Tabelle bezog, auf 00 gesetzt wird, und die codierten Bits erfahren eine neue
Zuweisung zu dem neuen Wert.
Zur Adressierung der Übersetzungsnebentabelle werden drei virtuelle Adressenbits des Segmentteiles
(Bits 13, 14 und 15) und drei virtuellen Adressenbits des Seitenteiles (Bits 17, 18 und 19) verwendet und damit
eine der 64 Speicherstellen ausgewählt. Das niedrigste Segmentteilbit (Bit 20) wählt zwischen dem ungeraden
oder geraden Teil der Eintragungen aus. Die in dei Übersetzungsnebentabelle gespeicherten Bits sind nach
der gezeigten bevorzugten Ausführungsform die Bits 8, 9, 10, 11, 12 und 16. Um eine virtuelle Adresse zu übersetzen,
wird die Übersetzungsnebentabelle an einer der 64 Adressen angesteuert und die ungerade oder gerade
Eintragung ausgewählt. Die übrigen hochwertigen virtuellen Bits in Ger von der zentralen Verarbeitungseinheit
gelieferten Adresse werden mit den hochwertigen virtuellen Bits, welche von der Tabelle ausgelesen wurden, verglichen. Bei Gleichheit wird der entsprechende
reale Adressenteil von der Tabelle ausgelesen. Diese reale Adresse wird dann mit der vom Zuordnungsspeicher erhaltenen realen Adresse verglichen, um zu bestimmen, ob die gewünschten Daten im Pufferspeicher
gespeichert sind. Wenn dies nicht der Fall ist, muß ein
Zugriff zum Haup speicner durchgeführt werden.
Wenn in der Übersetzungsnebentabeile keine Eintragung zu der gewünschten virtuellen Adresse gefunden
wurde, muß die eingangs geschilderte Adressenübersetzung (s. F i g. 2) durchgeführt und das Ergebnis in der
Übersetzungsnebentabeile abgespeichert werden. Zu gleicher Zeit wird nach der bevorzugten Ausführungsform die entsprechende ungerade oder gerade Seite
auch übersetzt (wenn sie gültig ist) und das Ergebnis in der Übersetzungsnebentabeile gespeichert, so daß zwei
Übersetzungen zugleich ausgeführt werden.
Weitere Einzelheiten der gezeigten Ausführungsform sind aus F i g. 7 ersichtlich. Die Bits 8-31 der von
der zentralen Verarbeitungseinheit gelieferten virtuellen Adresse werden auf eine Speichersammelleitung 44
gegeben und damit innerhalb der Datenverarbeitungsanlage verteilt. Die Bits 13-15 und 17-19 werden zur
Adressierung der Übersetzungsnebentabeile 46, welche die virtuellen Adressenbits 8-12 und 16 gespeichert hat,
verwendet. Der Teil der Übersetzungsnebentabeile,
ίο welcher Übersetzungen für gerade virtuelle Adressen
enthält, liefert diese virtuellen Adressenbits 7ii einer
Torschaltung 48, während der Teil der Tabelle, welcher ungeradzahlige virtuelle Adressen enthält, die betreffenden
virtuellen Adressenbits an eine Torschaltung 50 liefert. Wenn das Bit 20 der virtuellen Adresse Null ist.
wird die Torschaltung 48 angesteuert und damit die sechs virtuellen Adressenbits zu einem Vergleicher 52
gesendet. Wenn das Bit 20 Eins ist, wird die Torschaltung 50 geöffnet und kommen die virtuellen Adressenbits
des ungeraden Teiles der Übersetzungsnebentabeile zum Vergleicher 52. Die Bits 8-12 und 16 der virtuellen
Adresse werden auch einem Eingang des Vergleichers 52 zugeführt. Wenn der Vergleicher 52 Gleichheit
feststellt, wird ein Signal auf der Leitung 54 eras zeugt. Zur gleichen Zeit, in der ein Zugriff zur Übersetzungsnebentabelle
durchgeführt wird, wird auch ein Zugriff zum Zuordnungsspeicher durchgeführt, indem
die Bits 21 bis 26 der von der zentralen Verarbeitungseinheit gelieferten virtuellen Adresse als Zugriffsadres-
se verwendet werden. Diese Bits der virtuellen Adresse stellen schon eine reale Hauptspeicheradresse dar. Daher
ist ihr Gebrauch zur Adressierung des Zuordnungsspeichers 56 vereinbar mit der Realadressen-Orientie
rung des Pufferspeichers.
In einer bevorzugten Ausführungsform enthält der Zuordnungsspeicher 128 Worte, wobei in jedem Wori
zwei reale Adressen gespeichert sind. Mit den Bits 21-26 kann deshalb ein Zugriff zu zwei realen Adresser
durchgeführt werden. Die Auswahl unter diesen beider Adressen wird dadurch getroffen, daß das Ausgangssignal
des Zuordnungsspeichers 56 mit dem Bit 20 dei realen Adresse decodiert wird.
Wie aus F i g. 7 ersichtlich ist. wird das Bit 20 dei
virtuellen Adresse dazu verwendet, eine der beider
Torschaltungen 62 oder 64 zu öffnen und damit eine Auswahl des geraden oder ungeraden Teils der Über
setzungsnebentabelle zu treffen. Nach dieser Auswah wird das Bit 20 dem Adressendecoder des Zuordnungs
Speichers 56 zugeführt. Sobald das Bit 20 festgestellt ist
wird eine der beiden realen Adressen des Zuordnungs
Speichers 56 zu einem zugehörigen Vergleicher 58 odei 60 ausgelesen. Im wesentlichen zur gleichen Zeit wire
eine reale Adresse von dem entsprechenden (gerader oder ungeraden) Teil der Übersetzungsnebentabeile 4f
über die Torschaltungen 62 oder 64 (je nachdem ob Bii
20 Null oder Eins ist) zu einem der Vergleicher 58 odei 60 gebracht. Wenn einer der beiden Vergleichei
Gleichheit der Eingangssignal feststellt, wird vom Co
dierer 66. je nachdem welcher der beiden Vergleiche!
Gleichheit festgestellt hat, ein bestimmter Wert des Bii
19 der realen Adresse zum Pufferspeicheradressenregi
ster 68 übertragen.
Im wesentlichen zur gleichen Zeit wird das Bit 20 dei
realen Adresse über die Leitung 70 von der Überset
zungsnebentabelle 46 zum Adressenregister 68 und die Bits 21-28 der realen Adresse über die Leitung 72 vor
der Speichersammelleitung 44 zum Adressenregister 6t
gebracht. Die Bits 19-28. weiche nunmehr im Speicher
O
12
adressenregister 68 gespeichert sind, werden nun dazu verwendet, eines der 1024 Worte, welche im schnellen
Pufferspeicher 74 gespeichert sind, zur zentralen Verarbeitungseinheil zu übertragen. Die Bits 29-31 (die
niederwertigen realen Adressenbits) der virtuellen Adresse brauchen nicht dazu verwendet werden, einen
Zugriff zum Pufferspeicher 74 durchzuführen, da in der bevorzugten Ausführungsform jedes Wort im Pufferspeicher
acht Datenbytes enthält, wobei jedes Byte aus acht Datenbits und einem Faritätsbit besteht. Die zentrale
Verarbeitungseinheit verwendet die drei niederwertigen Bits (Bits 29-31) dazu, um eines der acht vom
Pufferspeicher ausgelesenen Bytes auszuwählen.
Wenn von keinem der beiden Vergleicher 58 oder 60 Gleichheit festgestellt wurde, d. h., wenn die Daten sich
nicht im Pufferspeicher 74 befinden, oder wenn der Vergleicher 52 nicht Gleichheit festgestellt hat, d. h.,
daß eine Übersetzung nicht sofort ohne die zweistufige Übersetzung erhältlich ist, muß die Situation, wie oben
im Zusammenhang mit F i g. 4 beschrieben, behandelt werden.
Wenn im beschriebenen Ausführungsbeispiel Werte angegeben wurden, bedeutet das selbstverständlich
nicht, daß die Erfindung auf Einrichtungen mit z. B. dem gezeigten Adressenformat oder den gezeigten
Speichergrößen beschränkt ist. Die Größe des virtuellen Speichers betrug im beschriebenen Ausführungsbeispiel
über 16 Millionen Bytes und 13 Bits der virtuellen Adresse wurden in zehn Bits einer realen Adresse umgewandelt.
Der reale Speicherraum beträgt also etwas über 2 Millionen Bytes.
Selbstverständlich kann auch ein Zugriff zum Pufferspeicher 74 bereits begonnen werden, wenn die Adressenübersetzung
und die Adressenvergleiche noch nicht beendet sind. Der Zugriff zum Pufferspeicher könnte
z. B. durch die virtuelle Adresse begonnen werden, und zwar unabhängig vom Resultat der Adressenvergleiche
und der Gebrauch der vom Pufferspeicher ausgclcscnen Daten könnte bei nicht erfolgreichem Vergleich
verhindert werden. Auch in einem solchen System wäre der Pufferspeicher realadressenorientiert, d. h., der
Zuordnungsspeicher würde reale Adressen speichern.
Die Wirkungsweise des Ausführungsbeispieles der Erfindung kann wie folgt zusammengefaßt werden.
Der schnelle Pufferspeicher 74 ist realadressenorientiert.
Der Byteteil der virtuellen Adresse, welcher eine reale Speicherstelle im Hauptspeicher angibt, wird
zu einem Zugriff zum Zuordnungsspeicher, welcher reale Hauptspeicheradressen enthält, verwendet, während
zugleich die Segment- und Seitenteile der virtuellen Adresse zu einem Zugriff zur Übersetzungsnebentabelle,
welche die neuesten Übersetzungen von virtuellen Adressen in reale Adresser, enthält, verwendet
werden.
Wenn die Übersetzungsnebentabelle bestimmte virtuelle Adressenbits enthält, welche gleich sind den entsprechenden
Bits der gewünschten virtuellen Adresse und wenn die an der adressierten Speichersteüe der
Übersetzungsnebentabelle ausgelesenen realen Adressenbits den aus dem Zuordnungsspeicher ausgelesenen
realen Adressenbits gleich sind, wird die reale Adresse zu einem Zugriff zum Pufferspeicher verwendet.
Wenn die von der Übersetzungsnebentabelle ausgelesenen realen Adressenbits nicht gleich sind den aus
dem Zuordnungsspeicher ausgelesenen realen Adressenbits, bedeutet dies, daß die Daten nicht im Pufferspeicher
sind und aus dem Hauptspeicher geholt werden müssen. Da jedoch die reale Adresse im Hauptspeicher
bereits zur Verfügung steht, braucht keine zusätzliche Adressenübersetzung ausgeführt werden.
Wenn die Übersetzungsnebentabelle keine Adressenbits enthält, welche den von der zentralen Verarbeitungseinheit
gelieferten virtuellen Adressenbits gleich sind, muß eine Übersetzung der virtuellen in eine reale
Adresse ausgeführt werden. Ferner muß das Resultai der Übersetzung in der Übersetzungsnebentabelle abgespeichert,
ein Zugriff zu den Daten ausgeführt unc die Daten im Pufferspeicher abgespeichert werde.i.
Damit können die systematischen Nachteile der be kannten Einrichtungen verhindert werden und wird fer
ner erreicht, daß die reale Adresse bereits ohne Über Setzung zur Verfügung steht, wenn eine Datenübertra
gung notwendig wird.
Hierzu 2 Blatt Zeichnungen
Claims (4)
1. Virtuelle Speichereinrichtung mit einem externen Großraumspeicher und einem durch reale
Adressen adressierten internen Hauptspeicher, worin Daten von einer zentralen Verarbeitungseinheit
durch eine virtuelle Adresse angefordert werden, die aus einem virtuellen und einem realen Teil
besteht, mit einer Einrichtung zur dynamischen ι ο Übersetzung der virtuellen Adressen in die realen
Hauptspeicheradressen, wobei Zuordnungstabellen im Hauptspeicher verwendet werden, sowie mit
einer schnell zugreifbaren und bei jeder Anforderung adressierten Übersetzungsnebentabelle, dadurch
gekennzeichnet, daß Zugriffe der zentralen Verarbeitungseinheit (CPU) nicht zum
Hauptspeicher, sondern zu einem schnellen Pufferspeicher (74) erfolgen, daß ein Zuordnungsspeicher
(56) vorgesehen ist, der für die im Pufferspeicher vorhandenen Daten eine reale Adressenangabe
speichert, daß der Zuordnungsspeicher durch reale Adressenbits der virtuellen Adresse adressiert wird,
daß die Übersetzungsnebentabelle (46) durch virtuelle Adressenbits der virtuellen Adresse adressiert
wird und die ausgelesene übersetzte reale Adresse mit der vom Zuordnungsspeicher ausgelesenen realen
Adresse zur Feststellung der Anwesenheit der Daten im Pufferspeicher (74) verglichen wird, und
daß bei Gleichheit der Zugriff zum Pufferspeicher ausgeführt wird.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zum Adressieren der Übersetzungsnebentabelle
(46) nur ein Teil der virtuellen Adressenbits (13-15, 17-19) verwendet wird und der restliche
Teil (VIR 8-12, 16) zusammen mit der dazugehörigen realen Adresse (REAL 11-20) in der Übersetzungsnebentabelle
gespeichert ist und daß dieser restliche Teil auch ausgelesen und mit den entsprechenden
Bits der virtuellen Adresse verglichen wird, wobei der Zugriff zum Pufferspeicher (74) nur bei
Gleichheit ausgeführt wird (VGL 52, Signal 54).
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Übersetzungsnebentabelle (46) in
einen Teil (GER) für geradzahlige Seiten und einen Teil (UNGER) für ungeradzahlige Seiten unterteilt
ist, wobei Torschaltungen (48,62,50,64) vorgesehen
sind, welche das Auslesen eines der beiden Teile vom Wert des niedrigsten virtuellen Adressenbits
(20) abhängig machen und daß bei einer notwendigen Übersetzung einer virtuellen Adresse in eine
reale Adresse zugleich die Übersetzung der entsprechenden benachbarten Seite in der Übersetzungsnebentabelle
in der gleichen Speicherstelle aufgenommen wird.
4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß auch der Zuordnungsspeicher (56) in
zwei Teile unterteilt ist, wobei die Auswahl eines der beiden Teile durch das niederste Bit der in der
Übersetzungsnebentabelle (46) gespeicherten realen Adresse erfolgt und die beiden Teile zu zwei
zugehörigen Vergleichern (58, 60) ausgelesen werden, und daß ein Codierer (66) vorgesehen ist, der
ein zusätzliches Adressenbit zur Adressierung des Pufferspeichers (74) erzeugt, dessen Wert davon abhängt,
welcher Vergleicher ein Gleichheitssignal liefert.
Die Erfindung betrifft eine virtuelle Speichereinrichtung mit einem externen Großraumspeicher und einem
durch reaJe Adressen adressierten internen Hauptspeicher,
worin Daten von einer zentralen Verarbeitungseinhdt durch eine virtuelle Adresse angefordert werden,
die aus einem virtuellen und einem realen Teil besteht, mit einer Einrichtung zur dynamischen Übersetzung
der virtuellen Adressen in die realen Hauptspeicheradressen, wobei Zuordnungstabellen im
Hauptspeicher verwendet werden, sowie mit einer schnell zugreifbaren und bei jeder Anforderung adressierten
Übersetzungsnebentabelle.
Eine derartige Einrichtung ist in der USA.-Patentschrift
3 533 075 und in ähnlicher Form, d. h. mit Zuordnungatabellen,
die sich außerhalb des Hauptspeichers befinden, auch in der DT-OS 1 815 234 beschrieben.
In Datenverarbeitungsanlagen, in denen mehrere Programme von einer oder mehreren Verarbeitungseinheiten ausgeführt werden, besteht stets ein großer
Bedarf an Speicherraum. Dieser Speicherraum übersteigt im Normalfall die Kapazitäten der gebräuchlichen
Hauptspeicher, die zumeist als Magnetkernspeicher ausgeführt sind. Um diese Vielzahl der Programme
im Zeitteilungsverfahren ausführen zu können, ist die Verwendung von virtuellen Adressen bekanntgeworden,
welche die Verwendung von großen Unterstützungsspeichern, wie z. B. Magnetplattenspeicher,
sehr erleichtert haben. Als Beispiel kann z. B. eine Systemadresse von 24 Bits genannt werden, mit der also
16 Millionen Bytes des virtuellen Speichers adressiert werden können.
Wegen der Vielzahl der Programme und aus Organi sationsgründen ist es vorteilhaft, den virtuellen Speicher
in Segmente zu unterteilen, wobei jedes Segment mehrere Datenseiten enthält. Eine Seite weist stets eine
bestimmte Anzahl von Bytes auf. Die Segment- und Seitenadressen stellen dann z. B. die Adressen im Unterstützungsspeicher
dar und weisen keinen direkten Zusammenhang mit bestimmten Hauptspeicherstellen auf. Vielmehr können sich die durch virtuelle Adressen
bestimmten Seiten irgendwo im Hauptspeicher befinden und zu verschiedenen Zeiten auch an verschiedenen
Stellen im Hauptspeicher gespeichert sein. Je nach Bedarf werden die notwendigen Seiten vom Unterstützungsspeicher
in den Hauptspeicher übertragen und nicht mehr gebrauchte Seiten vom Hauptspeicher zurück
zum Unterstützungsspeicher übertragen. Da also kein fester Zusammenhang zwischen virtuellen und
realen Adressen besteht, müssen die in einer Datenanforderung enthaltenen virtuellen Adressen zuerst in die
entsprechenden realen Hauptspeicheradressen übersetzt werden. Dies geschieht mit Hilfe von Seiten- und
Segmenttabellen. In einer Seitentabelle sind dabei die realen Speicherstellen aller Seiten eines bestimmten
Segmentes gespeichert. Andere Seitentabellen geben die realen Hauptspeicherstellen für die Seiten anderer
Segmente ab. Da auch dit Seitentabellen nicht immer an einem bestimmten Platz im Hauptspeicher gespeichert
sind, muß die Beginnadresse einer jeden Seitentabelle in einer Segmenttabelle gespeichert werden. Eine
typische virtuelle Adresse besteht aus einem Segmentteil, einem Seitenteil und einem Byteteil. Der Byteteil
ist schon die reale Adresse eines bestimmten Bytes innerhalb einer bestimmten Seite im Hauptspeicher. Es
brauchen also nur der Segmentteil und der Seitenteil in eine reale Adresse übersetzt und diese mit dem schon
vorhanden realen Byteteil zusammengefügt werden, um den gewünschten Zugriff zum Hauptspeicher
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00274771A US3829840A (en) | 1972-07-24 | 1972-07-24 | Virtual memory system |
US27477172 | 1972-07-24 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2332603A1 DE2332603A1 (de) | 1974-02-21 |
DE2332603B2 DE2332603B2 (de) | 1974-11-21 |
DE2332603C3 true DE2332603C3 (de) | 1977-02-24 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE2455047C2 (de) | Datenverarbeitungssystem mit einem Informationsspeicher | |
DE3011552C2 (de) | ||
DE1956604C3 (de) | Datenverarbeitungsanlage | |
DE2231146C3 (de) | Datenverarbeitungsanlage mit virtueller Adressierung | |
DE3151745C2 (de) | ||
DE2346525A1 (de) | Virtuelle speichereinrichtung | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2726488A1 (de) | Adressenuebersetzungseinrichtung | |
DE2241257B2 (de) | Datenverarbeitende Anlage | |
DE2131066B2 (de) | Anordnung zum adressieren eines tabellenspeichers | |
DE2523414A1 (de) | Hierarchische speicheranordnung | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE2939411C2 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung | |
DE2551740A1 (de) | Datenverarbeitungseinheit | |
DE2332603C3 (de) | Virtuelle Speichereinrichtung mit zusätzlichem Pufferspeicher | |
DE3121710C2 (de) | Steuereinrichtung für einen virtuellen Speicher in einer Datenverarbeitungsanlage | |
DE2331394B1 (de) | Datenverarbeitungsanlage mit virtueller adressierung | |
DE2355814C2 (de) | Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung | |
DE3216238C1 (de) | Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers |