-
Die
vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme
und insbesondere Datenverarbeitungssysteme, die mindestens eine
teilweise Spiegelung des Speichers unterstützen.
-
Auf
dem Gebiet der Datenverarbeitungssysteme stellt die Speicherspiegelung
ein Gestaltungsmerkmal dar, das in Datenverarbeitungssystemen hoher
Verfügbarkeit
genutzt werden kann. Bei der Speicherspiegelung wird eine redundante
Kopie des Systemspeichers hinterlegt. Wenn zum Beispiel ein System
mit zwei Direktzugriffspeicher-(RAM-)Bänken über die Funktion der Speicherspiegelung
verfügt,
könnte
die erste Speicherbank (z. B. die Speicherbank A) als die Primärspeicherbank
und die zweite Speicherbank (z. B. die Speicherbank B) als eine
Sicherungs- oder Spiegelspeicherbank verwendet werden. Die Spiegelspeicherbank
dient als Ablage (repository) für
eine zusätzliche
Kopie der Daten, die in der Primärspeicherbank
enthalten sind. Wenn in der Primärspeicherbank
A Fehler auftreten, verhindert das System eine Unterbrechung der
Bedienung, indem es anstelle der Primärspeicherbank A die Spiegelspeicherbank
B verwendet. Anschließend kann
eine Fehlermeldung erzeugt werden, die anzeigt, dass für die Speicherbank
A ein Dienst erbracht werden muss.
-
Ein
mit der Speicherspiegelung verbundener Nachteil besteht jedoch darin,
dass weniger Kapazität
des installierten Speichers zur allgemeinen Verwendung zur Verfügung steht.
In dem vorstehenden Beispiel steht beispielsweise die Speicherbank
A zur allgemeinen Verwendung zur Verfügung, die Speicherbank B jedoch
nicht. Wenn der gesamte Primärspeicher
auf den Spiegelspeicher gespiegelt worden ist, sagt man, dass das
System über
eine vollständige
Spiegelung verfügt,
wobei in diesem Fall nur die Hälfte
des installierten Speichers zur allgemeinen Verwendung zur Verfügung steht.
Alternativ dazu kann eine teilweise Spiegelung durchgeführt werden. Ein
System mit vier Speicherbänken
(z. B. mit den Speicherbänken
A bis D) kann zum Beispiel so konfiguriert werden, dass es die Speicherbank
A auf die Speicherbank B spiegelt, die Speicherbänke C und D aber nicht spiegelt.
Eine teilweise Spiegelung sieht einen größeren Prozentsatz des installierten
Speichers zur allgemeinen Verwendung vor, bietet aber weniger Schutz
gegen Speicherfehler.
-
Ein
weiteres Gestaltungsmerkmal, das genutzt werden kann, um gespiegelte
Systeme (sowie nicht gespiegelte Systeme) mit scheinbar mehr Speicher
zur allgemeinen Verwendung bereitzustellen, ist die Speicherkomprimierung.
Ein typisches System mit Speicherkomprimierung verfügt über eine
Komprimierungseinheit, die den installierten Speicher des Systems
(d. h. den physischen Speicher) verwendet, um ein größeres Volumen
an offenkundigem Speicher (apparent memory, d. h. an realem Speicher)
zu unterstützen.
Wenn ein System beispielsweise 32 MB an physischem Speicher und
eine Komprimierungseinheit enthält,
die so konfiguriert ist, dass sie ein Komprimierungsverhältnis von
2:1 ermöglicht, meldet
die Komprimierungseinheit eine reale Speicherkapazität von 64
MB. Wenn an einem System mit 32 MB an installiertem Speicher eine
vollständige Spiegelung
und eine Speicherkomprimierung mit einem Verhältnis von 2:1 durchgeführt worden
sind, heben sich die jeweilige Wirkung der Komprimierung und der
Spiegelung folglich gegenseitig auf. Das heißt, die Größe des realen Speichers des
Systems ist gleich der Größe seines
physischen Speichers.
-
Eine
Gefahr bei der Speicherkomprimierung besteht jedoch darin, dass
das konfigurierte Komprimierungsverhältnis bei bestimmten Arten
von Daten gegebenenfalls nicht erreicht werden kann. Wenn die Daten
beispielsweise bereits von Software komprimiert wurden (z. B. wenn
es sich bei den Daten um eine Joint-Photographic-Experts-Group-(JPEG-)Datei
handelt), kann die Komprimierungseinheit die Datei möglicherweise
nicht in dem Maß weiter
komprimieren, dass ein 2:1-Verhältnis
erzielt wird. Wenn die Komprimierungseinheit außerdem das gewünschte Komprimierungsverhältnis nicht
erreicht und praktisch der gesamte reale Speicher benötigt wird,
kann das System das benötigte
Volumen an realem Speicher möglicherweise
nicht bereitstellen. Wenn ein System nicht über ausreichend physischen
Speicher verfügt,
um den gesamten erforderlichen realen Speicher zu unterstützen, spricht
man von einem Systemzustand, der als Speicherüberlauf bezeichnet wird. Ein
Speicherüberlauf
kann jedoch auch in Systemen ohne Komprimierung auftreten, zum Beispiel, wenn
das System einfach nicht über
ausreichend physischen Speicher verfügt, um die erforderliche Verarbeitung
durchzuführen.
-
Bei
herkömmlichen
Systemen ist ein voll werdender physischer Speicher ein kritisches
Systemproblem. Dieses Problem wird üblicherweise über ein
Ereignis mit entsprechend hoher Priorität signalisiert, wie zum Beispiel
eine nicht maskierbare Unterbrechung (non-maskable interrupt, NMI)
oder eine Art einer Maschinenprüfung.
Wenn Speicherkomprimierung und Speicherspiegelung zusammen eingesetzt
werden, ist das Risiko eines Systemausfalls aufgrund von Speicherfehlern
in herkömmlichen Systemen
folglich vermindert, aber es besteht ein höheres Risiko eines Systemausfalls
aufgrund von einem Speicherüberlauf.
-
Die
US-Patentschrift 5 511 177 beschreibt ein
Zuordnungsprogramm, das aufgerufen wird, wenn ein Dateisystem neue
Daten in eine Datei schreibt. Wenn es in dem Datenträger keinen
freien Datenblock gibt, wird eine Spiegeldatei in dem Datenträger ausgewählt und
gelöscht,
um einen freien Block zu erzeugen. Diese Patentschrift beschreibt auch
die Erzeugung einer Spiegelkopie für Dateien, auf die häufig zugegriffen
wird.
-
Die
vorliegende Erfindung stellt folglich Systeme, ein Verfahren und
ein Rechnerprogramm nach den beigefügten Ansprüchen bereit. Es dürfte klar sein,
dass die erfindungsgemäßen Systeme,
das erfindungsgemäße Verfahren
und das erfindungsgemäße Rechnerprogramm üblicherweise
von denselben bevorzugten Merkmalen wechselseitig Gebrauch machen.
-
In
einer bevorzugten Ausführungsform
wird ein Speicherüberlaufzustand
in einem Datenverarbeitungssystem behandelt, das über einen
ersten und einen zweiten physischen Speicherbereich verfügt. Der
Speicherüberlaufzustand
wird festgestellt, während
der zweite Bereich mindestens einen Teil des ersten Bereichs spiegelt.
Als Reaktion auf den Speicherüberlaufzustand
wird die Speicherspiegelung mindestens teilweise deaktiviert. Der
Speicherüberlaufzustand
wird dann beseitigt, indem der erste Bereich mit mindestens einem
Teil des zweiten Bereichs vergrößert wird.
-
In
einer der Veranschaulichung dienenden Ausführungsform komprimiert das
Datenverarbeitungssystem den Inhalt des realen Speichers und speichert
ihn in dem ersten Bereich des physischen Speichers, und der Speicherüberlaufzustand
wird erkannt, wenn der erste Bereich nicht über ausreichend Kapazität verfügt, um dem
aktuellen Bedarf an realem Speicher Rechnung zu tragen. Der Speicherüberlaufzustand
wird beseitigt, indem mindestens ein Teil des Inhalts des realen
Speichers komprimiert und in dem zweiten Bereich gespeichert wird.
-
Eine
bevorzugte Ausführungsform
der Erfindung wird nun lediglich anhand eines Beispiels und mit
Bezug auf die folgenden Zeichnungen ausführlich beschrieben:
-
die 1A und 1B zeigen
Blockschaltbilder, die die Beziehung zwischen dem physischen Speicher
und dem realen Speicher bei aktivierter Spiegelung (in 1A)
und bei deaktivierter Spiegelung (in 1B) entsprechend
einer der Veranschaulichung dienenden Ausführungsform der vorliegenden
Erfindung erklären;
-
2 zeigt
ein Blockschaltbild eines Datenverarbeitungssystems, das eine beispielhafte
Ausführungsform
der vorliegenden Erfindung darstellt und über Einrichtungen zur Behandlung
von Speicherüberlaufzuständen verfügt;
-
3 ist
eine Tabelle, die die Einstellungen der Speicherbank-Auswahlbits
zeigt, um die Spiegelung in dem System von 2 zu konfigurieren;
-
4 ist
eine Tabelle, die die Einstellungen eines Spiegelmodus-Lesebits
zeigt, um die Spiegelung in dem System von 2 zu konfigurieren;
und
-
5 zeigt
ein logisches Übersichtsflussdiagramm
eines beispielhaften Prozesses gemäß der vorliegenden Erfindung
zur Behandlung von Speicherüberlaufzuständen.
-
Nun
Bezug nehmend auf die Figuren und insbesondere Bezug nehmend auf
die 1A und 1B, sind
zwei Blockschaltbilder gezeigt, die die Beziehung zwischen dem physischen
Speicher und dem realen Speicher in einem Datenverarbeitungssystem
mit einem Speicher-Teilsystem zeigen, das die Spiegelung gemäß einer
der Veranschaulichung dienenden Ausführungsform der vorliegenden
Erfindung unterstützt.
Die Darstellungen beziehen sich im Einzelnen auf ein Datenverarbeitungssystem,
das über
zwei Speicherbänke
gleicher Kapazität,
die Speicherbank A 10 und die Speicherbank B 12,
verfügt.
In 1A ist das Datenverarbeitungssystem so konfiguriert,
dass die Speicherbank A 10 als die Primärspeicherbank und die Speicherbank
B 12 als der Spiegel der Speicherbank A 10 dient.
Darüber
hinaus unterstützt
das Datenverarbeitungssystem die Speicherkomprimierung, so dass
das Speicher-Teilsystem einen Adressraum für den realen Speicher 14 meldet,
der den Adressraum der Primärspeicherbank (d.
h. der Speicherbank A 10) übersteigt.
-
Um
die Beziehung zwischen dem Primärspeicher
und dem realen Speicher genauer zu beschreiben, werden die folgenden
Symbole verwendet:
- X
- ist die Größe des physischen
Primärspeichers;
- X(m)
- ist die Größe des physischen
Speichers, der als Spiegel dient;
- R
- ist das Komprimierungsverhältnis, das
das Speicher-Teilsystem
erreichen möchte (ausgedrückt als
realer Speicher:Primärspeicher);
und
- Rx
- ist die Größe des realen
Speichers, wie sie vom Speicher-Teilsystem
gemeldet wird.
-
In 1A ist
R gleich 2:1 und X ist gleich X1; folglich
ist Rx gleich 2·X1. Weiterhin ist X(m) gleich X2.
-
Nun
Bezug nehmend auf 1B ist ein Blockschaltbild gezeigt,
das sich auf das Datenverarbeitungssystem von 1A bezieht,
wobei das Speicher-Teilsystem jedoch neu konfiguriert worden ist, und
zwar so, dass die Speicherbank B 12 als Primärspeicher
und nicht als Spiegelspeicher dient. Gemäß der vorliegenden Erfindung
kann eine solche Neukonfiguration automatisch nach dem Auftreten
eines Speicherüberlaufzustands
durchgeführt
werden, wie nachstehend ausführlicher
beschrieben wird. In der vorliegenden, der Veranschaulichung dienenden Ausführungsform
ist R als Folge der Neukonfiguration gleich 1:1, und X ist gleich
X1 + X2; folglich
ist Rx gleich 1·(X1 + X2). Auch ist
X(m) gleich 0. Somit wird zusätzlicher
physischer Speicher zugeordnet, um den Bedarf an realem Speicher
unterstützend
zu decken, was jedoch um den Preis des Verlusts der Spiegelung geschieht.
-
Nun
Bezug nehmend auf 2 ist ein Blockschaltbild eines
etwas komplexeren beispielhaften Datenverarbeitungssystems 20 mit
Einrichtungen zur Behandlung von Speicherüberlaufzuständen gemäß der vorliegenden Erfindung
gezeigt. Wie dargestellt ist, enthält das Datenverarbeitungssystem 20 einen Systemprozessor 22,
der mit einem Speicher-Teilsystem 24 über einen Hostrechner-Bus 26 Daten austauscht.
Das Speicher-Teilsystem 24 enthält einen Cachespeicher und
eine Speichersteuereinheit (CMC) 30, die einen L3-Cachespeicher 32 unterstützt. Überdies
tauscht die CMC 30 mit vier Speicherbänken an installiertem Direktzugriffspeicher
(RAM), der Speicherbank 0 40, der Speicherbank 1 41,
der Speicherbank 2 42 und der Speicherbank 3 43 sowohl
direkt als auch über
eine Steuereinheit für
den Spiegelmodus (mirror mode controller, MMC) 50 Daten
aus. Andere Komponenten (nicht gezeigt) des Datenverarbeitungssystems 20 können mit dem
Speicher-Teilsystem 24 über einen
Bus zur Verbindung von peripheren Komponenten (peripheral component
interconnect bus (PCI-Bus)) Daten austauschen.
-
Die
MMC 50 enthält
einen 3-Bit-Signalspeicher, in den der Systemprozessor 22 Daten
schreiben und aus dem der Systemprozessor 22 Daten lesen
kann, um die Spiegelungseigenschaften des Speicher-Teilsystems 24 zu ändern. Der
Signalspeicher erscheint als ein normaler E/A-Anschluss.
-
Nun
auch Bezug nehmend auf 3 sind zwei Bits dieses Signalspeichers
Speicherbank-Auswahlbits. Indem man die Speicherbank-Auswahlbits so
setzt oder zurücksetzt,
dass man die in 3 gezeigten Bitmuster erhält, kann
der Systemprozessor 22 die Art und Weise, in der die Speicherbank 3 43 verwendet
wird, ändern.
Von der Speicherbank 3 43 wird daher gesagt, dass ihre
Adressierung veränderlich
ist. Wenn mindestens eines der Speicherbank-Auswahlbits 0 und 1
zurückgesetzt
wird, dient die Speicherbank 3 43 insbesondere als eine
Spiegelspeicherbank für
eine der Primärspeicherbänke. Bei
einer solchen Konfiguration wird daher eine teilweise Spiegelung
realisiert. Im Gegensatz dazu wird die Spiegelung deaktiviert, wenn
beide Speicherbank-Auswahlbits 0 und 1 gesetzt werden, und die Speicherbank
3 43 dient stattdessen als eine weitere Primärspeicherbank,
zum Beispiel als die obere Speicherbank in einer Matrix mit vier
Speicherbänken.
-
Nun
auch Bezug nehmend auf 4 ist das dritte Bit in dem
Signalspeicher ein Spiegelmodus-Lesebit, das, wenn es zurückgesetzt
wird, Speicher-Leseoperationen veranlasst, eine Primärspeicherbank
zu verwenden, und wenn es gesetzt wird, Speicher-Leseoperationen
veranlasst, die Spiegel-Speicherbank anstelle der entsprechenden
Primärspeicherbank
zu verwenden. An dieser Stelle sei angemerkt, dass, wenn die Speicherbank
1 41 und die Speicherbank 2 42 den Wert null hätten und
die Kapazitäten
der Speicherbank 0 40 und der Speicherbank 3 43 gleich
wären,
das in 2 gezeigte System dem mit Bezug auf die 1A und 1B beschriebenen
System ähnlich
wäre oder
mit diesem übereinstimmen
würde.
-
Der
Betrieb des Speicher-Teilsystems 24 wird von einem Speicher-Verwaltungsprogramm 60 gesteuert,
das in der der Veranschaulichung dienenden Ausführungsform als Teil des Betriebssystems ausgeführt ist.
Folglich wird das Speicher-Verwaltungsprogramm 60 während des
Hochfahrens des Systems zusammen mit anderen Komponenten des Betriebssystems
in das RAM geladen.
-
Nun
Bezug nehmend auf 5 ist ein logisches Übersichtsflussdiagramm
eines beispielhaften Prozesses gemäß der vorliegenden Erfindung
gezeigt, der dazu dient, Speicherüberlaufzustände in dem Datenverarbeitungssystem 20 zu
behandeln. Der Prozess beginnt am Block 70 mit dem Einschalten
des Datenverarbeitungssystems 20. Dann wird das Speicher-Teilsystem 24 als
Teil des Startprozesses initialisiert, wie am Block 72 gezeigt
ist. Als Teil des Initialisierungsprozesses legt die CMC 30 fest, wie
viel physischer Speicher installiert wird, und das Speicher-Verwaltungsprogramm 60 konfiguriert
die Speicherbank-Auswahl- und
die Spiegelmodus-Lesebits in der MMC 50 gemäß einer
Standardkonfiguration. In dem aktuellen beispielhaften Prozess wird die
MMC 50 für
eine teilweise Spiegelung konfiguriert, bei der die Speicherbank
0 40 auf die Speicherbank 3 43 gespiegelt wird.
-
Ein
Komprimierungsverhältnis
kann während dieses
Initialisierungsprozesses ebenfalls festgelegt werden. In einer
Ausführungsform
wird dieses Verhältnis
auf der Grundlage der Komprimierungsleistung in der Vergangenheit
festgelegt, so dass das initialisierte Komprimierungsverhältnis im
Laufe der Zeit automatisch angepasst werden kann, um eine höhere Übereinstimmung
mit den Komprimierungsverhältnissen
zu erreichen, die während
eines oder mehreren vorherigen Betriebszyklen tatsächlich erreicht
worden sind. In dem vorliegenden Beispiel wird das Komprimierungsverhältnis auf
2:1 gesetzt.
-
Nachdem
das Speicher-Teilsystem initialisiert worden ist, nimmt das Datenverarbeitungssystem 20 den
Normalbetrieb auf, wie am Block 74 gezeigt ist, wobei das
Speicher-Teilsystem so arbeitet, wie es in dem Initialisierungsprozess
konfiguriert wurde. Während
des Normalbetriebs steuert die kombinatorische Logik die Erzeugung
der Chip-Auswahl- und Ausgangsfreigabesignale für jede Speicherbank. Diese
Logik verwendet die höherwertigen
Speicheradressleitungen, die Speicherbank-Auswahlbits, die Schreib-/Leseleitung
des Systems und die Spiegelmodus-Lesebits, um die erforderlichen
Signale und die erforderliche Zeitsteuerung zu erzeugen. Im Spiegelmodus
wird bei allen Schreiboperationen auf eine gespiegelte Primärspeicherbank
(hier die Speicherbank 0 40) auch auf die entsprechende
Spiegelspeicherbank (hier die Speicherbank 3 43) geschrieben. Überdies
verwaltet die CMC 30 Nutzungstabellen für Aufgaben wie die nach Bedarf
erfolgende Zuordnung von nicht in Anspruch genommenem Speicherplatz und
die ordnungsgemäße Abbildung
von realem Speicher auf physischen Speicher.
-
Während der
Verarbeitung verwendet die CMC 30 den L3-Cachespeicher 32,
um Daten abzurufen, auf die jüngst
zugegriffen wurde, da Daten aus dem L3-Cachespeicher 32 schneller
ausgelesen werden können
als aus dem RAM. Wenn sich die benötigten Daten jedoch nicht im
L3-Cachespeicher 32 befinden (d. h., wenn es einen missglückten Cachespeicher-Zugriff gibt), muss
auf das RAM zugegriffen werden. In der vorliegenden der Veranschaulichung dienenden
Ausführungsform
bewirkt ein missglückter Cachespeicher-Zugriff
im Einzelnen, dass die CMC 30 einen komprimierten Datenblock
aus dem RAM liest, die Daten entkomprimiert und sie in den L3-Cachespeicher lädt. Bei
einer Operation, bei der der Inhalt des Cachespeichers gelöscht wird,
werden die zu schreibenden Daten komprimiert und in das RAM geschrieben.
Anschließend werden
die Speicher-Nutzungstabellen der CMC 30 entsprechend aktualisiert.
-
Wie
am Block 76 gezeigt ist, überwacht das Speicher-Verwaltungsprogramm 60 das
Speicher-Teilsystem 24, um festzustellen, ob es einen Speicherüberlaufzustand
gibt (d. h., ob der Primärspeicher
nicht über
ausreichend Kapazität
verfügt, um
dem aktuellen Bedarf an realem Speicher Rechnung zu tragen), während der
Systemprozessor 22 Befehle ausführt. Die CMC 30 kann
zum Beispiel so konfiguriert werden, dass sie eine nicht maskierbare Unterbrechung
erzeugt oder eine Maschinenprüfung durchführt, wenn
einfach nicht genügend
physischer Speicher zur Verfügung
steht, um den komprimierten Inhalt des realen Speichers zu speichern,
beispielsweise aufgrund einer Anforderung für zusätzlichen realen Speicher oder
aufgrund einer Änderung
des vorhandenen Speicherinhalts. Alternativ dazu kann festgestellt
werden, dass ein Speicherüberlaufzustand
vorhanden ist, wenn der aktuelle Bedarf an realem Speicher bewirkt,
dass die restliche Kapazität an
nicht in Anspruch genommenem physischen Speicher unter einen bestimmten
Schwellenwert fällt.
-
Wenn
kein Speicherüberlaufzustand
festgestellt wird, wird die Verarbeitung mit einer Spiegelung fortgesetzt,
wie durch den zum Block 74 zurückführenden Pfeil angegeben ist.
Wenn jedoch ein Speicherüberlaufzustand
festgestellt wird, schaltet der Prozess zum Block 80 weiter,
der zeigt, dass das Speicher-Verwaltungsprogramm 60 Informationen
in Bezug auf den Speicherüberlaufzustand
erfasst, die bei der Anpassung des konfigurierten Komprimierungsverhältnisses
zu verwenden sind, um eine höhere Übereinstimmung
mit Komprimierungsverhältnissen
zu erzielen, die tatsächlich
erreicht worden sind. Im Einzelnen berechnet das Speicher-Verwaltungsprogramm 60 bei
dem aktuellen beispielhaften Prozess ein neues Komprimierungsverhältnis und speichert
dieses in dem nichtflüchtigen
Speicher. Zu annehmbaren Speichermedien für diese Daten gehören ein
nichtflüchtiger
(d. h. batteriegepufferter) RAM (d. h. ein NVRAM), ein mit einem
komplementären Metall-Oxid-Halbleiter
ausgeführter
RAM (CMOS-RAM),
ein Flash-Speicher und magnetische oder optische Platten, ohne auf
diese beschränkt
zu sein. Andere Arten von Überlauf-Informationen
können
ebenfalls gespeichert werden.
-
Nachdem
ein Speicherüberlaufzustand
entdeckt worden ist, konfiguriert das Speicher-Verwaltungsprogramm 60 auch
die CMC 30 und die MMC 50 neu (was auch das Setzen
der beiden Speicherbank-Auswahlbits beinhaltet), um die Spiegelung
zu deaktivieren und die Speicherbank 3 43 von einer Spiegelspeicherbank
in eine Primärspeicherbank umzuwandeln,
vorzugsweise in die obere Speicherbank einer aus vier Speicherbänken bestehenden Matrix,
wie an den Blöcken 82 und 84 gezeigt
ist. Folglich wird die Kapazität
an zur Verfügung
stehendem Primärspeicher
erweitert, wodurch der Speicherüberlaufzustand
behoben wird. Anschließend nimmt
der Systemprozessor 22 wieder den Normalbetrieb auf, wie
am Block 86 gezeigt ist, wobei er den erweiterten Primärspeicher
verwendet.
-
Wie
am Block 88 ebenfalls gezeigt ist, überwacht das Speicher-Verwaltungsprogramm 60 im Anschluss
an die Wiederaufnahme der normalen Verarbeitung die Gegebenheiten,
um festzustellen, ob der erweiterte Primärspeicher immer noch benötigt wird.
Wenn ja, wird die Verarbeitung fortgesetzt, wie durch den zum Block 86 zurückführenden
Pfeil angegeben ist. Wenn der Bedarf an realem Speicher jedoch bis
zu dem Punkt zurückgegangen
ist, an dem die Speicherbank 3 43 nicht mehr als Primärspeicherbank
benötigt
wird, konfiguriert das Speicher-Verwaltungsprogramm 60 die
CMC 30 und die MMC 50 neu, um die Spiegelung wieder
zu aktivieren, wie am Block 90 gezeigt ist. Im Rahmen des
Vorgangs der Reaktivierung der Spiegelung wird die Spiegelspeicherbank
wieder mit Daten gefüllt,
damit sie der entsprechenden Primärspeicherbank entspricht. Dieses
Auffüllen
mit Daten kann mittels Software oder Hardware erfolgen. Der Systemprozessor 22 nimmt
dann den Normalbetrieb wieder auf, wie durch den zum Block 74 zurückführenden
Pfeil angegeben ist.
-
Wie
hier folglich beschrieben wurde, können Speicherüberlaufzustände behandelt
werden, indem Speicherbänke
auf dynamische Weise als Primärspeicherbänke umkonfiguriert
werden. Die Spiegelung wird dann wieder aktiviert, wenn der Speicherbedarf
in ausreichendem Maß zurückgeht.
Darüber hinaus
kann in Datenverarbeitungssystemen, die eine Komprimierung des Speicherinhalts
ermöglichen,
das Komprimierungsverhältnis
zum Startzeitpunkt auf der Grundlage des in dem betreffenden Datenverarbeitungssystem
bisher tatsächlich
erreichten Komprimierungsumfangs automatisch angepasst werden.
-
Der
Fachmann versteht, dass verschiedene Änderungen an der Form und an
den Einzelheiten der beispielhaft veranschaulichten Ausführungsformen,
die bisher beschrieben wurden, vorgenommen werden können. Zum
Beispiel kann eine vollständige oder
eine teilweise Spiegelung zur Anwendung kommen, und eine unterschiedliche
Anzahl von Speicherbänken
und unterschiedliche Spiegelungsverhältnisse werden ebenfalls unterstützt, unter
anderem auch Datenverarbeitungssysteme mit einer N-Wege-Spiegelung
(d. h. ein Datenverarbeitungssystem mit zwei oder mehr Spiegelkopien
von Daten von einer oder mehreren Primärspeicherbänken). Überdies kann die vorliegende
Erfindung vorteilhaft in Systemen mit oder ohne Komprimierung eingesetzt
werden.
-
Eine
weitere Möglichkeit
ist die teilweise Deaktivierung der Spiegelung, um Speicherüberlaufzustände zu beheben.
Wenn ein System anfangs beispielsweise so konfiguriert wird, dass
es zwei oder mehr Speicherbänke
zur Spiegelung verwendet, kann das System auf Speicherüberlaufzustände reagieren,
indem es eine Spiegelbank zu einer Primärspeicherbank umkonfiguriert,
während
die Spiegelung bei der anderen Spiegelbank aktiviert bleibt.
-
Obgleich
bestimmte Architekturen verwendet wurden, um beispielhafte Ausführungsformen
zu veranschaulichen, kann die vorliegende Erfindung in einer großen Vielzahl
von Architekturen eingesetzt werden, zu denen Personal Computer
für allgemeine Anwendungen,
Systeme mit mehreren Prozessoren, Minirechner und Großrechner
gehören,
ohne auf diese beschränkt
zu sein.
-
Obgleich
verschiedene Operationen der vorliegenden Erfindung als Operationen
beschrieben wurden, die von verschiedenen Komponenten ausgeführt werden,
zu denen das Speicher-Verwaltungsprogramm 60,
die CMC 30 und die MMC 50 gehören, dürfte es sich auch verstehen,
dass diese Operationen auch in anderer Weise unter diesen Komponenten
aufgeteilt werden könnten. Überdies
kann die Ausführung
von bestimmten Komponenten als Hardware, Software und/oder Firmware
entsprechend den jeweiligen Systemerfordernissen geändert werden.
Zum Beispiel könnte
das Speicher-Verwaltungsprogramm 60 teilweise oder vollständig in
Hardware und/oder Firmware ausgeführt werden. Statt über eine
Speicher-Steuereinheit zu verfügen,
die Signale wie zum Beispiel Unterbrechungen erzeugt, die von Software
zu verarbeiten sind, kann ein Datenverarbeitungssystem mit festverdrahteter
Logik, die die Spiegelung steuert, ebenso eine festverdrahtete Erkennungslogik
enthalten, die Speicherüberlaufzustände erkennt,
sowie eine Konfigurationslogik, die mit der Erkennungslogik in der
Weise festverdrahtet ist, dass die Konfigurationslogik die Spiegelung
automatisch deaktiviert und Speicherbänke bei Bedarf in Primärspeicherbänke umwandelt.
-
Darüber hinaus
kann die vorliegende Erfindung als ein Rechnerprogramm zur Verwendung
mit einem Datenverarbeitungssystem ausgeführt werden. Programme, die
die hier beschriebenen Funktionen festlegen, können über eine Vielzahl von Signal tragenden
Medien, zu denen nicht wieder beschreibbare Speichermedien (z. B.
CD-ROM), wieder beschreibbare Speichermedien (z. B. eine Diskette oder
ein Festplattenlaufwerk) und Übertragungsmedien
wie zum Beispiel digitale und analoge Netzwerke gehören, ohne
auf diese beschränkt
zu sein, einem Datenverarbeitungssystem zugeführt werden. Es sollte sich
deshalb verstehen, dass solche Signal tragenden Medien, wenn sie
rechnerlesbare Befehle übertragen
oder codieren, die diese Funktionen steuern, alternative Ausführungsformen
der vorliegenden Erfindung darstellen.