DE4227784A1 - Rechnersystem und verfahren zum beheben eines seitenfehlers - Google Patents
Rechnersystem und verfahren zum beheben eines seitenfehlersInfo
- Publication number
- DE4227784A1 DE4227784A1 DE4227784A DE4227784A DE4227784A1 DE 4227784 A1 DE4227784 A1 DE 4227784A1 DE 4227784 A DE4227784 A DE 4227784A DE 4227784 A DE4227784 A DE 4227784A DE 4227784 A1 DE4227784 A1 DE 4227784A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- page
- data line
- microprocessor
- requested
- 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.)
- Ceased
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
-
- 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/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- 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/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
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
Die Erfindung betrifft ein Speicherverwaltungssystem für
einen Rechner und insbesondere ein Paging-System oder Seiten
wechsel-System, das einen Seitenfehler sofort behebt, wenn
die kritische Datenzeile, die den Fehler verursacht hat,
empfangen wird, ohne den Rest der in einen lokalen Speicher
zu schreibenden Seite abzuwarten.
Wie aus dem Stand der Technik hinlänglich bekannt ist, haben
Mikroprozessoren lokale Speicher, die die Daten speichern,
die von einem Prozeß, der auf dem Mikroprozessor abläuft,
gebraucht werden. Der lokale Speicher kann ein Cache-Speicher
auf dem Prozessoreinschub oder der lokale (Haupt)-
Speicher des Mikroprozessors sein. Zur Verbesserung des
Betriebsverhaltens kann auch der Hauptspeicher als ein Cache-
Speicher oder schneller Hilfsspeicher ausgebildet sein. Der
lokale Speicher arbeitet in der Regel nach einem Paging-
oder Seitenaustausch-System, bei dem eine oder mehrere Seiten
des Speichers für einen sehr schnellen Zugriff des Mikropro
zessors lokal gespeichert sind. Bei einem solchen Paging-
System wird dann, wenn die durch den Mikroprozessor angefor
derten Daten nicht in der Seite oder den Seiten gefunden
werden kann, die momentan im lokalen Speicher gespeichert
sind, ein Seitenfehler ausgegeben, und die Seite, welche die
angeforderten Daten enthält, wird von einem externen, relativ
langsamen Zusatzspeicher oder Hintergrundspeicher unter
Verwendung bekannter Seitenaustausch-Verfahren in den lokalen
Speicher geschrieben. Während des Schreibens der Seite (Ein-
Ausgabe, E/A-Übertragung) wird der die Daten anfordernde
Prozeß vom Mikroprozessor angehalten, bis die gesamte, die
angeforderten Daten enthaltende Seite in den lokalen Speicher
geschrieben ist. Die Periode, während derer der Prozeß ange
halten ist, ist allgemein als die Speicher-Wartezeit bekannt.
Der Zugriff auf Daten im Zusatzspeicher ist im allgemeinen
wesentlich langsamer als der Zugriff auf Daten im lokalen
Speicher, weil Speicher-Latenzzeit oder Speicher-Wartezeit
sowohl die E/A-Datenübertragungs-Wartezeit als auch die
Suchzeit zum Auffinden der angeforderten Daten im Zusatz
speicher umfaßt. Wegen der relativ langen Suchzeit für den
Zusatzspeicher bildet die Wartezeit für die E/A-Datenüber
tragung einen relativ kleinen Anteil der Speicher-Wartezeit.
Bei einer typischen Speicher-Übertragung beispielsweise von
einer Diskette kann es 20 ms dauern, die angeforderte Seite
auf der Diskette zu finden, jedoch nur 2 ms, die angeforderte
Seite zu übertragen (bei einer 4 kB-Seite bei 2 MB/sec),
wenn sie einmal gefunden ist. Daher konzentrierten sich
frühere Anstrengungen zum Vermindern der Speicher-Wartezeit
auf das Vermindern der zum Binden der Seite in den Zusatz
speicher-Vorrichtungen benötigten Zeit. Mit den sinkenden
Kosten für Direktzugriffspeicher (RAM) werden diese immer
häufiger als die Zusatzspeicher-Vorrichtungen eingesetzt.
Der Fachmann weiß, daß RAMs eine relativ kurze Zugriffszeit
haben, und daß daher bei solchen Systemen die Wartezeit für
die E/A-Datenübertragung einen größeren Anteil der Speicher-
Wartezeit ausmacht. Es ist daher wünschenswert, daß diese
Wartezeit für die E/A-Datenübertragung weiter vermindert
wird, um die Speicher-Wartezeit zu minimieren und so ein
möglichst wirksames Beheben oder Auflösen von Seitenfehlern
zu ermöglichen.
Die Wartezeit für die E/A-Datenübertragung wird oft durch
die Wahl einer bestimmten Seitengröße bestimmt. Die Wahl
einer Seitengröße ist kompliziert und basiert auf dem erwarteten
Einsatz des Gerätes, der erwarteten Größe des Hauptspeichers
und verschiedenen Beschränkungen und Randbedingungen
beim Entwurf der Hardware, wie der Größe des Mikroprozessors
und der Anzahl von Verbindungen. Im allgemeinen
vermindert eine größere Seitengröße die Größe und Komplexität
des Mikroprozessors und der Software für den virtuellen
Speicher. Wenn der Hauptspeicher des Systems groß genug ist,
kann durch die größere Seitengröße auch die Anzahl der Seitenfehler
vermindert werden, die zum Laden eines Prozesses
oder eines Ablaufs vom Zusatzspeicher notwendig sind, indem
die bei jedem Fehler wiedergewonnene Datenmenge erhöht wird.
Wenn jedoch der Hauptspeicher nicht groß genug ist, um den
gesamten für die Anwendung notwendigen Satz-Seiten zu fassen,
können größere Seitengrößen die Leistungsfähigkeit des Systems
herabsetzen anstatt sie zu verbessern. Dies ergibt sich
daraus, daß die größeren Seitengrößen den wirksamen, für den
Ablauf eines Prozesses oder von Prozessen auf dem System
verfügbaren Speicher vermindern und dadurch die Wartezeit
jeder einzelnen E/A-Anforderung erhöhen. Beispielsweise bei
einem Prozeß, der auf jeder Seite ein vier-Byte-Datenwort
benötigt, würde das Verdoppeln der Seitengröße bei konstant
bleibender Speichergröße die Anzahl von Datenworten hal
bieren, die der Ablauf gleichzeitig im Speicher aufnehmen
kann, und die für die Übertragung der Seiten vom Zusatz
speicher benötigte Zeitdauer verdoppeln. Wenn die Über
tragungszeit die Zeitspanne dominiert, welche zum Lokali
sieren der angeforderten Seite im Zusatzspeicher benötigt
wird, kann die Verminderung der Leistungsfähigkeit aufgrund
der Seitenübertragungs-Wartezeit ganz erheblich sein.
Bei Paging- oder Seitenaustauschsystemen muß daher in der
Regel ein Kompromiß zwischen der Ausnutzung und den Such
zeiten gemacht werden. Größere Übertragungen vermindern die
Anzahl von Suchoperationen, die notwendig sind, um Daten in
den lokalen Speicher zu ziehen, und, wie bereits gesagt,
Kleinteiligkeit (der Seitengröße) kann eine erhebliche Wir
kung auf die Speicher-Wartezeit und dadurch auf die zum
Beheben von Seitenfehlern benötigte Zeit haben. Selbst wenn
auch kleine Seiten eingesetzt werden können, so geschieht
dies auf Kosten der schlechteren Speicherausnutzung und der
erhöhten Anzahl von Seitenfehlern.
Allgemein sind keine Systeme bekannt, die auf einen Teil
einer Seite zugreifen, bevor sie auf andere Teile einer
Seite zugreifen. Es sind jedoch Systeme, wie der IBM RS
6000, bekannt, die Teile einer Seite in eine Übersetzungs
tafel einschließen können. Ferner ist kein System bekannt,
das ermöglicht, einen Seitenfehler aufgrund einer Teilüber
tragung der Daten innerhalb der Seite zu beheben. Während
ähnliche Techniken eingesetzt wurden, um Latenzzeit-Ausgaben
innerhalb einer Hardware-Cache-Hierarchy zu adressieren, ist
der Anmelderin keine derartige Anwendung bei externen Spei
chervorrichtungen und virtuelle Speichersysteme bekannt.
Es ist daher erwünscht, die Speicher-Latenzzeit oder -Warte
zeit zu vermindern, um die zum Beheben eines Seitenfehlers
notwendige Zeit zu minimieren. Vorzugsweise wird dies dadurch
erreicht, daß der Mikroprozessor in die Lage gebracht wird,
einen Seitenfehler aufgrund einer nur teilweise empfangenen
Seite zu beheben. Es wird insbesondere angestrebt, den Mikro
prozessor in den Stand zu versetzen, die Verarbeitung wieder
aufzunehmen, sobald die kritische Datenzeile, die den Seiten
fehler verursacht hat, im lokalen Speicher empfangen ist, d.
h., ohne auf den Rest der Zeilen in dieser zu übertragenden
Seite zu warten. Ferner wird angestrebt, die E/A-Datenüber
tragungs-Wartezeit weiter zu vermindern, indem zunächst die
kritische Datenzeile gesendet wird, d. h. indem die kritische
Datenzeile, die den Seitenfehler verursacht hat, vor anderen
Datenzeilen innerhalb der angeforderten Seite übertragen
wird.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und
ein Rechnersystem nach Anspruch 6 gelöst.
Die Erfindung erfüllt die genannten Anforderungen, indem sie
ein "kritische Zeile zuerst"-Paging- oder Seitenaustausch
system vorsieht, das es ermöglicht, daß der Mikroprozessor
die Verarbeitung wieder aufnimmt, sobald die kritische Zeile,
welche den Seitenfehler verursacht hat, im lokalen Speicher
des Mikroprozessors empfangen ist. Der Mikroprozessor muß
also nicht auf die Übertragung der gesamten, die angeforderte
Zeile enthaltenden Seite warten, bevor ein Seitenfehler
behoben werden kann, und der Mikroprozessor kann die Verar
beitung wieder aufnehmen, während die Datenübertragung abge
schlossen wird. Die Erfindung sieht auch ein Verfahren vor,
mit dem die kritische Datenzeile, welche den Seitenfehler
verursacht hat, aus der Reihenfolge bezüglich anderer Zeilen
der Seite, auf der sie sich befindet, ausgenommen werden
kann, so daß der Seitenfehler behoben werden kann, sobald
die kritische Zeile in den lokalen Speicher übertragen ist.
Dieser Ansatz kann die E/A-Datenübertragungs-Wartezeit um
einen gegen N gehenden Faktor vermindern, wobei N die Anzahl
der Zeilen der Seite ist.
Die genannten Vorteile der Erfindung werden gemäß eines
neuen Verfahrens zum Beheben eines Seitenfehlers, der während
des Ablaufs eines Prozesses auf einem Mikroprozessor empfan
gen wurde, erzielt. Erfindungsgemäß ist es nicht notwendig,
zunächst eine gesamte neue Datenseite von einem externen
Speichergerät in den Mikroprozessor zu lesen und in einen
Betriebsspeicher des Mikroprozessors zu schreiben, bevor der
Seitenfehler behoben wird. Statt dessen kann der Seitenfehler
behoben werden, nachdem lediglich ein Teil der Seite nach
Maßgabe eines Verfahrens übertragen ist, bei dem
die Adresse eine angeforderte Datenzeile, die den Seiten
fehler verursacht hat, bestimmt wird,
die Übertragung einer Seite, die die angeforderte Datenzeile
enthält, von der Speichereinrichtung in den Betriebsspeicher
gestartet wird,
ermittelt wird, ob die angeforderte Datenzeile von der Spei
chereinrichtung im Betriebsspeicher angekommen ist,
der Prozeß angehalten wird, bis im Ermittlungs-Schritt er
mittelt wurde, daß die angeforderte Datenzeile von der Spei
chereinrichtung im Betriebsspeicher angekommen ist, und
der Prozeß fortgesetzt wird, sobald die angeforderte Daten
zeile ankommt, ohne daß auf alle Datenzeilen der von der
Speichereinrichtung zu übertragenden Seite gewartet würde.
Beim erfindungsgemäßen Verfahren wird ferner vorzugsweise
die angeforderte Datenzeile (die kritische Zeile) übertragen,
bevor andere Datenzeilen der Seite übertragen werden. Dadurch
kann der Seitenfehler behoben werden, sobald die erste Daten
zeile vom E/A-Gerät empfangen wurde.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird
ferner beim Start-Schritt eine Adresse der Seite in einem
Seitenschutzregister gespeichert, und im Ermittlungs-Schritt
eine Adresse einer Datenseite, die momentan von der Speichereinrichtung
in den Betriebsspeicher übertragen wird, mit der
im Seitenschutzregister gespeicherten Adresse verglichen,
wenn die Adressen dieselben sind, wird ein Masken-Bit des
Seitenschutzregisters gesetzt, das der Datenzeile entspricht,
die momentan von der Speichereinrichtung in den Betriebsspeicher
übertragen wird,
ein gewünschtes Masken-Bit des Seitenschutzregisters, das
der angeforderten Datenzeile entspricht, überprüft, und
ermittelt, daß die angeforderte Datenzeile im Betriebsspeicher
angekommen ist, wenn das gewünschte Masken-Bit gesetzt
ist.
Der Halte-Schritt endet, wenn im Ermittlungs-Schritt ermittelt
wurde, daß das gewünschte Masken-Bit gesetzt ist.
Dies kann dadurch erreicht werden, daß der Mikroprozessor
periodisch Daten abfragt und negative Antworten bekommt, bis
das richtige Masken-Bit gesetzt ist, oder indem dem Mikroprozessor
angezeigt wird, daß die angeforderte Datenzeile im
Betriebsspeicher angekommen ist, sobald das richtige Masken-
Bit gesetzt ist.
Das erfindungsgemäße Verfahren wird vorzugsweise auf einem
Rechnersystem realisiert, das einen Betriebsspeicher zum
Speichern mindestens einer Datenseite, einen Zusatzspeicher
zum Speichern mehrerer Datenseiten, einen Mikroprozessor zum
Fahren eines Prozesses und eine Speicher-Steuereinrichtung
aufweist. Während des Betriebs greift der Mikroprozessor für
jede durch den Prozeß oder Ablauf angeforderte Datenzeile
auf den Betriebsspeicher zu und empfängt einen Seitenfehler,
wenn eine die angeforderte Datenzeile enthaltende Seite
nicht im Betriebsspeicher ist. Wenn ein solcher Seitenfehler
empfangen wird, bestimmt der erfindungsgemäße Mikroprozessor
die Adresse der angeforderten Datenzeile, die den Seiten
fehler verursacht hat, und löst dann die Übertragung einer
Seite, welche die angeforderte Datenzeile enthält, von der
Zusatzspeicher-Einrichtung in den Betriebsspeicher aus. Die
Speicher-Steuereinrichtung ermittelt dann, ob die angeforder
te Datenzeile von der Speichereinrichtung im Betriebsspeicher
angekommen ist, und hält die Abarbeitung des Prozesses durch
den Mikroprozessor an, bis die angeforderte Datenzeile von
der Zusatzspeicher-Einrichtung im Betriebsspeicher angekommen
ist. Sobald die angeforderte Datenzeile empfangen wurde,
setzt der Mikroprozessor die Abarbeitung des Prozesses fort.
D. h., mit anderen Worten, der Mikroprozessor wartet nicht
auf alle Datenzeilen der vom Zusatzspeicher zu übertragenden
Seite, bevor er seine Verarbeitung fortsetzt.
Bei einer bevorzugten Ausgestaltung umfaßt der Mikroprozessor
eine Vorrichtung, um die Zusatzspeicher-Einrichtung anzuwei
sen, die angeforderte Datenzeile vor der Übertragung anderer
Zeilen der Seite zum Betriebsspeicher zu senden. D. h., der
Mikroprozessor weist die Zusatzspeicher-Einrichtung an, die
kritische Zeile, die den Seitenfehler verursacht hat, vor
anderen Zeilen innerhalb der Seite zu senden. Die Speicher-
Steuereinrichtung weist vorzugsweise ein Seitenschutzregister
zum Speichern einer Adresse einer die angeforderte Datenzeile
enthaltenden Seite und eine Vergleichervorrichtung auf, um
eine vom Mikroprozessor angeforderte Adresse mit der im
Seitenschutzregister gespeicherten Adresse zu vergleichen.
Der Vergleicher gibt ein HALT-Signal an den Mikroprozessor
aus, wenn diese Adressen übereinstimmen. Das Seitenschutz
register weist vorzugsweise mehrere Masken-Bits auf, eines
für jede Zeile in einer Seite, und die Vergleichervorrichtung
setzt das Masken-Bit des Seitenschutzregisters, das der
Datenzeile entspricht, welche momentan von der Speicherein
richtung in den Betriebsspeicher übertragen wird, wenn die
Seitenadressen dieselben sind. Sobald das Masken-Bit für die
angeforderte Datenzeile gesetzt ist, wird das HALT-Signal
abgeschaltet.
Während der E/A-Übertragung hält die Speicher-Steuerein
richtung die Abarbeitung des Prozesses durch den Mikropro
zessor an, wenn sowohl eine von der Zusatzspeicher-Ein
richtung gelesene Datenzeile eine Adresse hat, die mit der
im Seitenschutzregister gespeicherten Adresse übereinstimmt,
als auch ein der angeforderten Datenzeile entsprechendes
Soll-Masken-Bit des Seitenschutzregisters nicht gesetzt ist.
Der Mikroprozessor darf die Abarbeitung des Prozesses nur
dann fortsetzen, wenn das der angeforderten Datenzeile ent
sprechende Soll-Masken-Bit des Seitenschutzregisters gesetzt
ist.
Die Erfindung ist im folgenden anhand eines bevorzugten
Ausführungsbeispiels mit Bezug auf die Zeichnungen näher
erläutert. Es zeigt
Fig. 1 eine Speicheranordnung mit einem Speicher-Kon
troller, der einen "kritische Zeile zuerst"-
Seitenaustausch nach der Erfindung ausführt,
Fig. 2 ein Seitenschutzregister zum Hinzufügen be
sonderer Kennzeilen zum Speicher-Kontroller, die
dem Mikroprozessor ermöglichen zu starten, sobald
die kritische Datenzeile zum lokalen Speicher
des Mikroprozessors übertragen ist, und
Fig. 3 eine bevorzugte Ausgestaltung des Speicher-Kon
trollers nach der Erfindung.
Die Erfindung befaßt sich mit den beschriebenen Schwierig
keiten aufgrund von Speicher-Latenzzeiten oder -Wartezeiten.
Da die Ein-Ausgabe-Verbindung (E/A-Verbindung) auf einen
Seitenfehler hin normalerweise nicht das Füllen einer ge
samten Seite unterstützt, kann eine Seite nicht im Ganzen
auf einmal übertragen werden, so daß die Datenübertragung
selbst zu einem Engpaß beim Schreiben der Seite wird. Die
Erfindung sieht vor, diesen Engpaß zu eliminieren, indem dem
Mikroprozessor ermöglicht wird, die Bearbeitung der angefor
derten Daten sofort zu beginnen, ohne darauf zu warten, daß
die gesamte Seite übertragen wurde. Ein darauf gerichtetes
System und ein Verfahren sind im folgenden mit Bezug auf
Fig. 1 bis 3 beschrieben.
Bei herkömmlichen Speicherverwaltungssystemen bringt jeder
Seitenfehler ein gewisses Maß an diesem zugeordneter System
verwaltungszeit der Software und Latenzzeit oder Wartezeit
der Hardware mit sich. Ein Teil der Hardware-Wartezeit liegt
in der E/A-Datenübertragungs-(Verbindungs)-Wartezeit, die
einen Teil der gesamten Datenübertragungszeit ausmacht.
Beispielsweise beträgt bei einer 4 kB-Seite und einer 100
MB-Verbindung mit zulässiger Systemverwaltungszeit die E/A-
Datenübertragungs-Wartezeit etwa 40 µs. Da jedoch jede 4 kB-
Seite normalerweise aus 64 Datenzeilen mit 64 Byte steht,
könnte dann, wenn der Prozessor bereits beim Empfang der
ersten Datenzeile im Lokalspeicher wieder zu arbeiten be
gänne, die Verzögerung durch nur dieses Datenübertragungs-
Segment auf weniger als 1 µs (40/64 µs) vermindert werden.
Ein Speichersystem, das dem Mikroprozessor ermöglicht, zu
laufen zu beginnen, sobald die kritische Datenzeile, die den
Seitenfehler verursacht hat, übergeben ist, ist in Fig. 1
gezeigt. Auf einen Mikroprozessor 100 läuft ein Verfahren
oder Prozeß ab, und der Mikroprozessor fordert die von dem
Prozeß benötigten Daten auf herkömmliche Weise an. Der Mikro
prozessor 100 steht insbesondere über einen Ein-Ausgabe-Bus
(E/A-Bus) mit einer Speicher-Steuereinrichtung 102 in Ver
bindung, um zu bestimmen, ob die vom Prozeß benötigten Daten
im lokalen (Haupt) -Speicher 104 sind, und wenn sie dort
sind, werden diese Daten über den E/A-Bus zum Mikroprozessor
100 zurückgeführt. Der Mikroprozessor 100 setzt dann die
Verarbeitung fort. Wenn jedoch die angeforderten Daten nicht
in der momentan im Hauptspeicher 104 gespeicherten Seite
enthalten sind, wird durch die virtuelle Speicherhardware
im Mikroprozessor 100 ein Seitenfehler erkannt. Die Verar
beitung wird unterbrochen, bis der Mikroprozessor 100 eine
physische Speicherseite auswählen kann, um die virtuelle
Seite zu belegen und die Ein-Ausgabe einzuleiten, um die
physische Seite mit gültigen Daten zu füllen. Die Speicher-
Steuereinrichtung 102 benötigt daher keine Kenntnis der
virtuellen Adressen. Der Mikroprozessor 100 kann jedoch, wie
weiter unten beschrieben ist, der Speicher-Steuereinrichtung
102 mitteilen, daß die kritische Zeile der Seite im Haupt
speicher 104 so lange für ungültig gehalten wird, bis die
angeforderten Daten vom Zusatzspeicher 106 ankommen. Selbst
verständlich kann der Hauptspeicher 104 einen Cache-Speicher
haben, und die Speicher-Steuereinrichtung 102 kann eine
Cache-Steuereinrichtung aufweisen, um die Leistungsfähigkeit
der Verarbeitung weiter zu verbessern.
Bei herkömmlichen Cache-Speichersystemen weist die Speicher-
Steuereinrichtung 102 Hinweis (Tag)-Dateien oder andere
ähnliche Einrichtungen auf, um die im Hauptspeicher 104
gespeicherten Daten zu identifizieren. Wenn Hinweis-Dateien
verwendet werden, sind diese vorzugsweise in der Speicher-
Steuervorrichtung 102 selbst gespeichert, und diese Hinweis-
Dateien geben der Speicher-Steuereinrichtung 102 die Fähig
keit, den Mikroprozessor 100 anzuhalten, bis der Haupt
speicher 104 (oder sein Cache-Speicher) während der Speicher-
Ein-Ausgabe gefüllt wird. Die Speicher-Steuereinrichtung 102
kann auch zum Spülen (Flashing) beliebiger Cache-Speicher des
Hauptspeichers 104 verantwortlich sein, um die Ein-Ausgabe-
Kohärenz (Gleichzeitigkeit) zu erhalten. Die Anmelderin hat
nun jedoch herausgefunden, daß es durch Hinzufügen einer
begrenzten Anzahl spezieller Hinweiszeilen zur Speicher-
Steuereinrichtung 102 möglich wird, den Mikroprozessor 100
zu starten, sobald die geeignete Zeile im Hauptspeicher 104
(oder seinem Cache-Speicher) während der Speicher-Ein-Ausgabe
eingegeben wird. D. h., obwohl das System so ausgelegt ist,
daß es eine Unterteilung in Seiten-Einheiten aufrechterhält,
können Seitenfehler erfindungsgemäß auf einer Zeilen-Basis
aufgelöst bzw. behoben werden.
Wie in Fig. 2 gezeigt, können die oben genannten speziellen
Hinweiszeilen für die Speicher-Steuereinrichtung 102 in
einem eigenen Seitenschutzregister 200 untergebracht sein.
Das Seitenschutzregister 200 ist ein spezielles Hinweis-
Register innerhalb der Speicher-Steuereinrichtung 102, das
die Adressen der momentan im Hauptspeicher 104 befindlichen
Seite oder Seiten speichert und anzeigt, welche Zeilen der
gespeicherten Seite oder Seiten gültig sind. Die im Seiten
schutzregister 200 gespeicherten Hinweiszeilen umfassen
Hinweis/Standort-Bits, die eine eindeutige Speicherstelle
identifizieren, d. h. die physische Seite (oder Zeilen), die
im Hauptspeicher 104 enthalten ist (sind). Mit anderen Wor
ten, die Hinweis/Standort-Bits identifizieren die Seite oder
Seiten die momentan im lokalen Speicher des Mikroprozessors
vorhanden sind. Das Seitenschutzregister 200 kann auch eine
Maske aufweisen, die eine Bit-Abbildung ist, welche angibt,
welche Datenzeilen in der gespeicherten Seite gültig sind.
Die Maske wird erfindungsgemäß dazu verwendet, die gültigen
Bits für jede Datenzeile zu setzen, wenn die Daten von dem
E/A-System kommen. Jeder versuchte Zugriff des Mikropro
zessors 100 auf eine Zeile im Hauptspeicher 104 oder dessen
Cache-Speicher mit einer Seitenadresse, die mit der im Sei
tenschutzregister 200 gespeicherten übereinstimmt und deren
gültiges Bit nicht gesetzt ist, bewirkt, daß die Speicherein
richtung 102 den Mikroprozessor anhält. Da dieser HALT Teil
des normalen Speicherzyklus ist, kann der Mikroprozessor 100
die angeforderten Daten von der den Fehler verursachenden
Seite einordnen und den Betrieb fortsetzen, sobald die Ein-
Ausgabe beginnt und dadurch parallel mit der Ein-Ausgabe
arbeiten und die Wirkung der E/A-Datenübertragungs-Latenzzeit
um einen Faktor nahe N für eine Seite mit N-Datenzeilen
vermindern.
Eine bevorzugte Ausgestaltung der Speicher-Einrichtung 102
nach der Erfindung ist mit weiteren Einzelheiten in Fig. 3
gezeigt. Wie gezeigt, tritt die Adressen- und Dateninforma
tion vom E/A-Bus in die Speicher-Steuereinrichtung 102 ein
und wird zum Seitenschutzregister 200 sowie zum Ein-Ausgabe
register 300 und zur Hinweis-Datei 302 geleitet. Wie bereits
gesagt, wird die Hinweis-Datei 302 nur dann benötigt, wenn
die Speicher-Steuereinrichtung 102 einen Cache-Speicher ver
wendet. In der Hinweis-Datei 302 werden die ankommenden
Adressen mit einem Hinweis-Feld verglichen, wie bei herkömm
lichen Speicher-Steuereinrichtungen, und wenn eine Überein
stimmung gefunden wurde, wird eine Adresse für den Haupt
speicher 104 erzeugt, um entweder auf die gespeicherten
Daten zuzugreifen oder sie zu verändern. Wenn kein überein
stimmender Hinweis gefunden wurde, wird die angeforderte
Datenzeile vom Hauptspeicher 104 über den E/A-Bus eingelesen
und zum Füllen des Cache-Speichers des Hauptspeichers 104
verwendet. Die Speicher-Steuereinrichtung 102 nach der Er
findung kann auch direkt in den Hauptspeicher 104 schreiben
und gezielt auf diesen zugreifen.
Wenn eine Cache- oder Speicheranforderung vom Mikroprozessor
100 die erfindungsgemäße Speicher-Steuereinrichtung 102
erreicht, nimmt diese also zwei Wege. Der normale Weg über
prüft die Anforderung in Bezug auf die Hinweise (tags) in
der Hinweis-Datei 302 und erzeugt eine geeignete Maßnahme.
Erfindungsgemäß vergleicht dagegen in einem neuen Weg ein
Komparator 304 die ankommenden im E/A-Register 300 gespei
cherten Daten mit den im Seitenschutzregister 200 gespeicher
ten Hinweis/Standort- und Masken-Bits. Wenn die ankommenden
Adressen mit den Hinweis/Standort-Bits übereinstimmen, weiß
man, daß die angeforderten Daten auf der Seite oder den
Seiten sind, die im Hauptspeicher 104 gespeichert sind. Wenn
andererseits ermittelt wird, daß das gültige Bit in der der
angeforderten Datenzeile entsprechenden Maske nicht gesetzt
ist, übergeht der Komparator 304 die Ausgabe der Hinweisdatei
302 mit einem HALT-Befehl. Dieser HALT-Befehl kann beispiels
weise zum Sperren eines UND-Gatters 306 eingesetzt werden,
so daß die Ausgabe von der Hinweis-Datei 302 verhindert, daß
der Mikroprozessor 100 auf den Hauptspeicher 104 zugreift.
Dieser HALT bleibt solange gültig, bis die E/A-Verbindung
wieder frei ist. Wenn jedoch während einer Datenübertragung
die ankommende Adresse im E/A-Register 300 mit den Hin
weis/Standort-Bits im Seitenschutzregister 200 übereinstimmt,
werden das gültige Bit oder die gültigen Bits in der den
ankommenden Datenzeilen entsprechenden Maske gesetzt. Dies
hebt alle Hindernisse auf, die der Ausgabe der Speicher-
Steuereinrichtung 102 entgegenstehen, und ermöglicht dem
Mikroprozessor 100 auf die Datenzeile sofort zuzugreifen (d. h.
bevor der Rest der Seite übertragen wird). Der obige Ver
gleich kann leicht realisiert werden, indem die hochwertigen
Bits des E/A-Registers 300 und des Seitenschutzregisters 200
als Adressen-Bits verglichen werden, und indem dann die nie
derwertigen Bits des E/A-Registers 300 für den Vergleich mit
der Maske im Seitenschutzregister 200 indexiert werden.
Bei einer bevorzugten Ausgestaltung der Erfindung identifi
ziert der Mikroprozessor 100 nicht nur die Seitenadresse,
sondern auch die Adresse der kritischen Datenzeile, die den
Seitenfehler verursacht hat. Daraus ergibt sich, daß der
Mikroprozessor 100 den externen Speicher 106 auffordern
kann, die kritische Datenzeile in den Hauptspeicher 104 zu
schreiben, bevor andere Zeilen der angeforderten Seite über
tragen werden. D. h., da der Mikroprozessor 100 bis auf die
genaue Zeile die Daten identifizieren kann, die den Daten
fehler verursacht haben, können der Mikroprozessor 100 oder
die Speicher-Steuereinrichtung 102 den externen Speicher 106
anweisen, die kritische Datenzeile während der E/A-Speicher
übertragung außerhalb der ordnungsgemäßen Reihenfolge zu
übertragen. Dies ermöglicht den Mikroprozessor 100 die kri
tischen Daten zu lesen, bevor irgendwelche anderen Daten der
Seite, welche die angeforderten Daten enthält, geschrieben
werden. Dieser "kritische Zeile zuerst"-Weg wird beschritten,
indem die Hinweis/Standort-Bits für die angeforderte neue
Seite im Seitenschutzregister 200 gesetzt werden und dann
die Verarbeitung so fortgesetzt wird, als ob die Ein-Ausgabe
beendet wäre. Der Mikroprozessor 100 kann auf diese Weise
parallel zur Speicher-Übertragung arbeiten und seine Verar
beitung fortsetzen, sobald die kritische Datenzeile im Haupt
speicher 104 empfangen ist. Wie bereits beschrieben, wird
dieses Verfahren dadurch vereinfacht, daß Masken-Bits ver
wendet werden, die jeder Zeile der Seite entsprechen, wobei
das der angeforderten Datenzeile entsprechende Masken-Bit
überwacht werden kann, bis es gesetzt ist. Zu diesem Zeit
punkt wird die Unterbrechung oder der HALT des Mikropro
zessors beendet, und die Verarbeitung kann fortfahren.
Wie erläutert, geht bei der bevorzugten Ausführungsform der
Erfindung die Ein-Ausgabe durch die Speicher-Steuerein
richtung 102 und wird vom Mikroprozessor 100 gesteuert.
Selbstverständlich kann die Speicher-Steuereinrichtung 102
zum Steuern aller E/A-Übertragungen modifiziert werden. Die
Erfindung kann auch so abgeändert werden, daß sie einen
Speicher zum Speichern oder Retten einer bestimmten Maske,
nachdem die angeforderte Datenzeile von einer Seite eingelesen
wurde, aufweist. Diese Maske kann dann wiederhergestellt
werden, wenn der Mikroprozessor 100 wieder auf diese
eine Datenzeile zugreifen will. D. h., die angeforderte
Datenzeile würde sofort gesetzt werden, so daß sofort auf
sie zugegriffen werden kann.
Wie in Fig. 3 gezeigt, läuft die Ein-Ausgabe über die Spei
cher-Steuereinrichtung 102. Die Erfindung könnte jedoch auch
mit einer Abhör-Cache-Speicher-Steuereinrichtung (snooping
cache controller) realisiert werden, wie für den Fachmann
leicht ersichtlich ist. Ferner muß der Ausgang des Ein-Aus
gabe-Registers 300 nicht unbedingt unmittelbar mit dem Kompa
rator 304 verbunden sein, sondern kann durch die Speicher-
Steuereinrichtung 102 gehen, die dem HALT-Ausgang des Kompa
rators 304 unterworfen ist, nachdem dieser ermittelt, ob das
der empfangenen Datenzeile entsprechende Masken-Bit gesetzt
ist.
Erfindungsgemäß können auch in jeder Zeile Gültigkeits-Bits
vorgesehen sein, d. h., die Hinweis-Bits könnten in jeder
Zeile in der Hinweis-Datei der Speicher-Steuereinrichtung
102 vorgesehen sein. Dies würde jedoch die Größe und Kosten
der Speicher-Steuereinrichtung 102 unnötig erhöhen, weil ein
größerer Siliciumbedarf entstünde. Dagegen erfordert die
vorliegende Erfindung eine geringere virtuelle Speicherhard
ware und schafft eine feiner körnige Beschaffenheit oder
Kleinteiligkeit (d. h. kleinere Einheiten) für den Seiten
schutz. Ein Vorteil dieses Weges im Gegensatz zu anderen
Ansätzen liegt darin, daß eine geringere Chip-Baufläche für
dessen Realisierung notwendig ist. Beispielsweise könnte man
jeder Datenzeile ein Bit hinzufügen, das spezifiziert, daß
der Zugriff unterbrochen werden soll, bis die Ein-Ausgabe
stattgefunden hat, dies würde jedoch erfordern, daß der
Speicher-Chip jedem dieser Hinweise oder Tags ein weiteres
Bit hinzufügen müßte. Ein weiterer Vorteil der Erfindung
liegt darin, daß mit dem Standort-Register 200 die Maskierung
mit nur einem oder zwei Zugriffen auf die Speicher-Steuerein
richtung 102 eingestellt werden kann. Wenn dagegen normale
Hinweise oder Tags verwendet werden, ist zum Setzen der
gültigen Bits für jede Hinweis- oder Tag-Eingabe eine eigene
Operation notwendig.
Für den Fachmann ist ersichtlich, daß viele zusätzliche
Abänderungen der beschriebenen Ausführungsform möglich sind,
ohne vom Erfindungsgegenstand abzuweichen. Beispielsweise
können das Verfahren und die Hardware der Erfindung so er
weitert werden, daß die Bezugnahme auf E/A-gesperrte Daten
zeilen möglich ist, um Außenband-E/A-Anforderungen zu er
zeugen oder einen Teil-Seitenaustausch (partition paging)
zuzulassen (bei der eine Seitenanforderung nach der Hälfte
gelöscht wird und unbrauchbare Zeilen zurückgeschrieben
werden, ohne daß die gesamte Seite je zum Hauptspeicher 104
gelangt). Es ist sogar möglich, daß die Erfindung so er
weitert wird, daß die Speicher-Steuereinrichtung 102 die
Verantwortung für einen großen Teil des virtuellen Speicher
systems übernehmen kann, obwohl das die Speicher-Steuerein
richtung 102 wesentlich komplizierter machen würde. Obwohl
die besten Ergebnisse dann erreicht werden, wenn der Zusatz
speicher eine kurze Zugriffszeit hat (wie bei RAMs), kann
die Erfindung ferner mit allen Arten von Zusatzspeicher-
Vorrichtungen realisiert werden. Alle diese Modifikationen
liegen im Bereich der Erfindung, die durch die nachfolgenden
Ansprüche angegeben ist.
Claims (10)
1. Verfahren zum Beheben eines Seitenfehlers, der während
des Ablaufs eines Prozesses auf einem Mikroprozessor
(100) empfangen wird, bei dem vor dem Beheben des Seiten
fehlers keine vollständige neue Datenseite von einem zum
Mikroprozessor (100) externen Speicher (106) in einen
Betriebsspeicher (104) des Mikroprozessors (100) gelesen
wird, mit den Verfahrensschritten:
- Bestimmen der Adresse einer angeforderten Datenzeile, die den Seitenfehler verursacht hat,
- Starten der Übertragung einer Seite, die die ange forderte Datenzeile enthält, von dem externen Spei cher (106) in den Betriebsspeicher (104),
- Ermitteln, ob die angeforderte Datenzeile von dem externen Speicher (106) in dem Betriebsspeicher (104) angekommen ist,
- Anhalten des Prozesses, bis die Ankunft der angefor derten Datenzeile von dem externen Speicher (106) im Betriebsspeicher (104) im Ermittlungs-Schritt er mittelt wurde, und
- Fortsetzen des Prozesses sobald die angeforderte Datenzeile ankommt, ohne auf alle Datenzeilen der von dem externen Speicher (106) zu übertragenden Seite zu warten.
- Bestimmen der Adresse einer angeforderten Datenzeile, die den Seitenfehler verursacht hat,
- Starten der Übertragung einer Seite, die die ange forderte Datenzeile enthält, von dem externen Spei cher (106) in den Betriebsspeicher (104),
- Ermitteln, ob die angeforderte Datenzeile von dem externen Speicher (106) in dem Betriebsspeicher (104) angekommen ist,
- Anhalten des Prozesses, bis die Ankunft der angefor derten Datenzeile von dem externen Speicher (106) im Betriebsspeicher (104) im Ermittlungs-Schritt er mittelt wurde, und
- Fortsetzen des Prozesses sobald die angeforderte Datenzeile ankommt, ohne auf alle Datenzeilen der von dem externen Speicher (106) zu übertragenden Seite zu warten.
2. Verfahren nach Anspruch 1, bei dem die angeforderte Daten
zeile übertragen wird, bevor andere Datenzeilen der Seite
übertragen werden.
3. Verfahren nach Anspruch 1 oder 2, bei dem beim Starten
der Übertragung eine Adresse der Seite in einem Seiten
schutzspeicher (200) gespeichert wird.
4. Verfahren nach Anspruch 3, bei dem während des Ermitt
lungs-Schrittes die folgenden Verfahrensschritte durchge
führt werden:
- Vergleichen einer Adresse einer Datenseite die momen tan von dem externen Speicher (106) in den Betriebs speicher (104) übertragen wird, mit der in dem Sei tenschutzregister (200) gespeicherten Adresse,
- Setzen eines Maskenbits des Seitenschutzregisters (200), das der Datenzeile entspricht, die momentan von dem externen Speicher (106) in den Betriebs speicher (104) übertragen wird, wenn die Adressen dieselben sind,
- Prüfen eines Soll-Maskenbits des Seitenschutzre gisters (200), das der angeforderten Datenzeile entspricht, und
- Feststellen, daß die angeforderte Datenzeile in dem Betriebsspeicher (104) angekommen ist, wenn das Soll-Maskenbit gesetzt ist.
- Vergleichen einer Adresse einer Datenseite die momen tan von dem externen Speicher (106) in den Betriebs speicher (104) übertragen wird, mit der in dem Sei tenschutzregister (200) gespeicherten Adresse,
- Setzen eines Maskenbits des Seitenschutzregisters (200), das der Datenzeile entspricht, die momentan von dem externen Speicher (106) in den Betriebs speicher (104) übertragen wird, wenn die Adressen dieselben sind,
- Prüfen eines Soll-Maskenbits des Seitenschutzre gisters (200), das der angeforderten Datenzeile entspricht, und
- Feststellen, daß die angeforderte Datenzeile in dem Betriebsspeicher (104) angekommen ist, wenn das Soll-Maskenbit gesetzt ist.
5. Verfahren nach Anspruch 4, bei dem der Prozeß dann ange
halten wird, wenn im Prüf-Schritt erkannt wurde, daß das
Soll-Maskenbit nicht gesetzt ist, und der Prozeß dann
weiter abläuft, wenn im Feststellungs-Schritt erkannt
wurde, daß das Soll-Maskenbit gesetzt ist.
6. Rechnersystem, das aufgrund eines Prozesses arbeitet,
mit
- einem Betriebsspeicher (104) zum Speichern mindestens einer Datenseite,
- einem Zweitspeicher (106) zum Speichern mehrerer Datenseiten,
- einem Mikroprozessor (100) zum Ausführen des Pro zesses, der für jede vom Prozeß angeforderte Daten zeile auf den Betriebsspeicher (104) zugreift und einen Seitenfehler empfängt, wenn eine die ange forderte Zeile enthaltende Seite nicht im Betriebs speicher (104) ist, wobei dann, wenn ein Seitenfehler empfangen ist, der Mikroprozessor (100) die Adresse der angeforderten Datenzeile bestimmt, welche den Seitenfehler verursacht hat, und die Übertragung einer die angeforderte Datenzeile enthaltenden Seite vom Zweitspeicher (106) in den Betriebsspeicher (104) einleitet, und
- einer Speicher-Steuereinrichtung (102) zum Ermitteln, ob die angeforderte Datenzeile vom Zweitspeicher (106) im Betriebsspeicher (104) angekommen ist, und zum Anhalten der Verarbeitung des Prozesses durch den Mikroprozessor (100), bis die angeforderte Daten zeile von dem Zweitspeicher (106) im Betriebsspeicher (104) angekommen ist, wobei der Mikroprozessor (100) mit der Verarbeitung des Prozesses fortfährt, sobald die angeforderte Datenzeile ankommt, ohne auf alle Datenzeilen der vom Zweitspeicher (106) zu übertra genden Seite zu warten.
- einem Betriebsspeicher (104) zum Speichern mindestens einer Datenseite,
- einem Zweitspeicher (106) zum Speichern mehrerer Datenseiten,
- einem Mikroprozessor (100) zum Ausführen des Pro zesses, der für jede vom Prozeß angeforderte Daten zeile auf den Betriebsspeicher (104) zugreift und einen Seitenfehler empfängt, wenn eine die ange forderte Zeile enthaltende Seite nicht im Betriebs speicher (104) ist, wobei dann, wenn ein Seitenfehler empfangen ist, der Mikroprozessor (100) die Adresse der angeforderten Datenzeile bestimmt, welche den Seitenfehler verursacht hat, und die Übertragung einer die angeforderte Datenzeile enthaltenden Seite vom Zweitspeicher (106) in den Betriebsspeicher (104) einleitet, und
- einer Speicher-Steuereinrichtung (102) zum Ermitteln, ob die angeforderte Datenzeile vom Zweitspeicher (106) im Betriebsspeicher (104) angekommen ist, und zum Anhalten der Verarbeitung des Prozesses durch den Mikroprozessor (100), bis die angeforderte Daten zeile von dem Zweitspeicher (106) im Betriebsspeicher (104) angekommen ist, wobei der Mikroprozessor (100) mit der Verarbeitung des Prozesses fortfährt, sobald die angeforderte Datenzeile ankommt, ohne auf alle Datenzeilen der vom Zweitspeicher (106) zu übertra genden Seite zu warten.
7. Rechnersystem nach Anspruch 6, dadurch gekenn
zeichnet, daß der Mikroprozessor (100) eine Vor
richtung aufweist, um den Zweitspeicher (106) anzuweisen,
die angeforderte Datenzeile zum Betriebsspeicher (104)
vor der Übertragung anderer Zeilen der Seite zum Betriebs
speicher (104) zu übertragen.
8. Rechnersystem nach Anspruch 7, dadurch gekenn
zeichnet, daß die Speicher-Einrichtung (102) ein
Seitenschutzregister (200) zum Speichern einer Adresse
der die angeforderte Datenzeile enthaltenden Seite und
eine Vorrichtung (304) zum Vergleichen einer Adresse der
vom Zweitspeicher (106) in den Betriebsspeicher (104)
geschriebenen Seite mit der im Seitenschutzregister (200)
gespeicherten Adresse aufweist.
9. Rechnersystem nach Anspruch 8, dadurch gekenn
zeichnet, daß das Seitenschutzregister (200) mehr
ere Masken-Bits aufweist, eines für jede Zeile einer
Seite, und daß die Vergleichervorrichtung (304) ein Mas
ken-Bit des Seitenschutzregisters (200) setzt, das der
Datenzeile entspricht, die momentan vom Zweitspeicher
(106) in den Betriebsspeicher (104) übertragen wird, wenn
die Seitenadressen dieselben sind.
10. Rechnersystem nach Anspruch 9, dadurch gekenn
zeichnet, daß die Speicher-Steuereinrichtung (102)
die Verarbeitung des Prozessors durch den Mikroprozessor
(100) anhält, wenn sowohl eine vom Zweitspeicher (106)
eingelesene Datenzeile eine mit der im Seitenschutzre
gister (200) gespeicherten Adresse übereinstimmende Adres
se hat als auch ein der angeforderten Datenzeile ent
sprechendes Soll-Maskenbit des Seitenschutzregisters
(200) nicht gesetzt ist, wobei der Mikroprozessor (200)
die Verarbeitung des Prozesses fortsetzt, sobald das der
angeforderten Datenzeile entsprechende Soll-Maskenbit des
Seitenschutzregisters (200) gesetzt ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/762,839 US5361345A (en) | 1991-09-19 | 1991-09-19 | Critical line first paging system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4227784A1 true DE4227784A1 (de) | 1993-03-25 |
Family
ID=25066156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4227784A Ceased DE4227784A1 (de) | 1991-09-19 | 1992-08-21 | Rechnersystem und verfahren zum beheben eines seitenfehlers |
Country Status (3)
Country | Link |
---|---|
US (1) | US5361345A (de) |
DE (1) | DE4227784A1 (de) |
GB (1) | GB2259795B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19524023B4 (de) * | 1995-06-30 | 2004-02-05 | Fujitsu Siemens Computers Gmbh | Multiprozessorsystem mit einer sehr großen Anzahl von Mikroprozessoren |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5923857A (en) * | 1996-09-06 | 1999-07-13 | Intel Corporation | Method and apparatus for ordering writeback data transfers on a bus |
US6049860A (en) * | 1998-02-19 | 2000-04-11 | International Business Machines Corporation | Pipelined floating point stores |
US20060129726A1 (en) * | 2004-12-09 | 2006-06-15 | International Business Machines Corporation | Methods and apparatus for processing a command |
US20070005932A1 (en) * | 2005-06-29 | 2007-01-04 | Intel Corporation | Memory management in a multiprocessor system |
US8892828B2 (en) * | 2011-11-18 | 2014-11-18 | Micron Technology, Inc. | Apparatuses and methods for storing validity masks and operating apparatuses |
US10037173B2 (en) * | 2016-08-12 | 2018-07-31 | Google Llc | Hybrid memory management |
US10152427B2 (en) | 2016-08-12 | 2018-12-11 | Google Llc | Hybrid memory management |
US10108550B2 (en) | 2016-09-22 | 2018-10-23 | Google Llc | Memory management supporting huge pages |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
US3806888A (en) * | 1972-12-04 | 1974-04-23 | Ibm | Hierarchial memory system |
US4476524A (en) * | 1981-07-02 | 1984-10-09 | International Business Machines Corporation | Page storage control methods and means |
DE3127240A1 (de) * | 1981-07-10 | 1983-01-20 | Basf Ag, 6700 Ludwigshafen | Anthrachinonfarbstoffe und deren verwendung |
US4637024A (en) * | 1984-11-02 | 1987-01-13 | International Business Machines Corporation | Redundant page identification for a catalogued memory |
JPH0727462B2 (ja) * | 1985-10-11 | 1995-03-29 | 株式会社日立製作所 | データ処理装置におけるページフォールト実行再開方法 |
US5063497A (en) * | 1987-07-01 | 1991-11-05 | Digital Equipment Corporation | Apparatus and method for recovering from missing page faults in vector data processing operations |
US5016161A (en) * | 1989-04-12 | 1991-05-14 | Sun Microsystems, Inc. | Method and apparatus for the flow control of devices |
-
1991
- 1991-09-19 US US07/762,839 patent/US5361345A/en not_active Expired - Fee Related
-
1992
- 1992-08-21 DE DE4227784A patent/DE4227784A1/de not_active Ceased
- 1992-08-27 GB GB9218212A patent/GB2259795B/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19524023B4 (de) * | 1995-06-30 | 2004-02-05 | Fujitsu Siemens Computers Gmbh | Multiprozessorsystem mit einer sehr großen Anzahl von Mikroprozessoren |
Also Published As
Publication number | Publication date |
---|---|
GB2259795B (en) | 1995-03-01 |
US5361345A (en) | 1994-11-01 |
GB2259795A (en) | 1993-03-24 |
GB9218212D0 (en) | 1992-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE69616465T2 (de) | Cachespeicher mit Datenvorausladung | |
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE69706934T2 (de) | Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte | |
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE2847960C2 (de) | Speichersteuereinrichtung | |
DE3803759C2 (de) | ||
DE69701078T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren | |
DE69022716T2 (de) | Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür. | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE69327387T2 (de) | An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung | |
DE3687947T2 (de) | Schnittstelle und Verfahren für Buszugriff in einem Rechner. | |
DE69127111T2 (de) | Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher | |
DE69031658T2 (de) | Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz | |
DE69222060T2 (de) | Semaphore umgehung. | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
EP0254247A2 (de) | Einrichtung zur Rettung des Rechnerzustandes | |
DE3724730A1 (de) | Cache-steuereinrichtung | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
EP0046976A2 (de) | Halbleiterspeicher aus Speicherbausteinen mit redundanten Speicherbereichen | |
DE3502147C2 (de) | ||
DE4213073A1 (de) | Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE3873388T2 (de) | Cache-speicher. | |
DE4227784A1 (de) | Rechnersystem und verfahren zum beheben eines seitenfehlers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 12/12 |
|
8131 | Rejection |