DE4429905C1 - Verfahren zum Betrieb eines virtuellen Speichers - Google Patents

Verfahren zum Betrieb eines virtuellen Speichers

Info

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
Application number
DE4429905A
Other languages
English (en)
Inventor
Christian Hafer
Josef Plankl
Bjoern Schiemann
Karl Dipl Ing Westerholz
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE4429905A priority Critical patent/DE4429905C1/de
Application granted granted Critical
Publication of DE4429905C1 publication Critical patent/DE4429905C1/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page 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 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.
Fall a
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.
Fall b
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.
DE4429905A 1994-08-23 1994-08-23 Verfahren zum Betrieb eines virtuellen Speichers Expired - Fee Related DE4429905C1 (de)

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)

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

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

Patent Citations (2)

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

* Cited by examiner, † Cited by third party
Title
Elektronische Rechenanlagen, 18. Jg., 1976, Heft 3, S. 122-128 *

Cited By (3)

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