-
Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle
-
Adressen Die Erfindung betrifft eine Schaltungsanordnung zum Umwandeln
virtueller Adressen in reelle Adressen mit einem Assoziativregister, dessen Schlüsselwörter
virtuelle Adressen sind, das bei Eintreffen einer in ihm als Schlüsselwort gespeicherten
virtuellen Adresse die zugehörige reelle Adresse ausgibt und bei Eintreffen einer
in ihm nicht gespeicherten virtuellen Adresse ein Signal abgibt, das eine Adressenübersetzung
bewirkt, bei der aus der virtuellen Adresse eine reelle Adresse gebildet und die
virtuelle Adresse als Schlüsselwort sowie die zugehörige reelle Adresse in die am
längsten nicht aufgerufene Zelle des Assoziativregisters eingeschrieben werden.
-
Zum Beschleunigen der Umwandlung von virtuellen Adressen in reelle
Adressen werden Assoziativregister eingesetzt, in denen die virtuelle und die reelle
Adresse sowie ggf. einige Steuerbits hinterlegt sind. Die Adresse braucht nicht
die vollständige Adresse zu sein, sondern es werden im allgemeinen die sogenarnften
Seiten-und ggf. Sektionsnummern angegeben, welche die Adressen für Datenblöcke sind.
Wegen des großen Aufwandes von Assoziativregistern sind in diesen nicht alle Zuordnungen
zwischen virtuellen und reellen Adressen hinterlegt, sondern nur jeweils die, die
bei der Bearbeitung des jeweiligen Programmabschnitts gebraucht werden.
-
Der Inhalt des Assoziativregisters ändert sich daher stets während
der Bearbeitung eines Programmes. Vor jedem virtuellen Speicherzugriff wird die
virtuelle Adresse bzw. Seitennummer mit dem Inhalt der Zellen des Assoziativregisters
verglichen. Wird in keiner der Zellen Ubereinstimmung festgestellt, mu8 eine Adreßübersetzung
durchgeführt werden und es wird das Ergebnis der Adreßübersetzung, das ist ein aus
einer virtuellen und einer reellen Adresse bestehendes Adressenpaar, in eine der
Assoziativregisterzellen eingetragen. Geht man von der Überlegung aus, daß die Adresse
für mehrere aufeinanderfolgende Befehlsfolgen unter der gleichen
virtuellen
Adresse oder virtuellen Seite abgelegt sind, dann kann die Anzahl der notwendigen
Adreßübersetzungen mit Hilfe eines sogenannten Alterungsmechanismus reduziert werden.
Bei diesem Mechanismus wird, wenn bei Aufruf einer virtuellen Adresse in einer der
Zellen des Assoziativregisters Übereinstimmung festgestellt wird, diese Zelle zur
jüngsten erklärt und die drei anderen um jeweils eine Stufe gealtert. Nach einer
Adreßübersetzung wird dann immer diejenige Zelle des Assoziativregisters überschrieben,
welche am längsten an einer Adressierung nicht beteiligt gewesen ist.
-
Ein derartiges Verfahren ist in der Zeitschrift Elektronische Rechenanlagen",
Heft 6, 1974, Seiten 230 ff. beschrieben.
-
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Schaltung
der eingangs beschriebenen Art zu schaffen, die sich durch ihre Einfachheit, hohe
Arbeitsgeschwindigkeit und Flexibilität auszeichnet.
-
Erfindungsgemäß wird diese Aufgabe dadurch gelöst, daß jeder Reihenfolge
der letzten Aufrufe der Stellen des Assoziativregisters eine Signalkombination zugeordnet
ist, daß auf einen Speicher die jeweils gültige Signalkombination als Teiladresse
gegeben wird, die mit der Nummer der jeweils aufgerufenen Zelle des Assoziativregisters
ergänzt ist, und daß mit der Gesamtadresse eine Zelle des Speichers aufgerufen ist,
deren Inhalt die auf den Adresseneingang des Speichers rückgeführte Signalkombination
für die neue Reihenfolge der letzten Aufrufe der Assoziativregisterzellen ist.
-
Im Speicher sind sämtliche möglichen Signalkombinationen enthalten.
Die ausgegebene Signalkombination wird auf den Adresseneingang des Speichers als
Teiladresse rückgeführt. Ergänzt wird diese Teiladresse durch die Nummer der jeweils
aufgerufenen Zelle des Assoziativregisters. Der Inhalt der Zelle mit der Gesamtadresse
ist die Signalkombination für die neue Reihenfolge der am längsten nicht benutzten
Assoziativregisterzellen. Im Speicher sind daher nicht nur sämtliche Signalkombinationen
für alle möglichen Reihenfolgen hinterlegt, sondern auch sämtliche möglichen Xnderungen
der Reihenfolgen.
-
Ist die aufgerufene virtuelle Adresse im Assoziativregister nicht
enthalten, gibt dieses ein Signal aus, das eine ndreßübersezung auslöst. Das dabei
gebildete Adressenpaar von virtueller und reelle Adresse wird in die Assoziativregisterzelle
eingetragen, die am längsten nicht benutzt wurde. Mit der Nummer dieser Zelle wird
dann ebenfalls das Adressensignal für den Speicher vervollst#ndi.gt.
-
Da die vom Speicher ausgegebenen Signalkombinationen die Reihenfolge
der letzten Benutzung der Assoziativregisterstellen angibt, kann aus ihnen auch
die am längsten nicht benutzte Zelle durch Decodieren ermittelt werden. Hierzu kann
ein weiterer Speicher verwendet werden, dessen Adresseneingang mit der vom ersten
Speicher ausgegebenen Signalkombination angesteuert ist. Der Inhalt der aufgerufenen
Adresse ist dann die Nummer der am längsten nicht benutzten Assoziativregisterzelle.
-
Anhand der Zeichnung werden im folgenden die Erfindung sowie weitere
Vorteile und Ergänzungen näher beschrieben und erläutert.
-
Figur 1 zeigt das Prinzipschaltbild eines Ausführungsbeispiels der
Erfindung.
-
In Figur 2 ist die Funktion der Anordnung nach Figur 1 verdeutlicht.
-
In Figur 1 ist mit AR ein Assoziativregister mit vier Zeilen A, B,
C, D bezeichnet. Die vier Zellen enthalten als Schlüsselwörter virtuelle Seitennummern
s'1, s'2, s'3, s'4, bei deren Zufuhr über eine Leitung S' die entsprechenden reellen
Seitennummern sl, s2, s3, s4 ausgegeben werden. Gleichzeitig wird über eine der
Leitungen a, b, c, d eine Teiladresse auf einen Speicher SPE gegeben. Den zweiten
Adressenteil erhält der Speicher SPE von einem Pufferspeicher PS, der vom Speicher
SPE fünfstellige ßinärsignalkombinationen erhält, welche die Reihenfolge der letzten
Aufrufe der Assoziativregisterzellen A, B, C, D angibt. Bei vier Speicherzellen
sind 24 Reihenfolgen möglich, die mit fünf Binärsignalen dargestellt werden können.
Der Speicher SPE gibt ferner die Nummer der am längsten nicht aufgerufenen Assoziativregisterzelle
auf
einen Decoder DFC, der im Falle, daß ein neues Adressenpaar in das tssoziativregister
eingeschrieben werden soll, die Zelle zum Einschreiben freigibt, die am längsten
nicht mehr benutzt wurde. Beim Einschreiben in diese Zelle wird ebenfalls auf die
zu dieser Zelle gehörende Leitung a, b, c, d ein Signal gegeben.
-
Anhand der Figur 2 soll die Arbeitsweise der Figur 1 verdeutlicht
werden. In der in Figur 2a dargestellten Tabelle sind sämtliche möglichen Reihenfolgen
des letzten Aufrufs der Assoziativregisterzellen aufgeführt. Die am längsten nicht
aufgerufene Speicherzelle steht ganz links, die zuletzt aufgerufene ganz rechts.
Jeder dieser Reihenfolgen ist eine Binärsignalkombination zugeordnet, die als Dezimalzahl
angegeben ist.
-
In Figur 2b ist der Aufbau des Festwertspeichers SPE veranschaulicht.
Jede Zeile entspricht einer Speicherzelle, deren Adresse in der linken Spalte und
deren Inhalt in der zweiten Spalte von links angegeben ist. Die nächste Spalte zeigt
die dem Zelleninhalt zugeordnete Reihenfolge des letzten Aufrufs der Assoziativregisterzellen.
Die in der rechten Spalte eingetragenen Signale, die angeben, welche Assoziativregisterzelle
am längsten nicht mehr aufgerufen wurde. sind vorteilhaft in derselben Speicherzelle
wie die in der zweiten Spalte von links aufgeführten enthalten.
-
Als Beispiel sei angenommen, daß der Pufferspeicher PS die Ziffer
0 auf den Adreßeingang des Speichers SPE gibt. Dies bedeutet, daß die Zelle A am
längsten nicht mehr aufgerufen wurde, davor wurde B aufgerufen und dann C. Die Zelle
D ist die zuletzt aufgerufene Zelle. Wird bei einem solchen Zustand die virtuelle
Seitennummer s'1 (vergl. Fig. 1) dem Assoziativregister zugeführt, so wird zusätzlich
zur Ziffer 0 über die Leitung a ein Adressensignal eingegeben. Die Gesamtadresse
sei dargestellt als (a, o). In der Speicherzelle mit dieser Adresse befindet sich
die Ziffer 9, die der Reihenfolge B, C, D, A zugeordnet ist. Diese Ziffer wird an
den Pufferspeicher ausgegeben und von diesem auf den Adreßeingang des Speichers
SPE rückgeführt. Wird in diesem Zustand die virtuelle Seitennummer s'2 eingegeben,
so erscheint auf der Leitung b ein Signal und der Speicher SPE erhält die Adresse
(b, 9). In der Speicherzelle mit dieser Adresse befindet sich die Ziffer 16, die
der
Reihenfolge C, D, A, B zugeordnet ist. ~über den Pufferspeicher FS gelangt nun die
Ziffer 16 auf den Adresseneingang des Speichers SPE. Nach einem Treffer in der Zelle
C infolge Zufuhr der virtuellen Zeitnummer s'3 wird die Adresse (c, 16) gebildet.
In der zugehörigen Speicherzelle ist die Ziffer 18, die Reihenfolge D, A, B, C kennzeichnend,
enthalten. Ist der nächste Treffer in D, wird die Zelle mit der Adresse (d, 18)
gebildet, in der die Ziffer 0 enthalten ist, d. h. in diesem Falle wird der Ausgangszustand
wieder erreicht.
-
Wird z.B. in dem Zustand, in dem die vom Pufferspeicher PS dem Speicher
SPE zugeführte Teiladresse 0, d. h. die Zelle A, am längsten nicht mehr aufgerufen
ist und deren Nummer dem Decoder DEC zugeführt wird, dem Assoziativregister AR eine
virtuelle Seitennummer s'5 eingegeben, so gibt es in keiner der vier Registerzellen
einen Treffer. Das Assoziativregister AR meldet dies einer Ubersetzungseinrichtung,
die daraufhin die reelle Seitennummer s5 ermittelt. Das Adressenpaar s'5 wird dann
in die Zelle A des Registers AR eingetragen, da diese Zelle vom Decoder DEC zum
Einschreiben freigegeben ist. Dabei erscheint auf der Leitung a ein Signal, so daß
wieder, wie bei einem Treffer in der Zelle A, die Zelle des Speichers SPF mit der
Adresse (a, 0) aufgerufen wird.
-
Entsprechendes gilt für beliebige andere Ausgangszustände.
-
Im Beispiel nach Figur 2 wird so verfahren, daß die Zelle zum Einschreiben
eines neuen Adressenpaares freigegeben wird, die am längsten nicht mehr aufgerufen
wurde. Die Häufigkeit des Aufrufes von Zellen wird nicht berücksichtigt. Demgemäß
wird bei einer Ausgangsreihenfolge von A B C D nach einem Treffer in Zelle A die
Reihenfolge B C D A hergestellt. Die Anordnung nach Figur 1 ist aber so flexibel,
dan auch beliebige andere ReihenfolGen gebildet werden können. Soll z. B. für die
Reihenfolge die#Häufigkeit der Treffer in einer Zelle berücksichtigt werden, so
kann man so vorgehen, daß bei einem Ausgangszustsnd A B C D und einem Treffer in
Zelle A der Zustand B A C D eingenommen wird. Nach einem weiteren Treffer in Zelle
A erhält man dann den Zustand B C A D und schließlich nach einem nochmaligen Treffer
den Zustand B C D A. Bei anderen Ausgangs zuständen und Treffern in anderen Zellen
kann entsprechend
verfahren werden.' Es ist auch möglich, Treffer
in den einzelnen Zellen unterschiedlich zu bewerten.
-
Patentansprüche 2 Figuren