DE4429905C1 - Verfahren zum Betrieb eines virtuellen Speichers - Google Patents
Verfahren zum Betrieb eines virtuellen SpeichersInfo
- Publication number
- DE4429905C1 DE4429905C1 DE4429905A DE4429905A DE4429905C1 DE 4429905 C1 DE4429905 C1 DE 4429905C1 DE 4429905 A DE4429905 A DE 4429905A DE 4429905 A DE4429905 A DE 4429905A DE 4429905 C1 DE4429905 C1 DE 4429905C1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- cache
- page
- section
- address
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/653—Page colouring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Virtuelle Speicher sind bekannt, sie können z. B. mindestens ei
nen Hintergrundspeicher und einen Arbeitsspeicher aufweisen.
Zusätzlich kann ein Cachespeicher vorgesehen werden, um die Zu
griffszeit eines Prozessors auf Befehle und Daten gering zu
halten. Deshalb besitzen heutige Rechnerarchitekturen als Ver
bindung zwischen Prozessor und Hauptspeicher mindestens einen
schnellen Zwischenspeicher oder Cachespeicher. Die Betriebs
weise eines Prozessorsystems mit Arbeitsspeicher und Cachespei
cher ist ebenfalls bekannt.
Bei einem virtuellen Speicher müssen die virtuellen Adressen in
physikalische Adressen umgesetzt werden. Dies kann z. B. mittels
Paging erfolgen, einem Verfahren, das durch die Unterteilung
des Adreßraums in Seiten erfolgt. Dazu ist der Arbeits
speicher in Seiten aufgeteilt und die Aufgabe der virtuel
len Speicherverwaltung besteht darin, bei Bedarf die Seiten aus
dem Hintergrundspeicher in den Arbeitsspeicher zu laden. Dies
ist immer dann notwendig, wenn der Zugriff eines Prozessors auf
ein Datum im Arbeitsspeicher zu einem page fault führt, also
die Seite, auf die zugegriffen werden soll, nicht im Arbeits
speicher enthalten ist. Dann muß die entsprechende Seite aus
dem Hintergrundspeicher in den Arbeitsspeicher geladen werden.
Die Umrechnung der virtuellen Adressen in eine physikalische
Adresse erfolgt über einen Pufferspeicher, der für eine be
grenzte Anzahl von Seiten des virtuellen Speichers die Adresse
des zugewiesenen physikalischen Speicherbereichs enthält.
Bei Prozessorsystemen mit virtuellem Speicher, die zusätzlich
mindestens einen Cachespeicher aufweisen, kann die Abbildung
der virtuellen Seiten auf den Arbeitsspeicher ohne Beachtung
der virtuellen Seiten auf den Arbeitsspeicher ohne Beachtung
des Cachespeichers erfolgen. Das heißt, bei Bedarf wird die
virtuelle Seite aus dem Hintergrundspeicher in den Arbeitsspei
cher übertragen und erst später bei Zugriff dieses Prozessors
auf den Cachespeicher in den Cachspeicher. Um die Leistungsfä
higkeit moderner Prozessoren, insbesondere auch bei Multipro
zessorsystemen zu erhöhen, können z. B. zwei oder mehr Ebenen
von Cachespeichern verwendet werden. Die erste Ebene besteht
aus einem kleinen und sehr schnellen Cachespeicher, die weite
ren Ebenen aus langsameren, aber größeren Cachespeichern.
Ein Cachespeicher kann physikalisch adressiert werden, d. h. die
Übersetzung von virtuellen nach physikalischen Adressen erfolgt
bereits vor der Adressierung des Cachespeichers. Deshalb unter
liegt die Belegung eines physikalisch adressierten Cachespei
chers mittelbar dem Einfluß des Betriebssystems mit seiner
Speicherverwaltung, welche die Adreßabbildung auf den Arbeits
speicher festlegt.
Falls sich ein Befehl oder ein Datum nicht im Cachespeicher be
findet, führt dies zu einem Cachemiss. Dann muß die CPU des
Prozessors solange warten, bis der referenzierte Speicherinhalt
aus dem Arbeitsspeicher in den Cachespeicher geladen worden
ist. Entsprechend den Ursachen werden Start-Misses und Verdrän
gungs-Misses unterschieden. Dabei sind die durch Verdrängung
verursachten Misses in der Regel dominierend. Voraussetzung für
ein Verdrängungs-Miss ist, daß der Inhalt des referenzierten
Speichers sich bereits einmal im Cachespeicher befand und von
später adressierten Speicherinhalten überschrieben wurde, so
daß eine abermalige Referenzierung wieder zu einem Miss führt.
Durch eine Ablage der Daten an geeigneter Stelle im Cachespei
cher wird die Anzahl der Verdrängungs-Misses drastisch redu
ziert.
Die der Erfindung zugrundeliegende Aufgabe besteht darin, bei
einem Prozessor mit virtuellem Speicher dessen Betrieb so zu
gestalten,daß die Anzahl der Cachespeicher-Misses möglichst ge
ring ist.
Diese Aufgabe wird mit einem Verfahren gemäß den Merk
malen des Anspruchs 1 gelöst.
Gemäß der Erfindung wird somit der Cachespeicher bereits bei
der Umsetzung der virtuellen Adresse in die physikalische
Adresse, also bei der Seitenabbildung, mit herangezogen. Dabei
wird unter Zuhilfenahme der Referenzierungsinformation ein
freier Cachespeicherabschnitt gesucht und die abzubildende
Seite in eine diesem Cachespeicherabschnitt zugeordnete Ar
beitsspeicherseite und evtl. in den Cachespeicherabschnitt vor
genommen.
Tritt ein Pagefault auf, kann unter Verwendung des in der bei
der Umsetzung der virtuellen Adresse in die physikalische
Adresse verwendeten Pufferspeicher enthaltenen Einträge für die
Adressenumsetzung gewonnenen Information die Referenzierungsin
formation der Cachespeicherabschnitte aktualisiert werden.
Dadurch, daß die Referenzierungsinformation bei der Abbildung
der virtuellen Seite in die Arbeitsspeicherseite herangezogen
wird, wird dafür gesorgt, daß durch das Laden der Seite nur in
seltenen Fällen eine Verdrängung einer anderen Seite aus dem
Cachespeicher erforderlich ist.
Andere Weiterbildungen der Erfindung ergeben sich aus den Un
teransprüchen.
Anhand von Ausführungsbeispielen, die in den Figuren darge
stellt sind, wird die Erfindung weiter erläutert.
Es zeigen:
Fig. 1 ein Blockschaltbild eines Prozessors mit virtuellem
Speicher,
Fig. 2 die Abbildung des virtuellen Adreßraums auf Arbeits
speicher und Cachespeicher,
Fig. 3 ein möglicher Aufbau einer virtuellen Adresse,
Fig. 4 ein möglicher Aufbau eines Cachespeicherabschnitts,
Fig. 5 ein erstes Verfahren zur Aktualisierung der Referenzie
rungsinformation der Cachespeicherabschnitte,
Fig. 6 und Fig. 7 zwei weitere Verfahren zur Aktualisierung
der Referenzierungsinformation der Cachespeicherabschnitte.
Aus Fig. 1 ergibt sich das Blockschaltbild eines Prozessors
mit virtuellem Speicher. Der Prozessor enthält eine CPU, in der
weiterhin eine Speicherverwaltung SPW enthalten ist. Der virtu
elle Speicher ist aufgebaut aus einem Hintergrundspeicher HS
und einem Arbeitsspeicher AS, hinzu kommt noch ein Cachespei
cher CS. Ein solcher Aufbau eines Prozessors ist bekannt, von
den Bestandteilen sind auch nur die Teile gezeigt, die für die
Erläuterung der Erfindung von Bedeutung sind.
Im Hintergrundspeicher HS stehen nun alle Programme und Daten,
die vom Prozessor bearbeitet werden sollen. Benötigt die CPU
ein Befehlswort oder ein Datenwort, dann greift sie zunächst
auf den Cachespeicher CS zu. Sollte dieses Wort nicht im Cache
speicher CS stehen, dann liegt ein Cachespeicher-Miss vor. Ist
dies der Fall, dann wird auf den Arbeitsspeicher AS zugegrif
fen, um das gesuchte Wort dort zu finden. Ist es auch dort
nicht vorhanden, dann muß auf den Hintergrundspeicher HS zu
rückgegriffen werden.
Das Zugreifen auf die im Speicher stehende Information erfolgt
über Adressen, die von der Speicherverwaltung SPW verwaltet
werden. Bei Vorhandensein eines virtuellen Speichers wird dazu
eine virtuelle Speicheradresse verwendet. Diese virtuelle Spei
cheradresse wird durch die Speicherverwaltung SPW in eine phy
sikalische Speicheradresse übersetzt, die den Speicherplatz im
Arbeitsspeicher AS physikalisch festlegt.
Dazu kann die Speicherverwaltung SPW einen Pufferspeicher TLB
(Translation Lookaside Buffer oder Adress Translation Memory
genannt), in der die Übersetzung von virtuellen Adressen in
physikalische Adressen A-ADR und zwar die Seitenadressen ent
halten ist, verwenden. Wenn beim Betrieb eine virtuelle Adresse
aufgerufen wird, für die im Pufferspeicher TLB keine Überset
zung bzw. Eintrag ET vorhanden ist, dann wird z. B. der älteste
Eintrag gelöscht und durch einen neuen Eintrag für die laufende
Adreßübersetzung ersetzt. Aus diesem Grund sind in dem Puffer
speicher TLB immer als Einträge die jüngsten Adreßübersetzungen
enthalten.
Ist ein adressiertes Speicherwort nicht im Arbeitsspeicher AS,
dann wird dieses Speicherwort aus dem Hintergrundspeicher HS
geholt. Dies erfolgt jedoch nicht Speicherwort für Speicher
wort, vielmehr wird jeweils eine ganze Speicherseite bestehend
aus einer Mehrzahl von Speicherworten aus dem Hintergrundspei
cher HS in den Arbeitsspeicher AS übertragen. Dementsprechend
ist der Arbeitsspeicher AS in Seiten aufgeteilt, die in Fig. 1
mit A bezeichnet sind. Entsprechende Seiten können sich auch in
dem Hintergrundspeicher HS befinden, dort mit V bezeichnet.
Weiter wird das Speicherwort in den Cachespeicher CS übertragen
und zwar wiederum nicht als Einzelwort, sondern z. B. als
Cacheblock. Diese Cacheblöcke haben gewöhnlich eine kleinere
Größe wie die Arbeitsspeicherseiten A. Zur weiteren Erläuterung
werden mehrere Cachespeicherblöcke logisch zu einem Cachespei
cherabschnitt B zusammengefaßt, dessen Größe der einer Arbeits
speicherseite entspricht.
Wenn nun weiterhin jedem Cachespeicherabschnitt B mindestens
eine Arbeitsspeicherseite A physikalisch fest zugeordnet ist,
dann wird durch die Übersetzung der virtuellen Adresse in die
physikalische Adresse sowohl ein Cachespeicherabschnitt als
auch eine Arbeitsspeicherseite adressiert.
Führt ein Zugriff der CPU zu einem Zugriffsmisserfolg beim Ar
beitsspeicher AS, so liegt ein page fault vor. Das heißt, die
entsprechende Seite muß aus dem Hintergrundspeicher HS in den
Arbeitsspeicher AS geladen werden. Dazu wird nach einem freien
Cachespeicherabschnitt B gesucht und wenn ein derartiger freier
Cachespeicherabschnitt gefunden wird, wird eine zugeordnete Ar
beitsspeicherseite adressiert. In diese Arbeitsspeicherseite
wird dann die Seite vom Hintergrundspeicher HS geladen. Die
Folge ist eine cachespeicherorientierte Seitenverwaltung.
Diese Verhältnisse ergeben sich noch einmal aus Fig. 2. Hier
ist zunächst der virtuelle Adreßraum VA gezeigt, der in Seiten
V unterteilt ist, wobei in Fig. 2 eine Mehrzahl von solchen
Seiten V dargestellt ist. Jeweils eine Seite V des Hintergrund
speichers HS kann in eine Seite A des Arbeitsspeichers AS abge
bildet werden. Dabei kann, wie die Fig. 2 zeigt, die Abbildung
der Seite V1 auf die Arbeitsspeicher - Seite A1 erfolgen, die
Abbildung der Seite V3 z. B. auf die Arbeitsspeicherseite AS
oder auf die Arbeitsspeicherseite A6.
Der Cachespeicher CS ist in Cachespeicherabschnitte B1 bis B4
unterteilt, wobei jede Arbeitsspeicherseite genau einem Cache
speicherabschnitt B zugeordnet ist. Jeder Cachespeicherab
schnitt kann mehreren Arbeitsspeicherseiten zugeordnet werden.
In Fig. 2 ist die Zuordnung von Arbeitsspeicherseiten A zu
Cachespeicherabschnitten B dargestellt. Da die Cachespeicherab
schnitte und die Arbeitsspeicherseiten physikalisch einander
fest zugeordnet sind, führt die Umrechnung der virtuellen
Adresse auch immer zu einem entsprechenden Cachespeicherab
schnitt.
Aus Fig. 2 ist zu sehen, daß die Verteilung und Zuordnung von
Cachespeicherabschnitten zu Arbeitsspeicherseiten zweckmäßiger
weise so sein sollte, daß keine Konflikte auftreten können. Ein
möglicher Konflikt ist in Fig. 2 gezeigt. Wenn hier die Seite
V4 des Hintergrundspeichers auf die Arbeitsspeicherseite AS ab
gebildet wird und die Arbeitsspeicherseite AS dem Cachespei
cherabschnitt B1 zugeordnet sein sollte, dann würde dies beim
Cachespeicherabschnitt B1 zu einem Konflikt führen, da bereits
die Arbeitsspeicherseite A1 auf den Cachespeicherabschnitt B1
abgebildet worden ist. Es ist darum zweckmäßiger, die Seite V3
auf die Arbeitsspeicher A6 abzubilden, die dem Cachespeicherab
schnitt B2 zugeordnet ist, der noch nicht belegt ist.
Fig. 3 zeigt ein Beispiel der Umwandlung einer virtuellen
Adresse V-ADR in eine physikalische Adresse A-ADR und eine
Cachespeicheradresse B-ADR. Die erste Zeile zeigt die virtuelle
Adresse V-ADR, die z. B. aus einer Seitenadresse SN und einem
Offset OF bestehen kann. Diese virtuelle Adresse wird nun in
eine physikalische Adresse A-ADR umgewandelt, mit der auf dem
Arbeitsspeicher AS zugegriffen werden kann. Die Seitenadresse
SN wird dabei zu einer Seitenadresse FN umgewandelt, während
der Offset gleichbleibt. Die Seitenadresse SN und FN kann nun
zusätzlich einen Adreßteil ADR enthalten, der bei der Umwand
lung zur Cachespeicherabschnittsadresse B-ADR mit verwendet
wird. Der Adreßteil ADR würde dann die Anfangsadresse des
Cachespeicherabschnittes angeben, während der Offset die
Adresse des adressierten Wortes innerhalb des Cachespeicherab
schnittes bedeuten würde. Da zur Festlegung des Cachespeicher
abschnittes nur ein Teil der Seitenadresse benötigt wird, kann
der Rest dazu verwendet werden, um mehrere Arbeitsspeichersei
ten jeweils einem Cachespeicherabschnitt zuzuordnen.
Um nun die Seiten optimal im Cachespeicher und im Arbeitsspei
cher zu verteilen und um Konflikte zu vermeiden, wird eine Re
ferenzierungsinformation verwendet, die jedem Cachespeicherab
schnitt B zugeordnet wird. Immer wenn auf einen Cachespeicher
abschitt B zugegriffen wird, dann wird die Referenzierungsin
formation markiert, um erkennbar zu machen, daß dieser Cache
speicherabschnitt bereits belegt ist. Soll eine neue Seite in
den Cachespeicher oder in den Arbeitsspeicher vom Hintergrund
speicher übertragen werden, dann wird für jeden Cachespeicher
abschnitt die Referenzierungsinformation untersucht, um festzu
stellen, ob der entsprechende Cachespeicherabschnitt belegt ist
oder nicht. Diese Referenzierungsinformation kann als Feld ei
nem Cachespeicherabschnitt hinzugefügt werden. Ein möglicher
Aufbau eines Cachespeicherabschnittes kann der Fig. 4 entnom
men werden. Dieser enthält die Seite plus die Referenzierungs
information RI. Die im Feld enthaltene Referenzierungsinforma
tion RI hängt davon ab, welcher Algorithmus oder welches Ver
fahren verwendet wird, um nach freien Cachespeicherabschnitten
zu suchen bzw. belegte Cachespeicherabschnitte frei zu machen.
Ein erstes Verfahren zur Verwaltung der Cachespeicherabschnitte
unter Heranziehung der Referenzierungsinformation ist das sog.
LRU-Verfahren, das in Fig. 5 im Prinzip dargestellt ist. Wenn
eine neue Seite aus dem Hintergrundspeicher HS in den Arbeits
speicher AS übertragen werden soll, wird zunächst im Cachespei
cher nach einem freien Cachespeicherabschnitt gesucht. Wird ein
solcher gefunden, dann wird z. B. die Nummer B dieses Cachespei
cherabschnittes in den LRU Stack LRS an erster Stelle abgelegt
und im übrigen bereits im LRU Stack enthaltenen Nummern B von
belegten Cachespeicherabschnitten um eine Stelle nach unten
verschoben. Somit steht in dieser Tabelle der zuletzt ausge
wählte Cachespeicherabschnitt an erster Stelle und an
letzter Stelle der älteste ausgewählte Cachespeicherabschnitt.
Sollte der LRU Stack gefüllt sein, also alle Cachespeicherab
schnitte belegt sein, dann wird der am längsten im LRU Stack
enthaltene Cachespeicherabschnitt, das ist der unterste in der
Tabelle, gelöscht und die Nummern der übrigen Cachespeicherab
schnitte um eine Stelle nach-unten verschoben. Der aus dem LRU-
Stack herausgefallene Cachespeicherabschnitt kann neu belegt
werden und würde dann wieder an die erste Stelle des LRU Stack
gelangen. Für jeden neu belegten Cachespeicherabschnitt wäre es
also erforderlich, daß die im LRU Stack enthaltenen Referenzie
rungsinformationen um eine Stelle verschoben werden.
Ein zweites Verfahren wäre das sog. Marking-Verfahren, das im
Prinzip in Fig. 6 dargestellt ist. Bei diesem Verfahren ent
hält die Referenzierungsinformation lediglich ein Markierungs
bit. Dieses Bit wird dann gesetzt, wenn der zugeordnete Cache
speicherabschnitt belegt wird. Aus der Zahl der freien Cache
speicherabschnitte wird zufällig ein freier ausgewählt. Wenn
alle Cachespeicherabschnitte reserviert sind, dann werden nach
diesem Verfahren alle Markierungsbit zurückgesetzt, so daß alle
Cachespeicherabschnitte wieder neu verwendet werden können.
Dieses Verfahren ergibt sich prinzipiell aus Fig. 6, im Be
reich K1 befinden sich z. B. die Cachespeicherabschnitte, deren
Referenzierungsinformation nicht markiert ist, während im Be
reich K2 sich die Cachespeicherabschnitte befinden, deren Refe
renzierungsinformation markiert ist. Wenn ein noch freier
Cachespeicherabschnitt markiert wird, also neu belegt wird,
dann wandert dieser in den Bereich K2. Wenn alle Cachespeicher
abschnitte im Bereich K2 sind, dann werden deren Referenzie
rungsinformationen zurückgesetzt, so daß diese neu verwendet
werden kann.
Schließlich wird noch ein drittes Verfahren in Fig. 7 gezeigt,
dies ist das sog. Clockverfahren. Auch hier muß die Referenzie
rungsinformation nur ein Bit enthalten, das aussagt, ob der
entsprechende Cachespeicherabschnitt bereits verwendet worden
ist oder nicht. Hier wird untersucht, ob die Referenzierungsin
formation eines Cachespeicherabschnittes markiert ist oder
nicht. Dies wird mit einem ersten Zeiger Z1 gezeigt. Ist die
entsprechende Referenzierungsinformation markiert, also z. B. 1,
dann wandert der Zeiger Z1 weiter. Dies geschieht solange, bis
ein Cachespeicherabschnitt mit einer unmarkierten Referenzie
rungsinformation gefunden wird, dies wäre in Fig. 7 der Cache
speicherabschnitt B6. Bei allen Cachespeicherabschnitten, die
bei der Suche durchlaufen werden, werden die Markierungen in
den Referenzierungsinformationen zurückgesetzt. Dies wird sym
bolisch durch den Zeiger Z2 gezeigt, der dem ersten Zeiger Z1
nachfolgt.
Diese soeben geschilderte Seitenverwaltung ist also cacheorien
tiert und tritt dann in Aktion, wenn eine benötigte Seite sich
noch nicht im Arbeitsspeicher AS befindet, also ein sog. page
fault auftritt. Wenn dies der Fall ist, dann wird durch die
Speicherverwaltung zunächst ein Cachespeicherabschnitt B ausge
wählt, der die noch zu ermittelnde neue Seite aufnehmen soll.
Diese Suche erfolgt z. B. nach einem der drei oben geschilderten
Verfahren. Nachdem ein freier Cachespeicherabschnitt gefunden
worden ist, wird nach einer freien dem ausgewählten Cachespei
cherabschnitt zugeordneten Arbeitsspeicherseite gesucht. Wird
eine freie Arbeitsspeicherseite gefunden, dann wird die gesuch
te Seite dort gespeichert. Falls keine freie Arbeitsspeicher
seite gefunden wird, dann kann dieser Konfliktfall nach zwei
Strategien gelöst werden:
Eine erste Strategie besteht darin, daß nun nach einem der Aus wahlverfahren ein neuer, nicht belegter Cachespeicherabschnitt gesucht wird und dann die diesem neuen Cachespeicherabschnitt zugeordneten Arbeitsspeicherseiten untersucht werden.
Eine erste Strategie besteht darin, daß nun nach einem der Aus wahlverfahren ein neuer, nicht belegter Cachespeicherabschnitt gesucht wird und dann die diesem neuen Cachespeicherabschnitt zugeordneten Arbeitsspeicherseiten untersucht werden.
Eine zweite Strategie besteht darin, daß eine dem ausgewählten
Cachespeicherabschnitt zugeordnete Arbeitsspeicherseite einfach
für die Speicherung der adressierten Seite verwendet wird, also
die neue Seite die bisher gespeicherte Seite verdrängt.
Aus dem Pufferspeicher TLB kann eine Laufzeitinformation gewon
nen werden, die zur Aktualisierung der Referenzierungsinforma
tion RI verwendet werden kann. Der Pufferspeicher TLB enthält
eine begrenzte Anzahl von Einträgen ET für die Adressenumrech
nung von Seiten des virtuellen Speichers in Seiten des physika
lischen Speicherbereiches. Aufgrund seiner begrenzten Kapazität
enthält der Pufferspeicher TLB immer die zuletzt benutzten
Adreßübersetzungen als Einträge ET. Falls neue Adreßübersetzun
gen benötigt werden, also wenn ein page fault auftritt, tritt
ein Pufferspeicher-Miss auf. Während seiner Behandlung wird ein
älterer Eintrag ausgewählt und durch die aktuell erforderliche
Adreßübersetzung ersetzt. Daraus kann die benötigte Referenzie
rungsinformation RI gewonnen werden, die angibt, welche Seiten
des Arbeitsspeichers und damit auch welche Abschnitte des
Cachespeichers akut genutzt werden, und zwar auf zweierlei Ar
ten:
- a) es erfolgt die Aktualisierung der Referenzierungsinformation RI mit Hilfe des Inhaltes des Pufferspeichers TLB in Abhängig keit von Page-faults,
- b) eine Aktualisierung der Referenzierungsinformation RI er folgt nach einem Pufferspeicher-Miss.
Um die aus dem Pufferspeicher TLB gewonnene Laufzeitinformation
in den cacheorientierten Seitenvergabe-Algorithmus einzubinden,
wird im Fall des Clockverfahrens (Fig. 7) bei jedem Page-Fault
der Pufferspeicherinhalt ausgewertet. Für alle gültigen Einträ
ge wird anschließend die Referenzierungsinformation RI der zu
geordneten Abschnitte des Cachespeichers gesetzt. Die schon
vorhandene Information der anderen Abschnitte des Cachespei
chers kann entweder zurückgesetzt werden oder entsprechend dem
Clockverfahren erhalten bzw. zurückgesetzt werden. Dabei aber
bleiben auf jeden Fall die den gültigen Einträgen zugeordneten
Referenzierungsinformationen erhalten.
Beim Marking-Verfahren (Fig. 6) kann anders vorgegangen werden.
Dort werden alle Referenzierungsinformationen zurückgesetzt,
wenn alle Abschnitte des Cachespeichers belegt sind und dann
ein Page-fault auftritt. Zu diesem Zeitpunkt wird der Inhalt
des Pufferspeichers TLB ausgewertet und die Referenzierungsin
formationen RI der Abschnitte markiert, für die gültige Seiten
übersetzungen im Pufferspeicher TLB vorliegen. Infolge von Pa
ge-faults werden dann die verbleibenden nicht markierten Cache
speicherabschnitte sukzessive mit den neuen Seiten belegt und
dann die Referenzierungsinformation gehetzt. Dies geschieht so
lange bis alle Cachespeicherabschnitte markiert sind. Sodann
werden wieder alle Markierungen zurückgenommen und der Algo
rithmus beginnt von neuem.
Alternativ zum Auslesen des Inhalts des Pufferspeichers TLB
können die Pufferspeicher-Misses zum Anlaß genommen werdend die
Referenzierungsinformation zu aktualisieren. Infolge eines Puf
ferspeicher-Misses wird der benötigte Eintrag in den Puffer
speicher TLB bestimmt und in den Pufferspeicher geladen. Mit
Hilfe dieses Eintrages wird gleichzeitig der Cachespeicherab
schnitt ermittelt, in den die Seite eingespeichert werden wird.
Da der Pufferspeicher-Miss gleichbedeutend mit einer Referen
zierung dieses Cachespeicher-Abschnittes ist, wird anschließend
dessen Referenzierungsinformation aktualisiert. Beim Clockver
fahren wird das Referenzbit in der Referenzierungsinformation
RI gesetzt und beim Marking-Verfahren wird der entsprechende
Abschnitt des Cachespeichers als benutzt markiert. Im Fall des
LRU-Verfahrens (Fig. 5) wird der Cachespeicherabschnitt, bei
dem der Miss auftrat, zum jüngsten Abschnitt im Stapel gemacht.
Claims (4)
1. Verfahren zum Betrieb eines virtuellen Speichers, der minde
stens einen Arbeitsspeicher (AS) und einen Hintergrundspeicher
(HS) aufweist, für ein Prozessorsystem, bei dem Cachespeicher (CS)
verwendet werden,
- - bei dem der Cachespeicher (CS) in logische Abschnitte (B) von der Größe einer Arbeitsspeicherseite (A) eingeteilt ist,
- - bei dem jedem Abschnitt (B) des Cachespeichers physikalisch fest mindestens eine Arbeitsspeicherseite (A) zugeordnet wird,
- - bei dem jedem Abschnitt (B) des Cachespeichers eine Referenzie rungsinformation (RI) zugeordnet wird, die angibt, ob die zuge ordnete Arbeitsspeicherseite belegt ist,
- - bei dem bei Auftreten eines Page-Faults ein Abschnitt (B) des Cachespeichers (CS) ausgewählt wird, der noch nicht referenziert wor den ist,
- - bei dem eine diesem Abschnitt zugeordnete freie Arbeitsspei cherseite (A) ausgewählt wird,
- - und bei dem für den Fall, daß alle Referenzierungsinformatio nen (RI) eine Belegung ihrer Cachespeicherabschnitte (B) anzeigen, in Abhängigkeit eines die jüngsten Adressenübersetzungen von vir tueller Adresse (V-ADR) in die physikalische Adresse (A-ADR) enthaltenen Pufferspeichers (TLB) die Referenzierungsinforma tionen (RI) der Cachespeicherabschnitte (B) aktualisiert werden.
2. Verfahren nach Anspruch 1,
- - bei dem zur Aktualisierung der Referenzierungsinformation (RI) bei Auftreten eines Page-Faults beim Cachespeicher (CS) für alle Adresseneinträge in dem Pufferspeicher (TLB) die zugeordnete Referenzierungsinformation (RI) gesetzt wird und die übrigen Referenzierungsinformationen zurückgesetzt werden.
3. Verfahren nach Anspruch 1,
- - bei dem die Auswahl eines freien Abschnitts durch Überprüfung der Referenzierungsinformation (RI) erfolgt und für den Fall, daß kein freier Abschnitt existiert, alle Referenzierungsinforma tionen (RI) gelöscht werden,
- - bei dem nach dem Zurücksetzen für alle Adresseneinträge im Pufferspeicher (TLB) die Referenzierungsinformation (RI) der zuge ordneten Cachespeicherabschnitte (B) gesetzt wird.
4. Verfahren nach Anspruch 1,
- - bei dem bei Auftreten eines Fehlzugriffes zum Pufferspeicher (TLB) bei der aufgrund eines Page-Faults erforderlichen Adreß übersetzung bei gefülltem Pufferspeicher (TLB) die Referezie rungsinformation (RI) des zugeordneten Cachespeicherabschnitts (B) ak tualisiert wird.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4429905A DE4429905C1 (de) | 1994-08-23 | 1994-08-23 | Verfahren zum Betrieb eines virtuellen Speichers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4429905A DE4429905C1 (de) | 1994-08-23 | 1994-08-23 | Verfahren zum Betrieb eines virtuellen Speichers |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4429905C1 true DE4429905C1 (de) | 1995-09-07 |
Family
ID=6526373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4429905A Expired - Fee Related DE4429905C1 (de) | 1994-08-23 | 1994-08-23 | Verfahren zum Betrieb eines virtuellen Speichers |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4429905C1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0919927A2 (de) * | 1997-11-26 | 1999-06-02 | Digital Equipment Corporation | Dynamische Speicherzuordnungsverfahren zur Aufrechterhaltung einer gleichmässigen Verteilung von Cachezeitenadressen in einem Adressraum |
DE10127179A1 (de) * | 2001-06-05 | 2002-12-19 | Infineon Technologies Ag | Verfahren zur Verwaltung eines Speichers einer Chipkarte |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155825A (en) * | 1989-12-27 | 1992-10-13 | Motorola, Inc. | Page address translation cache replacement algorithm with improved testability |
EP0549321A2 (de) * | 1991-12-27 | 1993-06-30 | Texas Instruments Incorporated | Verfahren und Einrichtung zur Übersetzung von virtuellen in physikalische Adressen und zum Vergleich von Cachespeichermarken mit hoher Geschwindigkeit |
-
1994
- 1994-08-23 DE DE4429905A patent/DE4429905C1/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155825A (en) * | 1989-12-27 | 1992-10-13 | Motorola, Inc. | Page address translation cache replacement algorithm with improved testability |
EP0549321A2 (de) * | 1991-12-27 | 1993-06-30 | Texas Instruments Incorporated | Verfahren und Einrichtung zur Übersetzung von virtuellen in physikalische Adressen und zum Vergleich von Cachespeichermarken mit hoher Geschwindigkeit |
Non-Patent Citations (1)
Title |
---|
Elektronische Rechenanlagen, 18. Jg., 1976, Heft 3, S. 122-128 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0919927A2 (de) * | 1997-11-26 | 1999-06-02 | Digital Equipment Corporation | Dynamische Speicherzuordnungsverfahren zur Aufrechterhaltung einer gleichmässigen Verteilung von Cachezeitenadressen in einem Adressraum |
EP0919927A3 (de) * | 1997-11-26 | 2000-05-24 | Compaq Computer Corporation | Dynamische Speicherzuordnungsverfahren zur Aufrechterhaltung einer gleichmässigen Verteilung von Cachezeitenadressen in einem Adressraum |
DE10127179A1 (de) * | 2001-06-05 | 2002-12-19 | Infineon Technologies Ag | Verfahren zur Verwaltung eines Speichers einer Chipkarte |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2131066C3 (de) | Anordnung zum Adressieren eines Tabellenspeichers | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE3151745C2 (de) | ||
DE69529283T2 (de) | Adressraumzuweisungsverfahren und -system in einem virtuellen speichersystem | |
DE69526751T2 (de) | Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE69033064T2 (de) | Verfahren zur Zuordnung von reellen Seiten zu virtuellen Seiten mit davon verschiedenen Seitengrössen | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE3803759C2 (de) | ||
DE102008062044B4 (de) | 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration | |
DE3852695T2 (de) | Multiprozessorsystem mit mehreren Speichern. | |
DE2939411C2 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2260353A1 (de) | Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung | |
DE69229667T2 (de) | Simulierte cachespeicher-assoziativität | |
DE2455047A1 (de) | Datenverarbeitungssystem | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
DE10006430B4 (de) | Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE69030072T2 (de) | Schneller Durchschreib-Cache-Speicher | |
DE69130626T2 (de) | Verfahren zur Verwaltung einer Cache-Speicheranordnung | |
DE69808628T2 (de) | Mikroprozessorcachespeicherübereinstimmung | |
DE10392127T5 (de) | Verwendung eines Kontextidentifizierers in einem Zwischenspeicher | |
DE3832758C2 (de) | Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |