-
Der
Ausfall eines Computers sowie von Anwendungsprogrammen, die auf
einem Computer ausgeführt
werden, kann häufig
zu dem Verlust von beträchtlichen
Datenmengen und Zwischenberechnungen führen. Die Ursache des Ausfalls
kann entweder hardware- oder softwarebezogen sein, aber in jedem
Fall können
die Folgen teuer sein, insbesondere wenn Datenmanipulationen mitten
im Strom unterbrochen werden. In dem Fall von großen Softwareanwendungen
könnte
ein Ausfall einen umfassenden Aufwand erfordern, um den Status des
Zustands der Anwendung vor dem Ausfall wiederherzustellen.
-
Im
Allgemeinen speichern Prüfpunkt-
und Wiederherstellungstechniken periodisch den Prozesszustand während der
normalen Ausführung
und speichern nachfolgend erneut den gesicherten Zustand zu einem
Sicherungsprozess, der einem Ausfall folgt. Auf diese Weise wird
die Menge der verlorenen Arbeit auf den Fortschritt minimiert, der
durch den Anwendungsprozess seit dem zurückgespeicherten Prüfpunkt gemacht
wurde.
-
Üblicherweise
haben Computer die Prüfpunktdaten
entweder in einem Systemspeicher, der mit dem Prozessor des Computers
gekoppelt ist, oder auf anderen Eingabe-/Ausgabe- (I/O-) Speicherungsvorrichtungen
gespeichert, wie z. B. einem Magnetband oder einer Platte. I/O-Speicherungsvorrichtungen
können
an ein System angebracht sein, durch einen I/O-Bus, wie z. B. eine
PCI (ursprünglich
genannt Peripheral Component Interconnect = Peripheriekomponentenverbindung),
oder durch ein Netz, wie z. B. ein Faserkanal-, Infiniband-, ServerNet- oder
Ethernet-Netz. I/O-Speicherungsvorrichtungen sind üblicherweise
langsam, mit Zugriffszeiten von mehr als einer Millisekunde. Sie
verwenden spezielle I/O- Protokolle,
wie z. B. ein SCSI-Protokoll (SCSI = small Computer systems interface),
oder ein TCP/IP-Protokoll (TCP/IP = transmission control protocol/internet
protocol), und arbeiten üblicherweise als
Blockaustauschvorrichtungen (z. B. werden Daten in Datenblöcken fester
Größe gelesen
oder geschrieben). Ein Merkmal dieser Typen von I/O-Speicherungsvorrichtungen
ist, dass sie dauerhaft sind, derart, dass sie die Informationen
behalten, wenn sie Leistung verlieren oder neu gestartet werden,
die vorangehend auf denselben gespeichert waren. Zusätzlich dazu
kann auf I/O-Speicherungsvorrichtungen von mehreren Prozessoren
durch gemeinschaftlich verwendete I/O-Netzwerke zugegriffen werden, sogar
nachdem einige Prozessoren ausgefallen sind.
-
Wie
hierin verwendet, bezieht sich der Ausdruck „dauerhaft" auf eine Computerspeicher-Speicherungsvorrichtung,
die einer Leistungsrücksetzung widerstehen
kann, ohne den Verlust der Inhalte in dem Speicher. Dauerhafte Speichervorrichtungen wurden
verwendet, um Daten zu speichern, zum Starten oder Neustarten von
Softwareanwendungen. Bei einfachen Systemen sind Dauerspeichervorrichtungen
statisch und werden nicht modifiziert, wenn die Software ausgeführt wird.
Der Anfangszustand der Softwareumgebung ist in dem Dauerspeicher
gespeichert. In dem Fall eines Leistungsausfalls an dem Computer
oder einem anderen Ausfall, startet die Software ihre Ausführung von
dem Anfangszustand neu. Ein Problem bei diesem Lösungsansatz ist, dass alle
Zwischenberechnungen neu berechnet werden müssen. Dies kann insbesondere
lästig
sein, wenn große
Mengen von Benutzerdaten während dieses
Prozesses neu geladen werden müssen. Wenn
einige oder alle der Benutzerdaten nicht mehr verfügbar sind,
ist es vielleicht nicht möglich,
den Zustand vor dem Ausfall wiederherzustellen.
-
Der
Systemspeicher ist allgemein mit einem Prozessor durch einen Systembus
verbunden, wo ein solcher Speicher relativ schnell mit garantierten Zugriffszeiten
ist, die in jeweils zehn Nanosekunden gemessen werden. Ferner kann
auf den Systemspeicher direkt mit Byte-Pegel-Körnung zugegriffen werden. Der
Systemspeicher ist jedoch normalerweise flüchtig, derart, dass sein Inhalt
verloren geht, wenn die Leistung verloren geht, oder wenn ein System, das
einen solchen Speicher verkörpert,
neu gestartet wird. Ferner ist ein Systemspeicher üblicherweise
innerhalb desselben Ausfallbereichs wie ein Prozessor, derart, dass
der zugehörige
Speicher ebenfalls ausfällt
und auf denselben nicht mehr zugegriffen werden kann, wenn ein Prozessor
ausfällt.
Metadaten, die das Layout des Speichers beschreiben, gehen ebenfalls
verloren, wenn die Leistung verloren geht oder wenn das System,
das einen solchen Speicher verkörpert,
neu gestartet wird.
-
Bekannte
Systeme verwenden batteriegesicherte dynamische Direktzugriffsspeicher
(BBDRAM; BBDRAM = battery-backed dynamic random access memory),
Festzustandsplatten und netzwerkangebrachte flüchtige Speicher. Ein bekannter
BBDRAM kann Verhaltensvorteile z. B. gegenüber einem wahrlich Dauerspeicher
aufweisen. Er ist jedoch nicht global zugreifbar. Ferner wird ein
BBDRAM, der in demselben Ausfallbereich liegt wie eine zugehörige CPU, in
dem Fall eines CPU-Ausfalls oder eines Betriebssystemzusammenbruchs
unzugreifbar. Entsprechend wird ein BBDRAM häufig in Situationen verwendet,
in denen der gesamte Systemspeicher dauerhaft ist, so dass das System
schnell nach einem Leistungsausfall oder einem Neustart wiedergestartet
werden kann. Ein BBDRAM ist während
langer Leistungsaussetzer flüchtig,
derart, dass eine alternative Einrichtung bereitgestellt werden
muss, um dessen Inhalte zu speichern, bevor die Batterien leer werden.
Es ist wichtig, darauf hinzuweisen, dass diese Verwendung des BBDRAM
sehr eingeschränkt
ist und nicht für
eine Verwendung z. B. bei netzwerkangebrachten Dauerspeicheranwendungen
abgeändert
werden kann.
-
Batteriegepufferte
Festkörperplatten
(BBSSDs; BBSSD = battery-backed solid-state disk) wurden ebenfalls
für andere
Inkrementierungen vorgeschlagen. Diese BBSSDs lie fern Dauerspeicher,
aber funktional emulieren sie ein Plattenlaufwerk. Ein wichtiger
Nachteil dieses Lösungsansatzes
ist die zusätzliche
Latenzzeit, die dem Zugriff auf diese Vorrichtungen durch I/O-Adapter
zugeordnet ist. Diese Latenzzeit ist inhärent in den blockorientierten
und dateiorientierten Speicherungsmodellen, die durch Platten verwendet
werden, und ihrerseits in BBSSDs, die das Betriebssystem des Hostcomputers
nicht umgehen. Während
es möglich
ist, Festkörperplatten
zu modifizieren, um einige Mängel
zu beseitigen, kann die inhärente
Latenzzeit nicht beseitigt werden, da das Verhalten durch die I/O-Protokolle
und ihre zugeordneten Vorrichtungslaufwerke eingeschränkt ist. Wie
bei einem BBDRAM sind zusätzliche
Techniken erforderlich, um den Prüfpunktzustand eines Anwendungsprogramms
in einem ausgefallenen Bereich zu einer Sicherungskopie des Anwendungsprogramms zu
liefern, das in einem Betriebsbereich läuft.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein System zum Speichern
von Prüfpunktzustandsinformationen,
ein Verfahren zum Wiedergewinnen des Operationszustands eines Primärprozesses,
ein Computerprodukt, eine Vorrichtung, ein Verfahren zum Aufzeichnen
des Betriebszustands eines Primärprozesses
und ein Verfahren zum Wiedergewinnen des Betriebszustands eines
Primärprozesses mit
verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein System zum Speichern von Prüfpunktzustandsinformationen
gemäß Anspruch
1, ein Verfahren zum Wiedergewinnen des Betriebszustands eines Primärprozesses gemäß Anspruch
10 und 35, ein Computerprodukt gemäß Anspruch 21, eine Vorrichtung
gemäß Anspruch
26 und ein Verfahren zum Aufzeichnen des Betriebszustands eines
Primärprozesses
gemäß Anspruch
32 gelöst.
-
Bei
einigen Ausführungsbeispielen
umfasst ein System eine Netzwerkschnittstelle, die an eine Dauerspeichereinheit
angebracht ist. Die Dauerspeichereinheit ist konfiguriert, um Prüfpunktdaten
von einem Primärprozess
zu empfangen, und um Zugriff auf die Prüfpunktdaten zur Verwendung
in einem Sicherungsprozess zu liefern, um die Wiedergewinnungsfähigkeit
in dem Fall eines Ausfalls des Primärprozesses zu unterstützen. Die
Netzwerkschnittstelle ist konfiguriert, um Adressübersetzungsinformationen
zwischen einer virtuellen und einer physischen Adresse in der Dauerspeichereinheit
zu liefern. Bei anderen Ausführungsbeispielen
ist die Dauerspeichereinheit in der Lage zum Speichern von mehreren Aktualisierungen
für den
Prüfpunktzustand.
Der Prüfpunktzustand
und die Aktualisierungen für
den Prüfpunktzustand,
falls vorhanden, können
durch den Sicherungsprozess periodisch oder alle zusammen nach einem
Ausfall des Primärprozesses
wiedergewonnen werden.
-
Bei
einem wiederum anderen Ausführungsbeispiel
umfasst ein Verfahren zum Wiedergewinnen des Operationszustands
eines Primärprozesses
das Abbilden virtueller Adressen einer Dauerspeichereinheit in physische
Adressen der Dauerspeichereinheit und das Empfangen von Prüfpunktdaten
im Hinblick auf den Operationszustand des Primärprozesses in der Dauerspeichereinheit.
Bei einigen Ausführungsbeispielen
werden die Prüfpunktdaten
zu einem Sicherungsprozess geliefert. Bei wiederum anderen Ausführungsbeispielen
werden die Kontextinformationen im Hinblick auf die Adresse zu dem
Primärprozess
und dem Sicherungsprozess geliefert.
-
Bei
anderen Ausführungsbeispielen
liefert die Dauerspeichereinheit die Prüfpunktdaten zu dem Sicherungsprozess,
wenn der Primärprozesses
ausfällt.
Alternativ, bei wiederum anderen Ausführungsbeispielen, kann die
Dauerspeichereinheit konfiguriert sein, um mehrere Sätze von
Prüfpunktdaten
zu speichern, die von dem Prozessor in aufeinander folgenden Zeitintervallen
gesendet werden, oder um die mehreren Sätze von Prüfpunktdaten gleichzeitig zu dem
Sicherungsprozess zu liefern.
-
Diese
und andere Ausführungsbeispiele werden
nach einem Verständnis
der vorliegenden Offenbarung durch einen Durchschnittsfachmann auf dem
Gebiet verständlich,
auf das sich dieselbe bezieht.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1A ein
Blockdiagramm eines Ausführungsbeispiels
eines Systems, das eine netzwerkangebrachte Dauerspeichereinheit
(NPMU; NPMU = network attached persistent memory unit) umfasst, die
in der Lage ist, Prüfpunktzustandsinformationen zu
speichern;
-
1B ein
Diagramm eines Ausführungsbeispiels
eines Verfahrens zum Zugreifen auf Prüfpunktzustandsinformationen
von der NPMU aus 1A;
-
1C ein
Blockdiagramm eines Ausführungsbeispiels
eines Systems, das eine netzwerkangebrachte Dauerspeichereinheit
(NPMU) umfasst, die in der Lage ist, mehrere Sätze von Prüfpunktzustandsinformationen
zu speichern;
-
1D ein
Diagramm eines Ausführungsbeispiels
eines anderen Verfahrens zum Zugreifen auf Prüfpunktzustandsinformationen
aus der NPMU aus 1C;
-
2 ein
Blockdiagramm eines Ausführungsbeispiels
einer netzwerkangebrachten Dauerspeichereinheit (NPMU);
-
3 ein
Blockdiagramm eines Ausführungsbeispiels
einer netzwerkangebrachten Dauerspeichereinheit (NPMU), die eine
Batteriesicherung verwendet;
-
4 ein
Blockdiagramm, das Abbildungen von einem virtuellen Adressraum eines
Dauerspeichers auf einen physischen Adressraum eines Dauerspeichers
darstellt; und
-
5 ein
Blockdiagramm eines darstellenden Computersystems, auf dem eine
netzwerkangebrachte Dauerspeichereinheit (NPMU) implementiert sein
kann.
-
Obwohl
bekannte Systeme Dauerspeicher nur im Kontext von blockorientierten
und dateiorientierten I/O-Architekturen mit ihren relativ langen
Latenzzeiten verwendet haben, beschreiben die vorliegenden Lehren
einen Speicher, der dauerhaft ist, wie traditionelle I/O-Speicherungsvorrichtungen,
aber auf den wie auf einen Systemspeicher mit feiner Körnung und
niedriger Latenzzeit zugegriffen werden kann. Systeme gemäß den vorliegenden
Lehren ermöglichen
es Anwendungsprogrammen, einen oder mehrere Prüfpunktzustände zu speichern, auf die durch eine
Sicherungskopie der Anwendung in dem Fall eines Hardware- oder Softwareausfalls
zugegriffen werden kann, der verhindert, dass das Primäranwendungsprogramm
ausgeführt
wird.
-
Wie
in 1 gezeigt ist, umfasst ein System 100,
das einen netzwerkangebrachten Dauerspeicher verwendet, eine netzwerkangebrachte
Dauerspeichereinheit (NPMU) 102, auf die durch einen oder
mehrere Prozessorknoten 104, 106 durch entsprechende
Netzwerkschnittstellen (NI) 108, 110 zugegriffen
werden kann, und ein Systembereichsnetzwerk (SAN) 112,
wie z. B. ein entferntes direktspeicherzugriffsaktiviertes (RDMA-aktiviertes)
SAN. Ein RDMA (RDMA = Remote Direct Memory Access) kann als ein
Merkmal von NIs 108, 110 und 114 implementiert
sein, um es Prozessorknoten 104, 106 zu ermöglichen,
Informationen in dem Speicher einer NPMU 102 direkt zu
speichern und wiederzugewinnen. Das Übertragen von Daten direkt
zu oder von einer NPMU 102 beseitigt den Bedarf zum Kopieren von
Daten zwischen einem Speicher in Prozessorknoten 104, 106 und
Kern-I/O-Prozessen in Betriebssystemen 144, 146.
Eine RDMA-Fähigkeit
reduziert somit die Anzahl von Kontextschaltungen zwischen Primärprozess 116 und
Sicherungsprozess 122 und Betriebssystemen 144, 146,
während
Speicherübertragungen über das
SAN 112 gehandhabt werden.
-
Ein
SAN 112 greift auf eine NPMU 102 über eine
Netzwerkschnittstelle (NI) 114 zu. Eine NPMU 102 kombiniert
die Dauerhaftigkeit und die Wiedergewinnbarkeit von Speicherungs-I/O
mit der Geschwindigkeit und dem feinkörnigen Zugriff des Systemspeichers.
Wie die Speicherung können
Inhalte einer NPMU 102 den Verlust von Leistung oder einen
Systemneustart überleben.
Wie auf einen entfernten Speicher kann auf eine NPMU 102 über ein
SAN 112 zugegriffen werden. Im Gegensatz zu einem direkt angeschlossenen
Speicher jedoch kann auf die NPMU 102 weiter zugegriffen
werden, sogar nachdem einer oder mehrere Prozessorknoten 104, 106 ausgefallen
sind.
-
Ein
Primärprozess 116,
der auf einem Prozessorknoten 104 läuft, kann entfernte Befehle
initiieren, z. B. einen Schreibbefehl, um Daten für einen Prüfpunktzustand 120 in
der NPMU 102 zu senden. Der Primärprozess 116 kann
Daten für
einen Prüfpunktzustand 120 ferner
periodisch liefern. Ein Sicherungsprozess 122, der auf
dem Prozessorknoten 106 läuft, ist konfiguriert, um die
Funktionen des Primärprozesses 116 in
dem Fall eines Ausfalls des Primärprozesses 116 auszuführen. Der
Sicherungsprozess 122 kann ferner entfernte Lese- und Schreiboperationen
zu der NPMU 102 initiieren, wie z. B. einen Lesebefehl,
um auf einen Prüfpunktzustand 120 periodisch
und/oder nach einem Ausfall des Primärprozesses 116 zuzugreifen.
-
Bei
einer Schreiboperation, die durch den Prozessorknoten 104 initiiert
wird, z. B. sobald Daten erfolgreich in der NPMU 102 gespeichert
wurden, sind die Daten dauerhaft und werden eine Leistungsunterbrechung
oder Ausfall des Prozessorknotens 104, 106 überleben.
Insbesondere werden Spei cherinhalte beibehalten, solange die NPMU 102 weiterhin
korrekt funktioniert, sogar nachdem die Leistung für eine ausgedehnte
Zeitperiode abgetrennt wurde, oder das Betriebssystem an dem Prozessorknoten 104, 106 neu
gestartet wurde. Zusätzlich
zu Datenübertragungsoperationen
kann die NPMU 102 konfiguriert sein, um auf verschiedene
Verwaltungsbefehle zu antworten.
-
Bei
einigen Ausführungsbeispielen
sind Prozessorknoten 104, 106 Computersysteme,
die zumindest eine zentrale Verarbeitungseinheit (CPU) und einen
Systemspeicher umfassen, bei dem die CPU konfiguriert ist, um Betriebssysteme 144, 146 zu betreiben.
Prozessorknoten 104, 106 können zusätzlich konfiguriert sein, um
einen oder mehrere eines Typs von Anwendungsprogramm zu betreiben,
wie z. B. einen Primärprozess 116 und
einen Sicherungsprozess 118. Obwohl das System 100 mit
zwei Prozessorknoten 104, 106 gezeigt ist, können zusätzliche
Prozessorknoten (nicht gezeigt) mit dem SAN 112 sowie den
Prozessorknoten 104, 106 über ein Netzwerk (nicht gezeigt) über Netzwerkschnittstellen 108, 110, 114 kommunizieren.
-
Bei
einigen Ausführungsbeispielen
ist das SAN 112 ein RDMA-freigegebenes Netzwerk, das mehrere
Netzwerkschnittstelleneinheiten (NI) verbindet, wie z. B. NIs 108, 110 und 114,
die Byte-Pegel-Speicheroperationen zwischen zwei Prozessorknoten 104, 106 oder
zwischen Prozessorknoten 104, 106 und einer Vorrichtung
durchführen
können, wie
z. B. der NPMU 102, ohne Betriebssysteme 144, 146 zu
benachrichtigen. In diesem Fall ist das SAN 112 konfiguriert,
um eine Virtuell-zu-Physisch-Adressübersetzung
durchzuführen,
um zusammenhängende
virtuelle Netzwerkadressräume
in nicht zusammenhängende
physische Adressräume abzubilden.
Dieser Typ von Adressübersetzung
ermöglicht
eine dynamische Verwaltung der NPMU 102. Handelsüblich erhältliche
SANs 112 mit RDMA-Fähigkeit
umfassen, sind jedoch nicht beschränkt auf, ServerNet, GigaNet,
Infiniband und alle SANs, die einer Virtual Interface Architecture
entsprechen.
-
Prozessorknoten 104, 106 sind
allgemein an ein SAN 112 durch jeweilige NIs 108, 110 angebracht,
viele Variationen sind jedoch möglich.
Allgemeiner ausgedrückt
muss ein Prozessorknoten jedoch nur mit einer Vorrichtung zum Kommunizieren von
Lese- und Schreiboperationen verbunden sein. Zum Beispiel, bei einer
anderen Implementierung dieses Ausführungsbeispiels, umfassen Prozessorknoten 104, 106 verschiedene
CPUs an einer Hauptplatine, die einen Datenbus verwenden, z. B.
einen PCI-Bus, anstelle des SAN 112. Es wird darauf hingewiesen,
dass die vorliegenden Lehren aufwärts- oder abwärtsskaliert
werden können,
um größere oder
kleinere Implementierungen unterzubringen, je nach Bedarf.
-
Netzwerkschnittstellen
(NI) 108, 110, 114 sind kommunikativ
mit der NPMU 102 gekoppelt, um einen Zugriff auf den Dauerspeicher
zu ermöglichen, der
in der NPMU 102 enthalten ist. Eine geeignete Technik kann
für die
verschiedenen Komponenten aus 1A verwendet
werden, einschließlich
dem Typ eines Dauerspeichers. Entsprechend ist das Ausführungsbeispiel
aus 1A nicht auf eine spezifische Technik zum Realisieren
des Dauerspeichers eingeschränkt.
Tatsächlich
können
mehrere Speichertechniken, einschließlich einem magnetischen Direktzugriffsspeicher
(MRAM), einem magnetoresistiven Direktzugriffsspeicher (MRRAM),
einem polymerferroelektrischen Direktzugriffsspeicher (PFRAM), einem
Ovonic-Einheits-Speicher (OUM), einem BBDRAM und FLASH-Speicher aller Arten
geeignet sein. Das System 100 kann konfiguriert sein, um
einen Speicherzugriff mit hoher Körnung zu ermöglichen,
einschließlich
einem Byte-Pegel-Speicherzugriff,
der im Vergleich zu BBSSDs gesamte Informationsblöcke überträgt.
-
Es
wird darauf hingewiesen, dass die Speicherzugriffskörnung nach
Bedarf in dem System 100 eingestellt werden kann. Die Zugriffsgeschwindigkeit des
Speichers in einer NPMU 102 sollte ebenfalls schnell genug
sein, um die Übertragungsra ten
des Datenkommunikationsschemas zu unterstützen, das für ein System 100 implementiert
ist.
-
Es
sollte darauf hingewiesen werden, dass Dauerinformationen zu dem
Ausmaß geliefert
werden, zu dem der Dauerspeicher in Verwendung Daten halten kann.
Zum Beispiel kann bei vielen Anwendungen ein Dauerspeicher erforderlich
sein, um Daten zu speichern, unabhängig von der Zeitdauer, für die Leistung
verloren geht; wohingegen bei anderen Anwendungen ein Dauerspeicher
vielleicht nur für wenige
Minuten oder Stunden erforderlich ist.
-
Eine
Speicherverwaltungsfunktionalität
kann in dem System 100 bereitgestellt werden, um eine oder
mehrere unabhängige,
indirekt adressierte Speicherregionen zu erzeugen. Ferner können NPMU-Metadaten
für eine
Speicherwiedergewinnung bereitgestellt werden, nach einem Leistungsverlust
oder einem Prozessorausfall. Metadaten können z. B. die Inhalte und
das Layout der geschützten Speicherregionen
innerhalb einer NPMU 102 umfassen. Auf diese Weise speichert
die NPMU 102 die Daten sowie die Art und Weise des Verwendens
der Daten. Wenn der Bedarf entsteht, kann die NPMU 102 die
Metadaten zu dem Sicherungsprozess 122 liefern, um dem
System 100 zu ermöglichen,
sich von einem Leistungs- oder Systemausfall zu erholen, der dem
primären
Prozess 116 zugeordnet ist.
-
Bei
dem Ausführungsbeispiel
des Systems 100, das in 1A gezeigt
ist, kann jede Aktualisierung an dem Prüfpunktzustand 120 einige
oder alle Informationen überschreiben,
die momentan für
den Prüfpunktzustand 120 gespeichert
sind. Da nur eine Kopie des Prüfpunktzustands 120 vorliegt,
kann der Sicherungsprozess 122 im Leerlauf bleiben, bis
der Primärprozess 116 ausfällt, und
dann den Prüfpunktzustand 120 lesen,
um die Funktionen fortzusetzen, die durch den Primärprozess 116 ausgeführt wurden. 1B ist
ein Diagramm eines Ausführungsbeispiels eines
Verfahrens zum Zugreifen auf einen Prüfpunktzustand 120 von
der NPMU 102. Wie ge zeigt ist, schreibt der Primärprozess 116 Daten
in die Anfangsadresse des Prüfpunktzustands 120 und
der Sicherungsprozess 122 liest Daten von dem Anfang des Prüfpunktzustands 120.
Bei einem solchen Ausführungsbeispiel
muss nur eine Kopie des Prüfpunktzustands 120 beibehalten
werden.
-
1C zeigt
ein anderes Ausführungsbeispiel
einer NPMU 102, die mit mehreren Prüfpunktaktualisierungsbereichen 128 – 132 konfiguriert
ist, die dem Prüfpunktzustand 120 zugeordnet
sind. Ein Prüfpunktzustand 120 kann
einen Vollsicherungszustand für
einen Primärprozess 116 umfassen.
Jede Aktualisierung an dem Prüfpunktzustand 120 kann an
die vorangehend geschriebenen Informationen angehängt werden,
wodurch eine Reihe von Aktualisierungen an dem Prüfpunktzustand 120 in
nichtüberlappenden
Aktualisierungsbereichen 128 – 132 der NPMU 102 erzeugt
wird. Wenn der Prüfpunktzustand 120 relativ
groß ist,
liefern Aktualisierungsbereiche 128 – 132 einen Vorteil
des Beseitigens des Bedarfs für
einen Primärprozess 116,
einen vollständigen
Prüfpunktzustand 120 jedes
Mal zu schreiben, wenn Zeitinformationen mit einem Prüfpunkt versehen
werden.
-
Zum
Beispiel kann ein Primärprozess 116 in großen Datenblöcken während der
Initialisierung lesen, und verschiedene Segmente der Daten in unterschiedlichen
Operationsphasen aktualisieren. Der anfängliche Prüfpunktzustand 120 kann
eine Sicherung aller Daten umfassen, während Aktualisierungsbereiche 128 – 132 verwendet
werden können,
um kleinere Segmente der Daten zu speichern, wenn die Segmente aktualisiert
werden. Der Sicherungsprozess 122 kann sich dann selbst
mit dem Prüfpunktzustand 120 initialisieren
und Daten aus den nachfolgenden Aktualisierungsbereichen 128 – 132 in
der Reihenfolge anwenden, in der sie geschrieben wurden. Ferner
muss der Sicherungsprozess 122 nicht warten, bis ein Primärprozess 116 ausfällt, um
damit zu beginnen, sich selbst mit Daten aus dem Prüfpunktzustand 120 und
den Aktualisierungsbereichen 128 – 132 zu initialisieren.
Dies gilt insbesondere, wenn ein Potential vorliegt, die Menge von
Speicherungsraum zu überschreiten,
der für
den Prüfpunktzustand 120 und
die Aktualisierungsbereiche 128 – 132 verfügbar ist.
Dies gilt ferner, wenn es eine größere Zeitmenge als erwünscht für den Sicherungsprozess 122 erfordern
würde,
den Zustand des Primärprozesses 116 wiederzuerzeugen,
nachdem der Primärprozess 116 ausfällt.
-
1D ist
ein Diagramm eines Ausführungsbeispiels
eines Verfahrens zum Zugreifen auf einen Prüfpunktzustand 120 aus
der NPMU 102 von 1C. Wie
gezeigt ist, hängt
der Primärprozess 116 Daten
an die Adresse des Prüfpunktzustands 120 und
Aktualisierungsbereiche (nicht gezeigt) nach der Adresse an, wo
die Daten zuletzt in die NPMU 102 geschrieben wurden. Der
Sicherungsprozess 122 liest Daten von dem Anfang zu dem
Ende des letzten Bereichs, der durch den Primärprozess 116 geschrieben
wurde. Bei solchen Ausführungsbeispielen
werden Einrichtungen bereitgestellt, um einen Sicherungsprozess 122 mit
dem Start- und Endort der aktuellsten Aktualisierung zu dem Prüfpunktzustand 120 zu
liefern, wie hierin weitergehend erörtert wird.
-
Egal
ob der Sicherungsprozess 122 den Prüfpunktzustand 120 und
die Aktualisierungsbereiche 128 – 132 periodisch liest
oder wenn der Primärprozess 116 ausfällt, kann
der Sicherungsprozess 122 einen vorangehend nicht gelesenen
Abschnitt des mit einem Prüfpunkt
versehenen Zustands 120 und Aktualisierungsbereiche 128 – 132 lesen,
bevor für
den Primärprozess 116 übernommen
wird.
-
Das
Verwenden einer NPMU 102 ermöglicht, dass der Primärprozess 116 den
Prüfpunktzustand 120 speichert,
unabhängig
von der Identität,
dem Ort oder dem Operationszustand des Sicherungsprozesses 122.
Der Sicherungsprozess 122 kann in einem entfernten System
erzeugt werden, das Zugriff auf die NPMU 102 hat. Der Primärprozess 116 kann
einen Prüfpunktzustand 120 und/oder
Aktualisierungsbereiche 128 – 132 schreiben, immer
wenn dies erforderlich ist, ohne darauf zu warten, dass der Sicherungsprozess 122 den
Empfang der Nachrichten bestätigt.
Zusätzlich
dazu ermöglicht
die NPMU 102 eine effiziente Verwendung von verfügbaren Informationstechnikressourcen
(IT-Ressourcen), da der Sicherungsprozess 122 nur ausgeführt werden
muss, entweder (1) wenn der Primärprozess 116 ausfällt; oder
(2) um Informationen periodisch aus dem Prüfpunktzustand 120 und/oder
Aktualisierungsbereichen 128 – 132 zu lesen, um
ein Überschreiten
der NPMU 102 zu vermeiden. Im Gegensatz dazu verwenden
einige bisher bekannte Prüfpunkterzeugungstechniken
eine Meldung, die zwischen einem Primärprozess und einem Sicherungsprozess
läuft, um
Prüfpunktinformationen
zu kommunizieren. Der Primärprozess
erfordert somit Informationen im Hinblick auf die Identität und den
Ort des Sicherungsprozesses. Zusätzlich
dazu musste der Sicherungsprozess bei vorangehend bekannten Systemen
betriebsfähig
sein, um mit dem Primärprozess
synchronisiert zu sein, um die Prüfpunktmeldung zu empfangen.
-
Ferner
kann die NPMU 102 in Hardware implementiert sein, wodurch
ein schneller Zugriff für
Lese- und Schreiboperationen geliefert wird. Andere bereits bekannte
Prüfpunkterzeugungstechniken speichern
Prüfpunktinformationen
auf magnetischen oder optischen Medien, was viel mehr Zugriffszeit
erfordert als die NPMU 102.
-
2 zeigt
ein Ausführungsbeispiel
der NPMU 102, die einen nichtflüchtigen Speicher 202 verwendet,
der kommunikativ mit einer NI 114 über eine Kommunikationsverknüpfung 206 gekoppelt
ist. Ein nichtflüchtiger
Speicher 202 kann z. B. ein MRAM- oder Flash-Speicher sein.
Eine NI 114 initiiert üblicherweise
nicht ihre eigenen Anforderungen, sondern statt dessen empfängt die
NI 114 Verwaltungsbefehle von dem SAN 112 über die
Kommunikationsverknüpfung 210 und
führt die
angeforderten Verwaltungsoperationen aus. Genauer gesagt kann die
NPMU 200 eingehende Anforderungen übersetzen und dann die angeforderte
Operation ausführen. Weitere
Details über
die Befehlsverarbeitung werden nachfolgend erörtert. Kommunikationsverknüpfungen 206, 210 können für eine verdrahtete
und/oder drahtlose Kommunikation konfiguriert sein. Das SAN 112 kann
eine geeignete Kommunikations- und
Verarbeitungs-Infrastruktur zwischen der NI 114 und anderen
Knoten sein, wie z. B. Prozessorknoten 104, 106 in 1A.
Zum Beispiel kann das SAN 112 ein lokales Netz und/oder
ein weites Netz sein, wie z. B. das Internet.
-
3 zeigt
ein anderes Ausführungsbeispiel einer
NPMU 102 unter Verwendung einer Kombination von einem flüchtigen
Speicher 302 mit einer Batterie 304 und einem
nichtflüchtigen
Sekundärspeicher 310.
Bei diesem Ausführungsbeispiel,
wenn die Leistung ausfällt,
werden Daten innerhalb des flüchtigen
Speichers 302 bewahrt, unter Verwendung der Leistung der
Batterie 304, bis solche Daten in einem nichtflüchtigen
Sekundärspeicher 310 gespeichert werden
können.
Ein nichtflüchtiger
Sekundärspeicher
kann z. B. eine Magnetplatte oder ein langsamer FLASH-Speicher sein.
Die Übertragung
von Daten von dem flüchtigen
Speicher 302 zu dem nichtflüchtigen Sekundärspeicher 310 kann
ohne externen Eingriff erfolgen oder ohne zusätzliche Leistung außer der
von der Batterie 304. Entsprechend werden geforderte Aufgaben üblicherweise
beendet, bevor die Batterie 304 vollständig entladen ist. Wie gezeigt
ist, umfasst die NPMU 102 eine optionale CPU 306,
die ein eingebettetes Betriebssystem betreibt. Entsprechend kann
die Sicherungsaufgabe (d. h. Datenübertragung von flüchtigem
Speicher 302 zu nichtflüchtigem
Sekundärspeicher 310)
durch eine Software durchgeführt
werden, die auf der CPU 306 läuft. Die NI 114 initiiert
Anforderungen unter der Steuerung der Software, die auf der CPU 306 läuft. Die
CPU 306 kann Verwaltungsbefehle von dem Netzwerk empfangen
und kann die angeforderte Verwaltungsoperation ausführen.
-
Verschiedene
Ausführungsbeispiele
der NPMU 102 können
verwaltet werden, um eine Ressourcen-Zuordnung und -Gemeinschaftsverwendung
zu ermöglichen.
Bei einigen Ausführungsbeispielen
wird die NPMU 102 durch einen Dauerspeicherver walter (PMM;
PMM = persistent memory manager) 140 verwaltet, wie in 1A gezeigt
ist. Der PMM 140 kann innerhalb oder außerhalb der NPMU 102 angeordnet
sein. Wenn der PMM 140 innerhalb der NPMU 102 ist,
können
Prozessorknoten 104, 106 mit dem PMM 140 über ein
SAN 112 und eine Netzwerkschnittstelle (NI) 114 kommunizieren,
um angeforderte Verwaltungsaufgaben auszuführen, wie z. B. das Zuordnen
oder das Aufheben der Zuordnung von Regionen von Dauerspeicher der
NPMU 102, oder eine existierende Region von Dauerspeicher
zu verwenden. Wenn ein PMM 140 außerhalb einer NPMU 102 ist,
können
Prozessorknoten 104, 106 Anforderungen an die
NPMU 102 ausgeben, und die NPMU 102 kann schnittstellenmäßig mit
einem PMM 140 über
die NI 114, das SAN 112 und die NI 114 verbunden
werden, die dem PMM 140 zugeordnet ist. Als weitere Alternative
können
die Prozessorknoten 104, 106 direkt mit dem PMM 140 über die
NI 108 bzw. 110 und das SAN 112 und die
NI 114 kommunizieren. Der PMM 140 kann dann die
geeigneten Befehle an die NPMU 102 ausgeben, um angeforderte
Verwaltungsaufgaben auszuführen.
-
Es
wird darauf hingewiesen, da die NPMU 102 dauerhaft sein
kann und einen selbstbeschreibenden Körper aus dauerhaften Daten
beibehalten kann, können
Metadaten, die sich auf existierende Dauerspeicherregionen beziehen,
in der NPMU 102 gespeichert werden. Der PMM 140 kann
Verwaltungsaufgaben ausführen,
die die Metadaten auf der NPMU 102 konsistent mit den dauerhaften
Daten halten, die in der NPMU 102 gespeichert sind. Auf
diese Weise können
die gespeicherten Daten der NPMU immer unter Verwendung der gespeicherten
Metadaten der NPMU interpretiert werden und dadurch nach einem möglichen
System-Leistungsabfall oder -Ausfall wiedergewonnen werden. Die
NPMU 102 behält somit
auf dauerhafte Weise nicht nur die Daten bei, die manipuliert werden,
sondern auch den Zustand der Verarbeitung solcher Daten. Nach einem
Bedarf zur Wiedergewinnung ist das System 100 unter Verwendung
einer NPMU 102 somit in der Lage, eine Operation aus dem
Speicherzustand wiederzugewinnen und fortzusetzen, in dem ein Leistungsabfall
oder ein Betriebssystemzusammenbruch aufgetreten ist.
-
Wie
Bezug nehmend auf 1A beschrieben wurde, liefert
das SAN 112 eine Basisspeicherverwaltung und eine virtuelle
Speicherunterstützung. Bei
einer solchen Implementierung kann der PMM 140 die Logik
in der NI 114 programmieren, um entfernte Lese- und Schreiboperationen
zu ermöglichen, während gleichzeitig
der Dauerspeicher vor einem nichtautorisierten oder unbeabsichtigten
Zugriff durch alle außer
einem ausgewählten
Satz von Entitäten
auf dem SAN 112 geschützt
wird. Ferner, wie in 4 gezeigt ist, kann die NPMU 102 eine
Virtuell-zu-Physisch-Adressübersetzung
unterstützen. Zum
Beispiel kann ein durchgehender virtueller Adressraum, wie z. B.
virtuelle Adressen 402 – 416 des Dauerspeichers
(PM; PM = persistent memory), in physische Adressen 418 – 448 eines
nicht zusammenhängenden
Dauerspeichers abgebildet oder übersetzt
werden. Auf virtuelle Adressen des PM kann relativ zu einer Basisadresse
Bezug genommen werden, durch N inkrementelle Adressen. Solche virtuellen
PM-Adressen können
jedoch ebenfalls nicht zusammenhängenden
physischen PM-Adressen entsprechen.
-
Wie
gezeigt ist, kann die virtuelle PM-Adresse 402 tatsächlich einer
physischen PM-Adresse 436 entsprechen usw. Entsprechend
kann die NPMU 102 die entsprechende Übersetzung von dem virtuellen PM-Adressraum
zu dem physischen PM-Adressraum
und umgekehrt liefern. Auf diese Weise ermöglicht der Übersetzungsmechanismus der
NPMU 102, den Prozessorknoten 104, 106 zusammenhängende virtuelle
Adressbereiche zu präsentieren,
während weiterhin
eine dynamische Verwaltung des physischen Speichers der NPMU ermöglicht wird.
Dies kann wichtig sein, aufgrund des dauerhaften Wesens der Daten
auf einer NPMU 102. Aufgrund von Konfigurationsänderungen
kann sich die Anzahl von Prozessen, die auf eine bestimmte NPMU 102 zugreifen, oder
möglicherweise
die Größen ihrer
jeweiligen Zuordnungen, im Lauf der Zeit ändern. Der Adressübersetzungsmechanismus
ermöglicht
es einer NPMU 102, solche Änderungen ohne einen Datenverlust ohne
weiteres unterzubringen. Der Adressübersetzungsmechanismus ermöglicht ferner
eine leichte und effiziente Verwendung einer Dauerspeicherkapazität weder
durch Zwingen der Prozessorknoten 104, 106, zukünftige Speicherbedürfnisse
vor einer Zuordnung vorherzusagen, noch durch zwingen der Prozessorknoten 104, 106,
eine Dauerspeicherkapazität
durch pessimistische Zuordnung zu verschwenden.
-
Unter
Bezugnahme wiederum auf 1A ist ein
ServerNet-SAN, das
in seinem nativen Zugriffsvalidierungs- und Übersetzungsblock-Übertragungsmaschinenmodus
(AVT/BTE-Modus) arbeitet, ein Beispiel eines Einzeladressraum-SAN 112.
Jedes Ziel auf einem solchen SAN stellt denselben flachen virtuellen
Netzwerkadressraum für
alle Komponenten dar, die Anforderungen an das SAN 112 ausgeben, wie
z. B. Prozessorknoten 104, 106. Virtuelle Netzwerkadressbereiche
können
durch das Ziel von virtuellen PM-Adressbereichen auf physische PM-Adressbereiche
abgebildet werden, mit Seitenkörnung.
Virtuelle Netzwerk-PM-Adressbereiche können ausschließlich auf
einem einzelnen Initiator angeordnet sein (z. B. Prozessorknoten 104),
und mehrere virtuelle PM-Adressen
können
auf dieselbe physische Seite zeigen.
-
Wenn
der Prozessorknoten 104 anfordert, dass der PMM 140 eine
Region aus Dauerspeicher in der NPMU 102 öffnet (d.
h. zuordnet und dann mit der Verwendung beginnt), kann die NI 114
der NPMU durch den PMM 140 programmiert werden, um es einem
Prozessorknoten 104 zu ermöglichen, auf die entsprechende
Region zuzugreifen. Diese Programmierung ordnet einen Block aus
virtuellen Netzwerkadressen zu und bildet (d. h. übersetzt)
dieselben in einen Satz von physischen Seiten in dem physischen Speicher
ab. Der Bereich der virtuellen PM-Adressen kann zusammenhängend sein,
unabhängig
davon, auf wie viele Seiten einer physischen PM-Adresse zugegriffen
werden soll. Die physischen Seiten können jedoch irgendwo innerhalb
des physischen PM-Speichers sein. Nach dem erfolgreichen Einrichten
der Übersetzung
kann die NPMU 102 den anfordernden Prozessorknoten 104 der
virtuellen PM-Adresse des zusammenhängenden Blocks benachrichtigen.
Sobald er offen ist, kann der Prozessorknoten 104 auf die
NPMU-Speicherseiten zugreifen, durch Ausgeben von Lese- oder Schreiboperationen
zu der NPMU 102. Die NPMU 102 kann ebenfalls nachfolgende
anfordernde Prozessorknoten 106 benachrichtigen, die auf
Daten zugreifen möchten, die
durch den Prozessorknoten 104 der virtuellen Adresse des
entsprechenden Speichers geliefert werden. Der PMM 140 kann
die virtuelle Adresse in die entsprechende physische Adresse des
Speichers umwandeln, um angeforderte Informationen zu liefern, wie
z. B. den Prüfpunktzustand 120 und/oder Aktualisierungsbereiche 128 – 132,
um den Prozess 122 in dem Prozessor 106 zu sichern.
-
Bei
einigen Ausführungsbeispielen
kann der Sicherungsprozess 122 mit Informationen im Hinblick auf
den Ort des Prüfpunktzustands 120 und/oder
Aktualisierungsbereiche 128 – 132 konfiguriert
sein. Bei anderen Ausführungsbeispielen
kann der Sicherungsprozess 122 eine Nachricht ausgeben,
die den Ort des Prüfpunktzustands 120 und
der Aktualisierungsbereiche 128 – 132 von dem PMM 140,
der NPMU 102 und/oder einem Primärprozess 116 bei Laufzeit
anfordert. Der PMM 140, die NPMU 102 und/oder
der Primärprozess 116 geben
dann eine Antwortmeldung mit dem angeforderten Ort des Prüfpunktzustands 120 und
den Aktualisierungsbereichen 128 – 132 in der NPMU 102 aus.
Bei einigen Ausführungsbeispielen
zeichnet der PMM 120 Informationen im Hinblick auf die
Start- und Endadresse der letzten Aktualisierung des Prüfpunktzustands 120 auf,
egal ob die letzte Information in dem Prüfpunktzustand 120 oder
den Aktualisierungsbereichen 128 – 132 liegt. Die Start-
und Endadresse des aktuellsten Prüfpunktzustands 120 und
der aktuellsten Aktualisierungsbereiche 128 – 132 kann
dann nach Anfrage zu dem Sicherungsprozess 122 geliefert
werden. Eine Erlaubnis zum Zugreifen auf Speicherressourcen in der
NPMU 102 kann dann in der Übersetzungs- und Schutztabelle
(TPT; TPT = Translation and Protection Table) 142 beibehalten
werden, die in der NPMU 102 gezeigt ist. Der PMM 140 kann Einträge in der
TPT 142 erzeugen, mit geeigneten Genehmigungen zu der Zeit
des Erzeugens oder Öffnens
von Dauerspeicherregionen. Zum Beispiel fordert ein Primärprozess 116 an,
dass der PMM 140 eine Region mit Genehmigung zum Schreiben
erzeugt. Nachfolgend öffnet
der Sicherungsprozess 122 diese Region mit Genehmigung
zum Lesen.
-
Der
Primärprozess 116 und
der Sicherungsprozess 122 können mit dem PMM 140 kommunizieren
und auf die NPMU 102 durch ihre jeweiligen NIs zugreifen.
Entsprechende Betriebssysteme (OS; OS = operating system) 144, 146 in
den Prozessoren 104, 106 verwalten nicht nur den
Zugriff auf die NIs 108, 110, sondern behalten
ferner Kontextinformationen über
die Verbindungen bei, die durch diese NI 108, 110 erzeugt
werden. Informationen im Hinblick auf Zugriffsrecht und Verbindungskontexte
können durch
entsprechende Prozessoren 104, 106 gespeichert
werden.
-
Der
Primärprozess 116 und
der Sicherungsprozess 122 müssen eine Genehmigung von ihren entsprechenden
Betriebssystemen 144, 146 erhalten, um Anforderungen
zu dem PMM 140 zu senden, um eine Region in der NPMU 102 zu öffnen oder
zu erzeugen. Der PMM 140 richtet entsprechende Einträge in der
TPT 142 ein und sendet die gewährten Zugriffsrechte zu dem
Anforderer zurück.
-
Erst
nachdem die Zugriffsrechte erhalten wurden, ermöglichen es die jeweiligen Betriebssysteme 144, 146 dem
Primärprozess 116 oder
dem Sicherungsprozess 122, die physischen Speicherinhalte
aus der NPMU 102 in ihren offenen Regionen zu lesen oder
zu schreiben. Die Zugriffsrechte werden durch die NI 114 verstärkt, die
ihren Zustand aus Einträgen
in die TPT 142 konfiguriert, die durch den PMM 140 an
der NPMU 102 beibehalten wird.
-
Bei
einigen Ausführungsbeispielen,
wenn der Primärprozess 116 oder
der Sicherungsprozess 122 auswählt, eine Verbin dung mit der
NPMU 102 einzurichten, und dann Lese- oder Schreibanforderungen über diese
Verbindung sendet, können
die Zugriffsrechte an die Verbindung „gebunden" werden und müssen nicht mit jeder Anforderung
wiederholt werden. Wenn der Primärprozess 116 und
der Sicherungsprozess 122 auswählen, Anforderungen zu der NPMU 102 zu
senden, ohne zuerst eine Verbindung einzurichten, dann kann jede
Anforderung die Authentifizierungsinformationen umfassen, die in
den Zugriffsrechten enthalten sind.
-
Die
NPMU 102 kann den PMM 140 direkt authentifizieren.
Eine Vielzahl von Implementierungsschemata kann verwendet werden.
Bei einigen Ausführungsbeispielen
nimmt der PMM 140 das Eigentum bestimmter NPMUs 102 an
sich, wenn eine bestimmte NPMU 102 zuerst mit dem SAN 112 verbunden
wird. In einer solchen Situation initiiert der PMM 140 die
TPT 142 an der NPMU 102, um sich selbst Schreiberlaubnis
in die TPT 142 zu gewähren.
Andere Ausführungsbeispiele
können
eine passwortbasierte Authentifizierung verwenden, bei der die NPMU 102 Anforderungen
von dem PMM 140 unter Verwendung eines vorkonfigurierten
Passworts validiert, das nur den PMMs 140 bekannt ist.
Eine Vielzahl von anderen Schemata ist möglich, einschließlich einer
Zertifikat-basierten Authentifizierung, die erfordert, dass das
SAN 112 einen Authentifizierungsdienst einer dritten Partei
unterstützt,
um die kommunizierenden Entitäten
gegenüber
einander zu authentifizieren.
-
Die
weitere Funktionalität
des vorliegenden Lösungsansatzes,
wie gezeigt ist, z. B. in 1A, ist nun
verständlich.
Zum Beispiel, sobald der Prozessorknoten 104 mit dem PMM 140 kommuniziert
hat, um eine Speicherregion zu öffnen,
kann der Prozessorknoten 104 dann direkt auf den Speicher
der NPMU 102 zugreifen, ohne durch den PMM 140 zu gehen.
Zum Beispiel liefert ein entfernter Lesebefehl eine virtuelle Startnetzwerkadresse
und einen Versatz sowie einen Kontextidentifizierer (in dem Fall von
mehreren Adressräumen).
Für eine
ordnungsgemäße Operation
sollte dieser Adressbereich innerhalb des Bereichs liegen, der durch
den PMM 140 zugeordnet ist. Der Prozessorknoten 104 liefert
der NI 108 einen entfernten Lesebefehl, der einen Zeiger
zu einer lokalen physischen Speicherposition an dem Knoten 104 enthält. Die
NI 108 in dem anfordernden Prozessorknoten 104 überträgt dann
den entfernten Lesebefehl zu der NI 114 der NPMU 102 über das SAN 112.
Die NI 114 übersetzt
die virtuelle Startnetzwerkadresse in eine physische Adresse innerhalb der
NPMU 102 unter Verwendung der Übersetzungstabellen, die der
Region zugeordnet sind. Mit Hilfe der NI 114 sendet die
NPMU 102 dann Daten zu dem Leseprozessorknoten zurück, beginnend
an der übersetzten
physischen Adresse. Die NI 114 fährt dann mit dem Übersetzen
von Adressen fort, sogar wenn die NPMU 102 Seitengrenzen
erreicht, da die physischen Seiten der zusammenhängenden virtuellen PM-Adressen nicht notwendigerweise
in zusammenhängende
physische PM-Adressen übersetzt werden.
Wenn der Lesebefehl abgeschlossen ist, markiert die NI 108 die
Leseübertragung
als abgeschlossen. Außerdem
kann ein wartender Prozess benachrichtigt und seinerseits verarbeitet
werden.
-
Ein
entferntes Schreiben in einen Dauerspeicher ist ähnlich. Der Prozessorknoten 104 liefert
eine virtuelle PM-Netzwerk-Startadresse
und einen Versatz sowie einen Kontextidentifizierer (in dem Fall von
mehreren Adressräumen)
für die
NPMU 102. Wie vorher muss der virtuelle PM-Netzwerkadressbereich
in den zugeordneten Bereich fallen. Der Prozessorknoten 104 liefert
ferner einen Zeiger zu der physischen Adresse der Daten, die übertragen
werden sollen. Die NI 108 in dem Prozessorknoten 104 gibt
dann einen entfernten Schreibbefehl an die NI 114 in der
NPMU 102 aus und beginnt mit dem Senden der Daten. Die
NI 114 übersetzt
die Startadresse in eine physische Adresse in der NPMU 102 unter Verwendung
von Übersetzungstabellen,
die der Region zugeordnet sind. Ferner speichert die NPMU 102 Daten
beginnend an der übersetzten
physischen Adresse. Die NI 114 fährt mit dem Übersetzen
von Adressen fort, sogar wenn die NPMU 102 Seitengrenzen
erreicht, da die physischen Seiten der zusammenhängenden virtuellen PM-Netzwerkadresse nicht
notwendigerweise in zusammenhängende
physische PM-Adressen übersetzt
werden. Wenn der Schreibbefehl abgeschlossen ist, markiert die NI 108 die
Schreibübertragung
als abgeschlossen. Jegliche wartenden Prozesse können dann benachrichtigt und
ihrerseits verarbeitet werden.
-
Es
sollte darauf hingewiesen werden, dass bei dem Latenzzeittesten
eines Ausführungsbeispiels
der NPMU 102 gemäß den vorliegenden
Lehren ein Speicherzugriff weit innerhalb 80 Mikrosekunden erreicht
werden könnte.
Das Verhalten der NPMU 102 kann vorteilhaft mit alternativen
I/O-Operationen verglichen werden, die über 800 Mikrosekunden erfordern.
Tatsächlich
ist dieses Ergebnis möglich,
da die Latenzzeiten der I/O-Operationen, einschließlich ihrer
notwendigen Unterbrechungen, vermieden werden. Die NPMU gemäß den vorliegenden
Lehren weist somit die Dauerhaftigkeit einer Speicherung mit dem
feinkörnigen
Zugriff des Systemspeichers auf.
-
Bei
einigen Ausführungsbeispielen
können die
Prozessoreinheiten 104, 106, die NPMU 102 und der
PMM 140 auf einem Computersystem 500, wie z. B.
in 5 gezeigt ist, implementiert sein. Das Computersystem 500 ist üblicherweise
mit einem Datenbus 502 konfiguriert, der verschiedene Komponenten kommunikativ
koppelt. Wie in 5 gezeigt ist, ist eine zentrale
Verarbeitungseinheit (CPU) 504 mit einem Bus 502 zum Verarbeiten
von Informationen und Anweisungen gekoppelt, wie z. B. dem Betriebssystem 506 und
einem oder mehreren Anwendungsprogrammen 508. Zum Beispiel
kann das Betriebssystem 506 Betriebssysteme 144 oder 146 (1A) darstellen,
und die Anwendungsprogramme 508 können den Primärprozess 116 oder
den Sicherungsprozess 122 (1A) umfassen.
-
Ein
computerlesbarer, flüchtiger
Speicher, wie z. B. ein Direktzugriffsspeicher (RAM; RAM = random
access memory) 509, kann ebenfalls mit dem Bus 502 gekoppelt
sein, um Informationen und Anweisungen zu laden, die durch die CPU 504 ausgeführt werden
sollen. Ferner kann ein computerlesbarer Nur-Lese-Speicher (ROM;
ROM = read-only memory) 510 ebenfalls mit dem Bus 502 gekoppelt
sein, um statische Informationen und Anweisungen zu speichern, auf
die durch die CPU 504 zugegriffen werden kann. Eine Datenspeicherungsvorrichtung 512,
wie z. B. ein magnetisches oder optisches Plattenmedium, kann ebenfalls
mit dem Bus 502 gekoppelt sein, um große Mengen von Informationen
und Anweisungen zu speichern. Eine alphanumerische Eingabevorrichtung 514,
die alphanumerische und Funktions-Tasten umfasst, und eine Cursorsteuerungsvorrichtung 516,
wie z. B. eine Maus, können mit
dem Bus 502 gekoppelt sein, um es einem Benutzer zu ermöglichen,
Informationen und Befehle in die CPU 504 einzugeben.
-
Eines
oder mehrere Kommunikationstore 518 können in dem System 500 umfasst
sein, um eine Kommunikation mit verschiedenen Peripheriegeräten zu ermöglichen,
wie z. B. Druckern; externen Netzwerken, wie z. B. dem SAM 122;
und anderen Verarbeitungssystemen, wie z. B. Prozessorknoten 104, 106 (1A).
Das Kommunikationstor 518 kann ferner mit der Netzwerkschnittstelle
(NI) 520 gekoppelt sein, um eine Kommunikation mit externen Netzwerken
zu ermöglichen.
Die NI 520 kann z. B. die NI 108, 114, 141 oder 110 in 1A darstellen.
-
Eine
Anzeige 522 kann mit dem Bus 502 gekoppelt sein,
um einem Benutzer des Systems 500 Informationen anzuzeigen.
Die Anzeige 522 kann eine Flüssigkristallvorrichtung, eine
Kathodenstrahlröhre
oder eine andere Anzeigevorrichtung sein, die geeignet ist zum Erzeugen
von graphischen Bildern und alphanumerischen Zeichen, die durch
den Benutzer erkannt werden können.
Die alphanumerische Eingabevorrichtung 514 und die Cursorsteuerungsvorrichtung 516 ermöglichen
es dem Computerbenutzer, dynamisch die zweidimensionale Bewegung eines
sichtbaren Symbols (Zeiger) auf der Anzeige 522 zu signalisieren.
-
Bei
einigen Ausführungsbeispielen
können Komponenten
in dem Computersystem 500 miteinander und mit anderen externen
Netzwerken über geeignete
Schnittstellenverknüpfungen
kommunizieren, wie z. B. über
eine oder eine Kombination aus T1, ISDN, Kabelleitung, eine drahtlose
Verbindung durch ein Zellular- oder Satellitennetzwerk, oder ein lokales
Datentransportsystem, wie z. B. das Ethernet oder einen Token-Ring über ein
lokales Netz. Ein geeignetes Kommunikationsprotokoll, wie z. B.
das Hypertext Transfer Protocol (HTTP) oder das Transfer Control
Protocol/Internet Protocol (TCP/IP), kann verwendet werden, um mit
anderen Komponenten in den externen Netzwerken zu kommunizieren.
Zusätzlich
dazu kann das Computersystem 500 in einer geeigneten Rechenvorrichtung
verkörpert
sein und kann so persönliche
Datenassistenten (PDAs), Telefone mit Anzeigebereichen, Netzwerkanwendungen, Desktops,
Laptops, X-Fenster-Anschlüsse,
oder andere solche Rechenvorrichtungen umfassen.
-
Logische
Anweisungen können
auf einem computerlesbaren Medium gespeichert sein oder in der Form
von elektronischen Signalen zugegriffen werden. Die Logikmodule,
Verarbeitungssysteme und Schaltungsanordnungen, die hierin beschrieben sind,
können
unter Verwendung einer geeigneten Kombination aus Hardware, Software
und/oder Firmware implementiert sein, wie z. B. feldprogrammierbaren
Gatterarrays (FPGA; FPGA = field programmable gate array), anwendungsspezifischen
integrierten Schaltungen (ASIC; ASIC = application specific integrated
circuit), oder anderen geeigneten Vorrichtungen. Die Logikmodule
können
unabhängig
implementiert sein oder in einer der anderen Systemkomponenten umfasst
sein. Auf ähnliche
Weise sind hierin andere Komponenten als separate und einzelne Komponenten
offenbart. Diese Komponenten können
jedoch kombiniert werden, um größere oder unterschiedliche
Softwaremodule, Logikmodule, integrierte Schaltungen oder elektrische
Anordnungen zu bilden, falls erwünscht.
-
Während die
vorliegende Offenbarung verschiedene Ausführungsbeispiele beschreibt,
werden diese Ausführungsbeispiele
als darstellend betrachtet und sollen den Schutzumfang der Ansprüche nicht einschränken. Viele
Variationen, Modifikationen, Hinzufügungen und Verbesserungen der
beschriebenen Ausführungsbeispiele
sind möglich.
Zum Beispiel können
Durchschnittsfachleute auf dem Gebiet ohne weiteres die Prozesse
implementieren, die notwendig sind, um die Strukturen und Verfahren
bereitzustellen, die hierin offenbart sind. Abweichungen und Modifikationen
der Ausführungsbeispiele,
die hierin offenbart sind, können
ebenfalls durchgeführt
werden, während
sie innerhalb des Schutzbereichs der nachfolgenden Ansprüche verbleiben.
Die Funktionalität
und die Kombinationen der Funktionalität der individuellen Module
kann eine beliebige geeignete Funktionalität sein. In den Ansprüchen, außer anderweitig
angezeigt, soll der Artikel „ein" sich auf „einen oder
mehrere als einen" beziehen.