-
Im
Gebiet der Datenverarbeitung ist es möglich, die Leistung einer Maschine
durch Erhöhen
der Anzahl der Prozessoren, aus denen sie aufgebaut ist, zu erhöhen. Ein
Typ von Maschinen, der unter dem Namen SMP bekannt ist, ermöglicht den
verschiedenen Prozessoren derselben Maschine, mittels eines Systembusses
in symmetrischer Weise auf ihren Speicher zuzugreifen. Hierbei handelt
es sich um Maschinen mit einem Speicher mit gleichmäßigem Zugriff
in dem Sinne, daß die
Zugriffszeit auf den Speicher für
sämtliche
Daten, auf die zugegriffen wird, im wesentlichen gleich ist. Die
Leistungskurve derartiger Maschinen wächst jedoch nicht linear mit
der Anzahl der Prozessoren an. Eine hohe Anzahl von Prozessoren
bewirkt, daß die
Maschine mehr Probleme der Zugreifbarkeit auf ihre Betriebsmittel
verwaltet als daß sie
Anwendungen ausführt.
Dies hat zur Folge, daß die
Leistungskurve deutlich einknickt, wenn die Anzahl der Prozessoren
einen optimalen Wert überschreitet,
der oftmals auf einen Wert in der Größenordnung von vier geschätzt wird.
Der Stand der Technik schlägt
verschiedene Lösungen
für dieses
Problem vor.
-
Eine
bekannte Lösung
besteht darin, mehrere Maschinen zu Clustern zu gruppieren, derart,
daß sie
untereinander mittels eines Netzes kommunizieren. Jede Maschine
besitzt eine optimale Anzahl von Prozessoren, beispielsweise vier,
und ihr eigenes Betriebssystem. Sie stellt eine Kommunikation mit
einer anderen Maschine immer dann her, wenn sie eine Verarbeitung
an Daten ausführt,
die von dieser anderen Maschine auf dem aktuellen Stand gehalten worden
sind. Die Zeit, die für
diese Kommunikationen notwendig ist, und die Notwendigkeit, an kohärenten Daten
zu arbeiten, schaffen Probleme hinsichtlich der Latenzzeit für umfangreiche
Anwendungen wie beispielsweise verteilte Anwendungen, die zahlreiche Kommunikationen
erfordern. Die Latenzzeit ist die Dauer, die den Zeitpunkt des Sendens
einer Zugriffsanforderung an den Speicher von dem Zeitpunkt trennt,
zu dem die Antwort auf diese Anforderung empfangen wird.
-
Eine
andere bekannte Lösung
ist jene der Maschinen des Typs NUMA. Hierbei handelt es sich um
Maschinen mit einem Speicher mit ungleichmäßigem Zugriff (Non Uniform
Memory Access im Englischen) in dem Sinne, daß die Zugriffszeit auf den Speicher
je nach dem Ort der Daten, auf die zugegriffen wird, unterschiedlich
ist. Eine Maschine des Typs NUMA ist aus mehreren Modulen gebildet,
wovon jedes eine optimale Anzahl von Prozessoren und einen physischen
Anteil des Gesamtspeichers der Maschine enthält. Eine solche Maschine besitzt
einen ungleichmäßigen Speicherzugriff,
weil ein Modul im allgemeinen leichter auf einen physischen Teil
des Speichers zugreift, den es nicht mit einem anderen Modul gemeinsam
nutzt, als auf einen Teil, den es gemeinsam nutzt. Obwohl jedes
Modul einen privaten Systembus besitzt, der seine Prozessoren und seinen
physischen Speicher verbindet, ermöglicht ein sämtlichen
Modulen gemeinsames Betriebssystem, die Gesamtheit der privaten
Bussysteme als ein einziges Bussystem der Maschine anzusehen. Eine logische
Adressierung weist einen Aufenthaltsort einer bestimmten physischen
Speicherstelle eines Moduls zu. Für einen betrachteten Prozessor
werden die Zugriffe auf einen lokalen Speicherabschnitt, der sich physisch
im selben Modul wie der Prozessor befindet, von Zugriffen auf einen
entfernten Speicherabschnitt unterschieden, der sich physisch in
einem oder mehreren anderen Modulen als jenem befindet, in dem sich
der Prozessor befindet.
-
Ein
besonderer Typ der NUMA-Maschinen ist der Typ CCNUMA, d. h. jene
Maschinen mit Cache-Kohärenz
(Cache Coherency im Englischen). Ein gemeinsam genutzter Cache-Mechanismus
bewirkt, daß sich
zu einem gegebenen Zeitpunkt eine gültige, d. h. aktualisierte
Kopie dieses Blocks nicht notwendig an ihrer physischen Aufenthaltsspeicherstelle
befindet. Eine oder mehrere aktualisierte Kopien des Blocks können somit
abhängig
von Anwendungsanforderungen und Systemaufrufen von einem Modul zum
nächsten
wandern. Der physische Speicher, der sich in einem betrachteten
Modul befindet, ist jener, auf den das betrachtete Modul am schnellsten,
weil direkt mittels seines lokalen Systembusses, zugreift. Der physische
Speicher, der in einem anderen Modul entfernt ist, ist jener, auf
den das betrachtete Modul am langsamsten zugreift, weil eine oder mehrere
Transaktionen zwischen Modulen notwendig sind. Der physische Speicher,
der sich lokal im betrachteten Modul befindet, enthält einen
ersten Teil, der speziell den in diesem Modul sich befindenden Daten
zugewiesen ist, und einen zweiten Teil, der speziell den Kopien
von in anderen Modulen sich befindenden Blöcken zugewiesen ist. Der zweite
Teil des physischen Speichers bildet einen entfernten Cache-Speicher
der anderen Module.
-
Ein
im ersten Teil des physischen Speichers befindlicher Block ist nicht
sofort verfügbar,
wenn sein Inhalt keine aktualisierte Kopie darstellt, was beispielsweise
der Fall ist, wenn ein oder mehrere andere Module diesen Block gemeinsam
nutzen und wenn eines dieser anderen Module im Rahmen einer Speicher-Kohärenz eine
Kopie hiervon auf dem aktuellen Stand hält. Um die gemeinsame Nutzung
von in seinem ersten Teil des physischen Speichers befindlichen
Blöcken
mit anderen Modulen zu verwalten, verwendet das betrachtete Modul
eine Fern-Cache-Steuereinrichtung
RCC (Remote Cache Controller im Englischen).
-
Der
Nutzen von Maschinen mit einem Speicher mit ungleichmäßigem Zugriff
und mit Cache-Kohärenz
besteht darin, daß jedes
Modul an Blöcken von
Daten, die sich in einem ersten Teil seines lokalen Speichers befinden,
oder an Kopien in einem zweiten Teil seines lokalen Speichers von
Blöcken, die
sich in einem ersten Teil des Speichers eines anderen Moduls befinden,
arbeitet. Ein betrachtetes Modul muß daher mit anderen Modulen nur
kommunizieren, um an aktualisierten Kopien zu arbeiten, um eine
Datenkohärenz
sicherzustellen. Im Betrieb ist es daher zunächst unwichtig, ob sich ein
Datenblock in einem Modul oder in einem anderen befindet, da jedes
Modul, falls notwendig, in seinem lokalen Speicher Kopien von Blöcken hält, die
es benötigt.
Bei einer Ausführung
des gemeinsamen Betriebssystems in sämtlichen Modulen oder bestimmter
Anwendungen des verteilten Typs kann es indessen vorkommen, daß bestimmte
Daten häufig
von sämtlichen Module
gebraucht werden. Diese Daten betreffen in einem nicht beschränkenden
Beispiel Prozeßzuweisungstabellen,
Tabellen offener Dateien oder Tabellen von Sperrensetzungen für gemeinsam
genutzte Betriebsmittel. Die Kohärenz
dieser Daten bringt die Gefahr mit sich, daß zahlreiche Austauschvorgänge zwischen
Modulen notwendig sind und daß somit
die von solchen Maschinen erwartete Erhöhung der Leistung gestört wird.
-
Andererseits
ist es günstig,
einen virtuellen Adressierungsmodus zu verwenden, um Prozesse von
einer Datenverarbeitungsmaschine auszuführen. Wie im Stand der Technik
bekannt ist, ist jedem von der Maschine ausgeführten Prozeß ein virtueller Adressierungsraum
zugewiesen. Der virtuelle Adressierungsraum ermöglicht die Beseitigung von
Speichergrößenbeschränkungen,
die in einem physischen Adressierungsraum auftreten können. Die Prozesse
(Process im Englischen) und die Prozeßstränge (Thread im Englischen)
innerhalb eines Prozesses greifen auf ihren virtuellen Adressierungsraum
mittels effektiver Adressen zu, die Nummern logischer Seiten erzeugen,
wovon für
jede durch die Maschine eine entsprechende Nummer einer physischen
Seite (Frame im Englischen) geschaffen wird, auf die im physischen
Speicher nach Maßgabe
des wirklichen Zugriffsbedarfs zugegriffen werden kann. Der virtuelle
Speichermechanismus ist vom Cache-Speicher-Kohärenzmechanismus unabhängig. Falls
jedoch ein Prozeßstrang
des Prozesses in einem Prozessor ausgeführt wird, der sich in einem Modul
befindet, das von dem Modul verschieden ist, in dessen Speicher
sich die physische Seite befindet, auf die durch diesen Prozeßstrang
zugegriffen wird, bringt die Ausführung des Cachespeicher-Kohärenzprotokolls
zwischen Modulen die Gefahr mit sich, die Speicherzugriffe zu verlangsamen
und die Leistungen des Systems zu beeinträchtigen.
-
Die
Komplexität
der Korrespondenzmechanismen und des Bedarfs an physischem Speicher
der von der Maschine ausgeführten
zahlreichen Prozesse hat zur Folge, daß es schwierig ist, im voraus
die Verteilung der physischen Seiten auf die Module zu erfassen,
damit sie logischen Seiten entsprechen.
-
Aus
der
DE 38 55 659 T2 ist
bereits ein Verfahren zum Steuern des Speicherzugriffs in einer Mehrprozessor-Maschine bekannt.
Die Zugriffe der Prozessoren auf den Speicher erfolgen über einen virtuellen
Adressenraum. Beim Auftreten eines Seitenfehlers erfolgt eine Sicherung
des Prozeßzustandes
durch eine Ausnahmeprozedur. Es handelt sich hier jedoch nicht um
eine Maschine vom Typ NUMA. Ferner ist aus der
DE 196 00 428 A1 ein Verfahren zur
interaktiven Protokollierung von Informationen bezüglich der
von einem Prozeß benutzten
Daten bekannt. Bei diesem Verfahren wird eine Ausnahmefunktion aufgerufen,
wenn ein Seitenfehler auftritt. Mit der Ausnahmefunktion werden
die beim Auftreten des Seitenfehlers relevanten Prozeßdaten gesichert. Da
das Verfahren auf einer Maschine mit einem einzelnen Prozessor ausgeführt wird,
können
die mit einem ungleichmäßigen Zugriff
auf einen Speicher in einer Maschine vom Typ NUMA verbundenen Schwierigkeiten
nicht auftreten.
-
Der
Erfindung liegt die Aufgabe zugrunde, bei einem Verfahren zum Steuern
des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff,
der auf mehrere Module verteilt ist, beim Auftreten eines Seitenfehlers
erster Stufe jeden neuen ersten Zugriff eines Prozessors auf eine
Seite des physischen Speichers unabhängig davon zu ermöglichen,
ob diese Seite abgeschlossen ist oder nicht. Gelöst wird diese Aufgabe durch
das im Patentanspruch 1 angegebene Verfahren.
-
Die
bei dem erfindungsgemäßen Verfahren erfolgende
Aktivierung der Aufzeichnungs-Funktion bei jeder Ausnahme des Typs
Seitenfehler erster Stufe ermöglicht
die Erfassung jedes neuen ersten Zugriffs eines Prozessors auf eine
Seite des physischen Speichers unabhängig davon, ob diese Seite
abgeschlossen ist oder nicht. Der Identifizierer des Prozessors
und die Nummer der physischen Seite ermöglichen die Kenntnis, in welchem
Modul sich die physische Seite und der Prozessor befinden. Zwischen
dem Prozessor und dem physischen Speicher ist eine gute Affinität vorhanden,
falls sie sich im selben Modul befinden. Das Datum ermöglicht die
Definition des Zeitpunkts, zu dem dieser neue erste Zugriff entsteht,
es ermöglicht
die Korrelation der Spurergebnisse untereinander oder mit anderen
Ergebnissen, die anderswo erhalten wurden. Der Prozeßstrang-Identifizierer ermöglicht die
Kenntnis, mit welchem Prozeßstrang
der Speicherzugriff verbunden ist, und somit die Korrelation verschiedener
Speicherzugriffe, die mit demselben Prozeßstrang verbunden sind, der
beispielsweise im Lauf der Zeit in verschiedenen Prozessoren ausgeführt werden kann.
Der Wert der effektiven Adresse ermöglicht die Präzisierung
des Adressierungstyps, der für
den Prozeßstrang
verwendet wird, wobei sich die Nummer der physischen Seite, die
derselben effektiven Adresse zugewiesen ist, im Lauf der Zeit entwickeln
kann, falls die physische Seite nicht verriegelt ist. Für die Kommunikation
können
verschiedene Prozeßstränge dieselbe
effektive Adresse verwenden.
-
Beim
Starten des Verfahrens gleichzeitig zur Ausführung von Prozessen in der
Maschine ist somit sichergestellt, daß sämtliche Zugriffskonfigurationen auf
den physischen Speicher erfaßt
werden. Bei einem vom Start der Ausführung der Prozesse in der Maschine
unabhängigen
Start des Verfahrens schlägt
die Erfindung vor, sämtliche
Einträge
in der Korrespondenztabelle LPT beim Start des Verfahrens ungültig zu
machen.
-
Die
Erfindung schlägt
außerdem
eine Maschine zur Ausführung
des Speicherzugriff-Steuerverfahrens vor, wie in Patentanspruch
7 angegeben.
-
Die
Erfindung wird besser verständlich
mit Hilfe der Beschreibung eines Ausführungsbeispiels mit Bezug auf
die Figuren.
-
1 erinnert
kurz an die Funktionsweise einer segmentierten virtuellen Adressierung.
-
2 zeigt
Korrespondenztabellen zwischen Nummern physischer Seiten und Nummern
logischer Seiten.
-
3 zeigt verschiedene Stufen von Seitenfehlern
sowie die Hauptaktionen, die sich daraus gewöhnlich ergeben.
-
4 zeigt Abwandlungen von 3 gemäß der Erfindung.
-
5 zeigt
ein Beispiel einer Datenverarbeitungsmaschine zur Ausführung der
Erfindung.
-
6 zeigt
eine Tafel gemäß dem Steuerverfahren
der Erfindung.
-
7 zeigt
weitere Schritte des Verfahrens in Übereinstimmung mit der Maschine.
-
1 erinnert
kurz an die Funktionsweise einer segmentierten virtuellen Adressierung,
deren Begriffe für
die Erläuterung
der Erfindung mit Bezug auf die folgenden Figuren nützlich sein
können.
-
Effektive
Adresse EA wird eine logische Entität 113 genannt, die
im wesentlichen drei Felder STE, SPN und SPRA umfaßt. Das
Feld STE enthält eine
Anzahl i von Bits, um einen Eintrag einer Segmenttabelle 106,
die aus 21 Registern gebildet ist, zu codieren. Beispielsweise
enthält
die Tabelle 106 sechzehn Register, wenn der Wert von i
vier ist. Jedes Register ist dazu vorgesehen, eine Anzahl m von Bits
zu halten, um auf einen Segmentidentifizierer SD Bezug zu nehmen.
Dies ermöglicht
die Segmentierung eines Adressierungsraums in 2m Segmente
des virtuellen Speichers. Beispielsweise ermöglicht der Identifizierer SD
die Unterscheidung von sechzehn Megasegmenten, wenn der Wert von
m vierundzwanzig ist. Das Präfix "Mega" ist hier im Sinne
der Datenverarbeitung zu verstehen, d. h., es gibt den Wert eintausendvierundzwanzig
Kilo an, wobei Kilo seinerseits den Wert von eintausendvierundzwanzig Einheiten
besitzt. Das Feld SPN enthält
eine Anzahl j von Bits, um eine Seitennummer in einem Segment zu
codieren. Ein Segment kann somit 2j verschiedene
Seiten des virtuellen Speichers enthalten, beispielsweise vierundsechzig
Kilo Seiten, wenn der Wert von j sechzehn ist. Das Feld SPRA enthält eine Anzahl
k von Bits, um eine auf ein Byte bezogene Adresse in einer Seite
zu codieren, wobei das Byte die kleinste Datenentität ist, im
allgemeinen acht oder neun Bits, die durch das System adressierbar
sind. Eine Seite kann somit 2k Bytes enthalten,
beispielsweise vier Kilobytes, falls der Wert von k zwölf ist.
-
Eine
Verknüpfung
des Segmentidentifizierers SD und der Seitennummer SPN ergibt eine Nummer
LPN 107 der logischen Seite. Es ist dann möglich, auf
2m+j verschiedene logische Seiten Bezug zu
nehmen, beispielsweise auf ein Tera Seiten, wenn der Wert von m
+ j vierzig ist. Wenn die Bytes jeder Seite mittels des Feldes SPRA
adressiert werden, kann somit ein virtueller Adressenraum mit vier
Peta Bytes erhalten werden, wobei die Präfixe Tera und Peta im informationstechnischen
Wortsinn zu verstehen sind.
-
Eine
Tabelle LPT 110 für
logische Seiten ermöglicht
die Herstellung einer Entsprechung zwischen einer Nummer PPN einer
physischen Seite und einer gegebenen Nummer LPN einer logischen Seite.
Durch Verknüpfen
der Nummer PPN der physischen Seite mit einer relativen Adresse
PRA in der Seite, auf die somit Bezug genommen wird, wird eine physische
Adresse 112 eines Bytes erhalten. Die relative Adresse
PRA ist eine direkte Kopie des Feldes SPRA. Wenn beispielsweise
die Nummer der physischen Seite mit zwanzig Bits codiert ist, ist
es möglich,
eine physische Adresse zu erhalten, die mit zweiunddreißig Bits
codiert ist, um auf einen physischen Speicher mit vier Megabytes
zuzugreifen.
-
Von
den verschiedenen möglichen
Mechanismen für
die Nutzung der Tabelle
110 kann derjenige des Patents
US 4279014 von J.C. Cassonnet
u. a. erwähnt
werden, wovon bestimmte Bezugnahmen von
1 in der
vorliegenden Beschreibung mit Bezugnahme auf diese Figur beliebig
aufgenommen worden sind.
-
Die
virtuelle Adressierung ermöglicht,
einen Adressierungsraum zu erhalten, der deutlich größer als
der verfügbare
physische Adressierungsraum ist. Der Fachmann kennt noch weitere
Vorteile wie etwa jenen, daß die
dynamische Änderung
von Verbindungen mit der Ausführung
von Programmen erleichtert wird.
-
Die
erhebliche Größe des virtuellen
Adressenraums bewirkt, daß zu
einem gegebenen Zeitpunkt auf eine logische Seite mit Nummer LPN
nicht notwendig in der Tabelle LPT Bezug genommen wird. Es kann
indessen vorkommen, daß eine
physische Seite mit Nummer PPN im physischen Speicher vorhanden
ist, die der logischen Seite mit Nummer LPN entspricht. 2 zeigt
eine Tabelle PPT 55 mit inverser Korrespondenz, worin auf
jeden Eintrag durch eine Nummer PPN einer physischen Seite Bezug
genommen wird, derart, daß der
gesamte verwendete physische Adressierungsraum abgedeckt wird.
-
Jeder
Eintrag der Tabelle 55 ermöglicht einen Zugriff auf eine
Nummer LPN der logischen Seite, die der Nummer PPN der physischen
Seite entspricht, sowie auf eine Gesamtheit von Eigenschaften der
physischen Seite PPN, beispielsweise auf einen Indikator Pin, einen
Indikator Lib und einen Indikator ES. Ein Zustand Y des Indi kators
Pin bedeutet, daß die
physische Seite mit Nummer PPN im physischen Speicher verriegelt
ist, d. h., daß sie
durch den Inhalt einer anderen physischen Seite nicht ersetzt werden
kann. Ein Zustand N des Indikators Pin gibt an, daß die physische
Seite mit Nummer PPN nicht im physischen Speicher verriegelt ist,
d. h., daß sie durch
den Inhalt einer anderen physischen Seite ersetzt werden kann, beispielsweise
dann, wenn die Größe des physischen
Speichers nicht ausreicht, um sämtliche
Korrespondenzen zwischen logischen Seiten und physischen Seiten
zu erfüllen.
Ein Zustand Y des Indikators Lib gibt an, daß die physische Seite mit Nummer
PPN frei ist, d. h., daß sie
für eine
Entsprechung mit einer eventuellen logischen Seite mit neuer Nummer
LPN verfügbar
ist. Ein Zustand Y des Indikators ES gibt an, daß die physische Seite mit Nummer
PPN momentan mittels einer Eingabe/Ausgabe-Vorrichtung ersetzt wird, die mit einem
Massenspeicher in Kommunikation steht, und daß diese physische Seite daher
nicht verfügbar
ist.
-
3a zeigt,
wie ein Prozessor CPU wie beispielsweise einer jener, die später mit
Bezug auf
5 dargestellt werden, auf eine
physische Seite mit Nummer PPN zugreift, die der logischen Seite
mit Nummer LPN entspricht, die er in Übereinstimmung mit den Erläuterungen
mit Bezug auf
1 adressiert. Ein Zugriff auf
die Nummer LPN einer logischen Seite im Schritt
59 ruft
eine Abfrage der Tabelle
110 hervor, beispielsweise gemäß einem
Modus, der jenem ähnlich
ist, der in dem Patent
US 4279014 mit Bezug
auf deren
3c erläutert wird. Falls der Prozessor
CPU im Schritt
60 feststellt, daß ein gültiger Eintrag der Tabelle
LPT die Nummer LPN der logischen Seite enthält, greift er im Schritt
61 direkt
auf die entsprechende physische Seite mit Nummer PPN zu. Andernfalls
ruft der Prozessor CPU im Schritt
62 eine Ausnahme hervor,
die Seitenfehler erster Stufe genannt wird, um zu melden, daß die Nummer
LPN der logischen Seite in der Tabelle LPT
110 fehlt. Die im
Schritt
62 hervorgerufene Ausnahme hat die Wirkung, die
Softwarefunktion V_Neuladen im Schritt
63 zu aktivieren.
Die Funktion V_Neuladen wird im physischen Adressierungsmodus in
der Weise aktiviert, daß der
Inhalt der Tabelle LPT modifiziert wird, damit eine Nummer PPN einer
physischen Seite der Nummer LPN der logischen Seite entspricht.
Der physische Adressierungsmodus besteht darin, direkt die Adresse
112 zu
verwenden, ohne den Mechanismus von
1 zu durchlaufen.
Ein Schritt
69 prüft
anschließend,
ob die Rückgabe
der Funktion V_Neuladen erfolgreich ist, d. h. ob die Seite mit Nummer
PPN im physischen Speicher vorhanden ist. Der Prozessor CPU kann
dann auf die physische Seite mit Nummer PPN im Schritt
61 zugreifen.
Andernfalls liegt der Fall eines Seitenfehlers zweiter Stufe vor.
Der Prozessor CPU ruft dann im Schritt
70 die Aktivierung
einer Softwarefunktion hervor, die p_erhalten genannt wird. Es ist
möglich,
die Funktion p_erhalten im virtuellen Adressierungsmodus in der Weise
zu aktivieren, daß der
Inhalt der Tabelle PPT modifiziert wird, damit eine Nummer PPN einer
physischen Seite einer Nummer LPN einer logischen Seite entspricht.
Der virtuelle Adressierungsmodus vereinfacht die Ausführung komplexer
Algorithmen, die den Rahmen der vorliegenden Erfindung verlassen.
Die Funktion p_erhalten aktiviert im Schritt
71 eine Funktion,
die p_eingeben genannt wird, im virtuellen Adressierungsmodus. Die
Funktion p_erhalten enthält
außerdem
andere Schritte, die nicht gezeigt sind, weil sie für das Verständnis der
Erfindung nicht direkt von Nutzen sind. Beispielsweise werden nach einer
Freigabe der physischen Seite mit Nummer PPN, um ihre Stelle der
logischen Seite mit Nummer LPN zuzuweisen, sämtliche Einträge der Tabelle
110, die
vorher eine Entsprechung mit dieser Nummer PPN der physischen Seite
gebildet haben, ungültig gemacht.
Es sollte angemerkt werden, daß nur
die nicht abgeschlossenen physischen Seiten freigegeben werden können. Nach
der Ausführung
des Schrittes
71 kann der Prozessor CPU dann auf die physische
Seite mit Nummer PPN im Schritt
61 zugreifen.
-
3b zeigt
die wesentlichen Schritte der Funktion V_Neuladen, um den Seitenfehler
erster Stufe aufzulösen.
Im Schritt 64 fragt die Funktion V_Neuladen die Tabelle
PPT 55 ab. Wenn die Funktion v_Neuladen im Schritt 65 eine
Nummer PPN einer physischen Seite findet (56), die auf die Nummer LPN
der logischen Seite Bezug nimmt, die den Fehler in der Tabelle LPT
erzeugte, aktiviert die Funktion V_Neuladen im physischen Adressierungsmodus
die Funktion p_eingeben im Schritt 66. Andernfalls endet die
Funktion V_Neuladen im Schritt 68 und leitet ein Abbruchsignal
zurück,
um das Fehlen eines erfolgreichen Zugriffs auf die Tabelle PPT 55 zu
melden. Nach der Ausführung
des Schrittes 66 endet die Funktion V_Neuladen im Schritt 67,
indem sie ein Erfolgssignal zurückleitet,
um zu melden, daß in
der Tabelle LPT eine Entsprechung für die Nummer LPN der logischen
Seite geschaffen worden ist.
-
3c erläutert die
wesentlichen Aktionen der Funktion p_eingeben, die im Schritt 74 beginnt. Im
Schritt 75 wird die Nummer LPN der logischen Seite, die
sich aus den Schritten vor dem Schritt 74 ergibt, in die
Tabelle LPT 110 mit (58) der entsprechenden Nummer PPN
der physischen Seite eingegeben (57).
-
Die 4a und 4b sind
den 3a bzw. 3b bis
auf die Schritte 71 und 66 ähnlich, die durch die Schritte 72 bzw. 73 ersetzt
sind, die eine Funktion P_Eingeben aktivieren, die von der Funktion
p_eingeben verschieden ist und die in der Beschreibung mit Hilfe
von Großbuchstaben
unterschieden wird.
-
4c erläutert die
wesentlichen Aktionen der Funktion P_Eingeben, die im Schritt 76 beginnt. Im
Schritt 77 aktiviert die Funktion P_Eingeben eine Aufzeichnungs-Funktion
(Trace), die in der folgenden Beschreibung erläutert wird. Im Schritt 78 aktiviert
die Funktion P_Eingeben die ursprüngliche Funktion p_eingeben.
Diese Ausführung
ist jene, die eine gute Anpaßbarkeit
des Aufzeichnungs-Verfahrens an einen beliebigen Maschinentyp ermöglicht,
indem sie die Funktionsweise der Maschine, auf die sie angewendet
wird, so wenig wie möglich
stört.
Es könnte nämlich in
Betracht gezogen werden, einen besonderen Prozeß für die Ausführung der Aufzeichnung zu erzeugen.
Dieser Prozeß brächte indessen
die Gefahr mit sich, die Maßnahmen
durch die Betriebsmittel zu stören,
insbesondere was den Speicher und die Prozessoren betrifft, die
ihm zugewiesen sind. Es könnte
auch in Betracht gezogen werden, eine Hardware-Vorrichtung zu verwenden,
die die Speicherzugriffe erkundet, etwa einen spezifischen Bus-Controller.
Indessen wäre
diese Vorrichtung notwendig mit dem Hardware-Aufbau der Maschine
verbunden, für die
sie entworfen worden wäre.
Im Gegensatz dazu bildet jede Ausführung der Aufzeichnungs-Funktion einen
integralen Bestandteil des Prozeßstrangs, für den sie eine Kopie der Speicherzugriffe
bildet.
-
5 zeigt
ein Beispiel der Datenverarbeitungsmaschine 17, die mehrere
Module 14, 15 enthält, die durch einen Bus 16 in
der Weise verbunden sind, daß dasselbe
Betriebssystem in sämtlichen
Modulen läuft.
Das Modul 14 enthält
mehrere Prozessoren 0, 1, 2, 3,
während
das Modul 15 mehrere Prozessoren 4, 5, 6, 7 enthält, wobei
diese Prozessoren im folgenden mit CPU bezeichnet werden. Jeder
Prozessor CPU enthält
mehrere interne Register, wovon in der folgenden Beschreibung eine
Beschränkung auf
ein Befehlsadressenregister IAR, ein Verbindungsregister LR, ein
Verzweigungsregister CTR und ein Zeitbasisregister TBR vorgenommen
wird. Die Register IAR, LR und CTR dienen dem Prozessor CPU, zu
dem sie gehören,
dazu, Befehlsfolgen während
der Ausführung
eines Prozeßstrangs
Th, der dem Prozessor CPU unterliegt, auszuführen. Das Register TBR dient
dem Prozessor CPU, zu dem es gehört,
dazu, bei Bedarf ein während
der Ausführung auftretendes
Ereignis zu datieren. Jedes Modul 14, 15 enthält eine
physische Speichereinheit 8, 9, und ein Fernsteuerelement
RCC 10, 11 für
Cache-Kohärenz,
das durch den Bus 16 mit dem oder den anderen Modulen kommuniziert.
-
Ein
Prozessor CPU des Moduls 14 kann mittels eines Busses 12 direkte
lokale Zugriffe auf die physische Speichereinheit 8 und
direkte entfernte Zugriffe auf die physische Speichereinheit 9 über die Steuerelemente 10, 11 und
den Bus 16 ausführen. Ebenso
kann ein Prozessor CPU jedes anderen Moduls 15 mittels
eines Busses 13 lokale direkte Zugriffe auf den physischen
Speicher 9 und entfernte direkte Zugriffe auf die physische
Speichereinheit 8 über die
Steuerelemente 11, 10 und den Bus 16 ausführen. Die
Gesamtheit der Speichereinheiten 8, 9 bildet den
physischen Speicher der Maschine, der durch ein einziges Betriebssystem
verwaltet wird, das sämtlichen
Modulen gemeinsam ist. Da die entfernten Zugriffe länger als
die lokalen Zugriffe dauern, ist die Maschine vom Typ NUMA, d. h.
mit ungleichmäßigen Speicherzugriff.
-
Jeder
Prozessor besitzt einen Identifizierer, der ihn von den anderen
Prozessoren unterscheidet, wobei ihm dieser Identifizierer in Abhängigkeit
vom Modul zugewiesen ist, in dem er sich befindet, beispielsweise
eine Zahl von 0 bis 3 für
das Modul 14, eine Zahl von 4 bis 7 für das Modul 15 usw.
Die Nummer einer physischen Seite schafft eine Unterscheidung des
Moduls, in dem sie sich befindet, beispielsweise die Hexadezimalzahlen
0 bis FFFF im Modul 14, falls der Speicher 8 zweihundertsechsundfünfzig Megabytes
enthält,
die Zahlen 10000 bis 2FFFF im Modul 15, falls der Speicher 9 fünfhundertzwölf Megabytes
enthält,
usw.
-
Die
Maschine 17 enthält
verschiedene Mittel für
die Ausführung
der in den 3 und 4 gezeigten Schritte.
Die Schritte 59 bis 62 werden durch Hardware-Mittel
wie etwa Logikgatterschaltungen und Mikrosoftware-Mittel ausgeführt. Diese
Mittel finden sich in jedem Prozessor CPU der Maschine. Die Korrespondenztabellen 110 und 55 befinden
sich im physischen Speicher 8, 9 der Maschine.
Auf die Korrespondenztabelle 110 kann jeder Prozessor CPU
im physischen Adressierungsmodus direkt zugreifen. Die Korrespondenztabelle 110 befindet
sich in einem einzigen Modul oder ist auf mehrere Module verteilt. Der
Schritt 63 ruft Software-Mittel auf, d. h. Mittel, die aus
Befehlsfolgen gebildet sind, die in Form eines im physischen Speicher 8, 9 der
Maschine befindlichen Textes codiert sind, auf den jeder Prozessor
CPU im physischen Adressierungsmodus zugreift, weil dieser Schritt
einen direkten Eingriff in die Korrespondenztabelle 110 auslöst, die
daher zu diesem Zeitpunkt nicht in einem virtuellen Adressierungsmodus
verwendet werden kann. Die Schritte 64 bis 68 sind
daher durch Software-Mittel
verwirklicht, die den physischen Adressierungsmodus verwenden. Der
Schritt 70 nimmt andere Software-Mittel in Anspruch, die
den virtuellen Adressierungsmodus verwenden. Der virtuelle Adressierungsmodus
erleichtert eine Ausführung komplexer
Funktionen, Listendurchläufe,
Zugriffe auf Massenspeicher über
Eingänge/Ausgänge usw.
Er wird durch das Fehlen eines direkten Eingriffs in die Elemente
des virtuellen Speichermechanismus, wie er mit Bezug auf 1 beschrieben
worden ist, ermöglicht.
Die Schritte 74 und 75 werden durch Software-Mittel
ausgeführt,
die den physischen Adressierungsmodus oder den virtuellen Adressierungsmodus
in einer Adressierungsraum-Zone verwenden, in der Nummern LPN logischer
Seiten und Nummern PPN physischer Seiten übereinstimmen und in der Tabelle
PPT verriegelt sind.
-
Die
Mittel der Schritte 63 bis 75 sind nicht ausschließlich aus
Codezeilen gebildet, die sich im Speicher der Maschine befinden,
sondern außerdem aus
Schaltungen, die sich in jedem Prozessor befinden, um diese Codezeilen
zu interpretieren und um die Aktionsfolgen auszulösen, die
sich aus dieser Interpretation ergeben. Dies ist im Stand der Technik vollkommen
bekannt.
-
6 zeigt
eine Tafel, die aus mehreren Spalten gebildet ist. Die erste Spalte
enthält
eine Folge von Zeitangaben, die in Stunden, Minuten, Sekunden und
Nanosekunden ausgedrückt
sind. Jeder Zeitangabe entspricht eine Aufzeichnung, die in den folgenden
Spalten im einzelnen angegeben ist und, die zu der in derselben
Zeile der ersten Spalte verzeichneten Zeit vorgenommen wurde. Die
Zeitangabe ermöglicht
die Bildung von Korrelationen mit den sonstigen erhaltenen Ergebnissen.
-
Die
zweite Spalte enthält
den Namen Pnom des Prozesses. Dieser Name des Prozesses ermöglicht die
makroskopische Erkennung des Prozesses, der einen Speicherzugriff
ausgeführt
hat, woraus sich die Spur ergibt. Diese Spalte ist optional.
-
Die
dritte Spalte enthält
einen Identifizierer Pid des obengenannten Prozesses, der im allgemeinen
durch das Betriebssystem für
jeden erzeugten Prozeß automatisch
zugewiesen wird.
-
Die
vierte Spalte enthält
einen Prozeßstrang-Identifizierer
Tid, der vom in der dritten Spalte identifizierten Prozeß, der insbesondere
für die
Aufzeichnung verantwortlich ist, ausgeführt wird.
-
Die
fünfte
Spalte enthält
einen Identifizierer des Prozessors CPU, der dem in der vierten
Spalte angegebenen Prozeßstrang
zu der Zeit ausführte,
zu der die Aufzeichnung erfolgte. Die Kenntnis dieses Identifizierers
ermöglicht
die Bestimmung des Moduls, in dem sich der Prozessor CPU befindet.
Beispielsweise gibt ein Wert von 0 bis 3 an, daß sich der Prozessor
im Modul 14 befindet, ein Wert von 4 bis 7 gibt
an, daß sich
der Prozessor im Modul 15 befindet. Bei Hinzufügung eines
weiteren Moduls mit sechs Prozessoren gibt ein Wert zwischen 8 und 13 an,
daß sich
der Prozessor in diesem zusätzlichen
Modul befindet. Eine gemeinsame Auswertung der fünften und der vierten Spalte
ermöglicht
die Bestimmung, wie die Prozeßstränge in den
Modulen verteilt sind.
-
Die
sechste Spalte enthält
ein Signal IT, dessen Wert Y einen Unterbrechungseingriff angibt.
Im anderen Fall ist der Wert N. Ein Wert Y gibt an, daß die Informationen,
die den in der vierten Spalte identifizierten Prozeßstrang
betreffen, nicht signifikant sind. Die zum Zeitpunkt des Seitenfehlers
ausgeführten
Befehle sind nämlich
eigentlich nicht jene des Prozeßstrangs,
sondern jene einer Unterbrechungssteuerung.
-
Die
siebte Spalte enthält
den hexadezimal codierten Wert des Registers LR des Prozessors CPU,
auf den in der fünften
Spalte derselben Zeile Bezug genommen wird. Der Wert des Registers
LR ist die Adresse des Befehls, der in einer Codesequenz einem Funktionsaufruf
folgt, der dem vom Prozessor CPU ausgeführten momentanen Befehl folgt.
-
Die
achte Spalte enthält
den hexadezimal codierten Wert des Registers IAR des Prozessors CPU,
auf den in der fünften
Spalte derselben Zeile Bezug genommen wird. Der Wert des Registers
IAR ist die Adresse des vom Prozessor CPU ausgeführten momentanen Befehls in
der Codesequenz. Die Werte der Register LR und IAR ermöglichen
beispielsweise die Ableitung, ob der Prozeßstrang Tid im Kernmodus ausgeführt wird,
d. h., daß infolge
eines Systemaufrufs die Codesequenz einer Kernfunktion und nicht
eine zum Prozeßstrang
Tid gehörende Codesequenz
selbst ausgeführt
wird. Diese Werte ermöglichen
daher die Herstellung einer Beziehung zwischen einer Zuweisung einer
Seite zum Prozeßstrang
Tid und ihrem Ausgangspunkt als logischer Entität, dem dem Prozeßstrang
eigenen Code oder dem dem Kern eigenen Code. In einem Verfahren
zur Optimierung der Maschine ermöglichen
die in der siebten und in der achten Spalte erhaltenen Werte im Vergleich
zu jenen, die in den anderen Spalten erhalten werden, beispielsweise
die Entscheidung, den Code umzuorganisieren.
-
Die
neunte Spalte enthält
die hexadezimal codierte effektive Adresse EA, auf die der Prozeßstrang,
auf den in der vierten Spalte derselben Zeile Bezug genommen wird,
zugreift. Falls jedes Register der Segmenttabelle 106 dazu
vorgesehen ist, einen besonderen Segmenttyp, Daten, Text, gemeinsam genutzte
Bibliothek usw. zu erhalten, kann aus dem Feld STE der von der Spur
betroffene Bereich des virtuellen Adressierungsraums abgeleitet
werden. Auf ein Textsegment, das ausführbaren Code betrifft, wird
im allgemeinen beim Lesen zugegriffen. Die Kenntnis des Segmenttyps
ermöglicht
daher, verschiedene Strategien in Betracht zu ziehen, um die Leistungen
der Maschine zu erhöhen,
etwa ein Kopieren oder ein Wandern von Seiten im Modul, das den
Prozessor enthält,
auf den in der fünften
Spalte derselben Zeile Bezug genommen wird. Wenn in einem Textsegment
viele heiße
Seiten, d. h. Seiten, auf die oft zugegriffen wird, erfaßt werden,
vermeidet eine Reproduktion der Seiten in verschiedenen Modulen
Latenzzeiten, die durch einen Zugriff auf den physischen Speicher
eines entfernten Moduls hervorgerufen werden. Dies ist in dem Maß möglich, in dem
auf dieses Textsegment ausschließlich zum Lesen zugegriffen
wird. Wenn viele heiße
Seiten in einem Datensegment für
die Ausführung
eines Prozeßstrangs
erfaßt
werden und wenn diese Seiten physisch auf mehrere Module verteilt
sind, vermeidet ein Wandern der Seiten und des Prozeßstrangs selbst
in einem einzigen Modul die Latenzzeiten, die durch einen Zugriff
auf den physischen Speicher eines entfernten Moduls hervorgerufen
werden. Diese Lösung
ist vorteilhaft, weil auf ein Datensegment sowohl beim Lesen als
auch beim Schreiben zugegriffen werden kann. Wenn mehrere Prozeßstränge, die auf
verschiedene Module verteilt sind, dieselbe gemeinsam genutzte Bibliothek
verwenden, ist es nützlich,
die dieser Bibliothek zugeordneten Seiten in jedem der betreffenden
Module zu reproduzieren.
-
Das
Feld SPRA ermöglicht
die präzisere
Ableitung, auf welche Adresse im virtuellen Adressenraum zugegriffen
wird. Da sie mit dem Wert des Feldes PRA im physischen Adressierungsraum
identisch ist, ermöglicht
sie die Kenntnis, ob sich die Speicherstelle am Anfang, am Ende
oder innerhalb einer physischen Seite befindet.
-
Die
zehnte Spalte enthält
die hexadezimal codierte Nummer PPN der physischen Seite, die der effektiven
Adresse entspricht, auf die in der neunten Spalte derselben Zeile
Bezug genommen wird. Die Kenntnis dieser Seitennummer ermöglicht die
Ableitung des Moduls, in der sich die physische Seite befindet.
Beispielsweise ermöglicht
eine Kapazität
von zweihundertsechsundfünfzig
Megabytes für
die Speichereinheit 8, auf Nummern PPN physischer Seiten Bezug
zu nehmen, die von 0 bis FFFF laufen; die physischen Seiten, auf
die in dieser Weise Bezug genommen wird, befinden sich dann im Modul 14.
Eine Kapazität von
fünfhundertzwölf Megabytes
für die Speichereinheit 9 ermöglicht,
auf Nummern PPN physischer Seiten Bezug zu nehmen, die von 10000 bis
2FFFF laufen; die physischen Seiten, auf die in dieser Weise Bezug
genommen wird, befinden sich dann im Modul 15. Wenn ein
zusätzliches
Modul hinzugefügt
wird, das mit dem Bus 16 verbunden ist, ist es möglich, auf
Nummern PPN von über
30000 bis zu einem Wert Bezug zu nehmen, der von der Kapazität der Speichereinheit
dieses Moduls abhängt,
usw. bis FFFFF je nach Anzahl der hinzugefügten Module und der Kapazität ihrer
jeweiligen Speichereinheit.
-
Die
zwölfte
Spalte enthält
den hexadezimal codierten Segmentidentifizierer SD, der der effektiven
Adresse entspricht, auf die in der neunten Spalte derselben Zeile
Bezug genommen wird. Der Wert dieses Identifizierers, der mit dem
Wert des Feldes SPN verknüpft
ist, verschafft eine Nummer LPN einer logischen Seite. Wenn die
Nummer LPN der logischen Seite dem Prozeßstrang-Identifizierer Tid
hinzugefügt
wird, der in der vierten Spalte erhalten wird, ist die Eindeutigkeit
der virtuellen Seite sichergestellt. Es ist somit möglich, Nummern
logischer Seiten zu erkennen, die von mehreren Prozeßsträngen verwendet
werden.
-
Die
zwölfte
Spalte enthält
den Wert des Indikators Pin, der der physischen Seite hinzugefügt ist, auf
die in derselben Zeile in der zehnten Spalte Bezug genommen wird.
Ein Zustand Y entspricht im allgemeinen im Speicher verriegelten
Seiten. Wenn in einem Modul, das von jenem verschieden ist, in dem sich
der den Prozeßstrang
Tid ausführende
Prozessor befindet, eine unverschiebbare physische Seite vorhanden
ist, ist die Zugriffszeit auf dieser Seite länger als wenn der Prozessor
sich in demselben Modul befindet. Ein zu häufiger Zustand Y des Indikators Pin
ist daher für
die Leistungen der Maschine nachteilig.
-
Wenn
daher die Speicherseiten, auf die oft, jedoch ausschließlich zum
Lesen, zugegriffen wird, in mehreren Modulen dupli ziert sind, indem
die Seiten zu dem Modul wandern, in dem auf sie am häufigsten zugegriffen
wird, oder indem der Code in der Weise umorganisiert wird, daß dadurch
die Ausführung
erleichtert wird, kann die Funktionsweise der Maschine optimiert
werden.
-
7 zeigt
weitere Schritte des Verfahrens in Übereinstimmung mit der Maschine.
Das Verfahren beginnt durch eine Vorbereitungsphase, die durch die
Schritte 79, 80 und 83 gebildet ist.
Im Speicher 8, 9 der Maschine ist eine Zone reserviert,
in der die in der Tafel von 6 nach Maßgabe ihres
Auftretens verzeichneten Daten vorübergehend festgehalten werden.
Vorteilhaft ist die Speicherzone der Maschine in zwei Puffer 81, 82 für jeden
Prozessor CPU unterteilt. Diese Puffer werden für den Prozessor CPU abwechselnd
gefüllt
und geleert. Die Hinzufügung
eines Pufferpaares zu jedem Prozessor CPU der Maschine 17 vermeidet
konkurrierende Zugriffe auf diese Puffer durch verschiedene Prozessoren. Somit
bleibt ihr Inhalt ohne Verwendung von Sperren kohärent.
-
Im
Initialisierungsschritt 79 wird einer der Puffer, beispielsweise
der Puffer 81, als regulärer Puffer qualifiziert, während der
andere Puffer, in diesem Fall der Puffer 82, als Sicherungspuffer
qualifiziert wird. Der reguläre
Puffer ist derjenige, in den die Trace-Daten nach Maßgabe ihrer Protokollierung
geschrieben werden. Der Sicherungspuffer ist dazu vorgesehen, zum
neuen regulären
Puffer zu werden, wenn der aktuelle reguläre Puffer voll ist.
-
Im
Ersetzungsschritt 80 werden die Schritte 66 und 71 durch
die Schritte 73 bzw. 72 ersetzt. Somit ruft jede
Aktivierung des Schrittes 77 eine Aktivierung des Schrittes 84 hervor,
der die Aufzeichnungs-Funktion beginnt.
-
Im
Invalidierungsschritt 83 werden sämtliche Einträge der Tabelle 110 ungültig gemacht.
In dieser Weise werden die Zugriffe auf logische Seiten, deren Nummer
bereits eine Ent sprechung mit der Nummer der physischen Seite vor
dem Start des Aufzeichnungs-Prozesses besaß, dennoch protokolliert. Dadurch
ist sichergestellt, daß eine
Aufzeichnung sämtlicher
Zugriffstypen auf den physischen Speicher der Maschine beibehalten
wird.
-
Um
ihre Ausführung
zu erleichtern, kann die Vorbereitungsphase im virtuellen Adressierungsmodus
verwirklicht werden.
-
Im
Schritt 85 wird der Zustand des regulären Puffers geprüft. Falls
der reguläre
Puffer voll ist, wird im Schritt 89 der Zustand des Sicherungspuffers
geprüft.
Falls der reguläre
Puffer nicht voll ist, wird dieser im Schritt 86 mit Daten
gefüllt,
die mit Bezug auf 6 erwähnt worden sind. Auf den regulären Puffer wird
im virtuellen Adressierungsmodus zugegriffen, falls der Schritt 77 eine
Aktivierung des Schrittes 72 zum Ergebnis hat. Auf den
regulären
Puffer wird im physischen Adressierungsmodus zugegriffen, falls der
Schritt 77 eine Aktivierung des Schrittes 73 zum Ergebnis
hat.
-
Im
Schritt 87 wird der Zustand des regulären Puffers geprüft. Falls
der reguläre
Puffer voll ist, wird der Zustand des Sicherungspuffers im Schritt 89 geprüft. Falls
der reguläre
Puffer nicht voll ist, endet die Aufzeichnungs-Funktion im Schritt 88,
um zum Schritt 78 zurückzuspringen.
-
Falls
im Schritt 89 der Sicherungspuffer nicht leer ist, endet
die Aufzeichnungs-Funktion im Schritt 88, um zum Schritt 78 zurückzuspringen.
Der reguläre
Puffer bleibt voll und andere Seitenfehler könnten zu einem positiven Ergebnis
bei der Prüfung
im Schritt 85 führen.
Falls der Sicherungspuffer leer ist, wird im Schritt 90 die
Leerung des regulären
Puffers aktiviert. Der virtuelle Adressierungsmodus erleichtert
die Leerung der Speicherzone und die Übertragung ihres Inhalts an
die Massenspeicher wie etwa an Platten.
-
Im
Schritt 91 erlaubt eine Permutation, in der der Sicherungspuffer,
der dann leer ist, zum regulären
Puffer für
spätere
Befüllungen
wird, die Qualifizierung des früheren
Puffers als Sicherungspuffer, der dann seinerseits für spätere Befüllungen
verfügbar wird,
sobald er geleert worden ist, wobei die Spur-Funktion im Schritt 88 endet,
um zum Schritt 78 zurückzuspringen.
-
In
dem Maß,
in dem die Trace-Funktion im virtuellen Adressierungsmodus vorbereitet
wird, um dadurch die Codierung in der Maschine zu erleichtern, ist
es günstig,
daß der
erhaltene Code auf den Beginn der virtuellen Seite ausgerichtet
wird und seine Vollständigkeit
in einer virtuellen Seite beibehält. Dieser
Code wird nämlich
anschließend
aus Gründen,
die oben erläutert
worden sind, im physischen Adressierungsmodus ausgeführt, wobei
es günstig ist,
daß er
die Größe einer
physischen Seite nicht übersteigt.