DE10348326A1 - Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist - Google Patents

Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist Download PDF

Info

Publication number
DE10348326A1
DE10348326A1 DE10348326A DE10348326A DE10348326A1 DE 10348326 A1 DE10348326 A1 DE 10348326A1 DE 10348326 A DE10348326 A DE 10348326A DE 10348326 A DE10348326 A DE 10348326A DE 10348326 A1 DE10348326 A1 DE 10348326A1
Authority
DE
Germany
Prior art keywords
memory
permanent
network
virtual
communication link
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.)
Withdrawn
Application number
DE10348326A
Other languages
English (en)
Inventor
Pankaj San Jose Mehra
Sam Palo Alto Fineberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE10348326A1 publication Critical patent/DE10348326A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

Es wird ein System beschrieben, das eine Permanentspeichereinheit, die an ein Netz angeschlossen ist, umfaßt. Das System umfaßt einen Prozessorknoten zum Initiieren von Permanentspeicheroperationen (z. B. Lesen/Schreiben). Die Prozessoreinheit referenziert ihre Adreßoperationen relativ zu einem virtuellen Permanentspeicher-Adreßraum, der einem physikalischen Permanentspeicher-Adreßraum entspricht. Eine Netzschnittstelle wird verwendet, um mit der Permanentspeichereinheit zu kommunizieren, wobei die Permanentspeichereinheit ihre eigene Netzschnittstelle aufweist. Der Prozessorknoten und die Permanentspeichereinheit kommunizieren über eine Kommunikationsverbindung, wie z. B. ein Netz (z. B. SAN). Die Permanentspeichereinheit ist konfiguriert, um zwischen dem virtuellen Adreßraum des Permanentspeichers, der den Prozessorknoten bekannt ist, und einem physikalischen Permanentspeicher-Adreßraum, der nur der Permanentspeichereinheit bekannt ist, zu übersetzen. Bei anderen Ausführungsbeispielen sind mehrere Adreßräume vorgesehen, wobei die Permanentspeichereinheit eine Übersetzung von diesen Räumen in einen physikalischen Adreßraum des Permanentspeichers ermöglicht.

Description

  • Herkömmlicherweise sind bei Computern die Daten entweder in einem Speicher oder auf anderen I/O-Speichervorrichtungen (I/O = Input/Output = Eingabe/Ausgabe) gespeichert, wie z.B. einem Magnetband oder einer -platte. I/O-Speichervorrichtungen können an einem System durch einen I/O-Bus, wie z. B. eine PCI (PCI = Peripheral Component Interconnect = Peripheriegerätkomponentenverbindung) oder durch ein Netz, wie z. B. einen Faserkanal, Infiniband, ServerNet oder Ethernet, angeschlossen sein. I/O-Speichervorrichtungen sind typischerweise langsam, wobei sie Zugriffszeiten von mehr als einer Millisekunde aufweisen. Sie verwenden spezielle I/O-Protokolle, wie z. B. ein SCSI-Protokoll (SCSI = Small Computer Systems Interface = Kleincomputer-Systemschnittstelle) oder ein TCP/IP-Protokoll (TCP/IP = Transmission Control Protocol/Internet Protocol = Übertragungssteuerungsprotokoll/Internetprotokoll), und sie arbeiten typischerweise als Blockaustauschvorrichtungen (z. B. werden Daten in Datenblöcken einer feststehenden Größe geschrieben oder gelesen). Ein Merkmal dieser Typen von Speicherungs-I/O-Vorrichtungen ist, daß sie permanent (nicht-flüchtig) sind, so daß sie, wenn sie Leistung verlieren oder neu gestartet werden, die Informationen, die zuvor auf ihnen gespeichert wurden, einbehalten. Zusätzlich kann von mehreren Prozessoren durch gemeinsam verwendete I/O-Netze auf I/O-Speichervorrichtungen zugegriffen werden, selbst nachdem einige Prozessoren ausgefallen sind.
  • Allgemein ist ein Systemspeicher mit einem Prozessor durch einen Systembus verbunden, wobei ein solcher Speicher relativ schnell mit garantierten Zugriffszeiten ist, die in Zehntel von Nanosekunden gemessen werden. Außerdem kann auf einen Systemspeicher direkt mit einer Byte-Ebene- Granularität zugegriffen werden. Der Systemspeicher ist jedoch normalerweise flüchtig, so daß sein Inhalt verloren geht, wenn eine Leistung verloren geht oder wenn ein System, das einen solchen Speicher verkörpert, neu gestartet wird. Auch befindet sich ein Systemspeicher üblicherweise in demselben Fehlerbereich wie ein Prozessor, so daß, wenn ein Prozessor ausfällt, der angeschlossene Speicher ebenfalls ausfällt und auf ihn nicht mehr zugegriffen werden kann.
  • Bei bekannten Systemen sind BBDRAMs (BBDRAM = Battery-Backed Dynamic Random Access Memory = batteriegesicherter dynamischer Direktzugriffsspeicher), Halbleiterplatten und an ein Netz angeschlossene flüchtige Speicher verwendet worden. Der bekannte BBDRAM kann beispielsweise gegenüber echten Permanentspeichern einige Verhaltensvorteile aufweisen. Ruf ihn kann jedoch nicht global zugegriffen werden. Außerdem befindet sich der BBDRAM innerhalb desselben Fehlerbereichs wie eine angeschlossene CPU, so daß der BBDRAM im Falle eines CPU-Ausfalls oder eines Betriebssystemszusammenbruchs nicht mehr zugreifbar ist. Dementsprechend wird ein BBDRAM häufig in Situationen verwendet, wo der gesamte Systemspeicher permanent ist, so daß das System nach einem Leistungsausfall oder einem Rebooten schnell wiedergestartet werden kann. Der BBDRAM ist während längerer Leistungsausfälle immer noch flüchtig, so daß alternative Einrichtungen vorgesehen sein müssen, um seinen Inhalt vor einem Entleeren der Batterien zu speichern. Zusätzlich ist nicht bekannt, daß ein RDMA-Anschluß an den BBDRAM existiert. Von Bedeutung ist, daß diese Verwendung des BBDRAM sehr eingeschränkt ist und z. B. zur Verwendung bei an ein Netz angeschlossenen Permanentspeicheranwendungen nicht geeignet ist.
  • BBSSDs (Battery-Backed Solid-State Disks = batteriegesicherte Halbleiterplatten) sind auch für andere Implementierungen vorgeschlagen worden. Diese BBSSDs liefern einen Permanentspeicher, funktionsmäßig emulieren sie jedoch ein Plattenlaufwerk. Ein wichtiger Nachteil dieses Lösungsansatzes ist die zusätzliche Latenz, die dem Zugriff auf diese Vorrichtungen durch I/O-Adapter zugeordnet ist. Diese Latenz ist in den blockorientierten und dateiorientierten Speichermodellen inhärent, die durch Platten und wiederum durch BBSSDs verwendet werden. Sie laufen durch einen suboptimalen Datenweg, bei dem das Betriebssystem nicht umgangen wird. Obgleich es möglich ist, Halbleiterplatten zu modifizieren, um einen Teil der Nachteile zu beseitigen, kann die inhärente Latenz nicht beseitigt werden, weil das Verhalten durch die I/O-Protokolle und ihre zugeordneten Vorrichtungstreiber begrenzt ist. Wie bei dem BBDRAM sind zusätzliche Technologien zur Handhabung eines Leistungsverlustes über längere Zeiträume erforderlich.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Vorrichtung mit einem und ein Verfahren für einen Permanentspeicher, der an eine Kommunikationsverbindung angeschlossen ist, zu schaffen.
  • Diese Aufgabe wird durch ein System gemäß den Ansprüchen 1, 7, 13 sowie ein Verfahren gemäß Anspruch 20 und ein computerlesbares Medium gemäß Anspruch 31 gelöst.
  • Die vorliegende Offenbarung beschreibt eine Permanentspeichervorrichtung, die die Dauerfestigkeit und Wiederherstellbarkeit einer Speicher-I/O mit der Geschwindigkeit und dem feinkörnigen Zugriff auf den Systemspeicher kombiniert. Wie der Speicher kann ihr Inhalt den Leistungsausfall oder den Systemneustart überleben. Wie beim Fernspeicher wird auf dieselbe über ein SAN (SAN = (SAN = System Area Network = Systembereichsnetz) zugegriffen. Im Gegensatz zu einem direkt verbundenen Speicher kann auf die Vorrichtung weiterhin zugegriffen werden, selbst nachdem ein Prozessor, der auf dieselbe zugreift, gescheitert ist.
  • Ein RDMA (RDMA = Remote Direct Memory Access = Ferndirektspeicherzugriff) ist eine wichtige Fähigkeit, die SANs von anderen Kategorien von Netzen unterscheidet; sie unterstützt eine Kontinuierliche-Verwendungs-Speichersemantik selbst wenn der Speicher entfernt positioniert ist (nicht direkt mit dem Prozessor verbunden ist). Die SANs sind daher ebenfalls als RDMA-fähige Netze bekannt. Sie ermöglichen charakteristischerweise schnelle Null-Kopie-Speicheroperationen bei einer Bytegranularität.
  • An ein Netz angeschlossene Permanentspeichervorrichtungen verwenden typischerweise plattenähnliche Persistenzcharakteristika, wo der Inhalt des Speichers nicht nur Leistungsausfälle, sondern auch Betriebssystemzusammenbrüche, andere Softwareausfälle, Hardware- oder Softwareaufrüstungen und Systemwartungsreboots überleben muß. Die vorliegenden Lehren sind in ihrer Verwendung eines permanenten (oder nichtflüchtigen) Speichers einmalig, wobei der Speicher im Vergleich zum flüchtigen Speicher sehr unterschiedliche Sätze von Entwurfs- und Implementierungseinschränkungen vorschreibt. Die Verwaltung von Metadaten (d. h. Daten über den Zustand des Speichers) sowie die Verwaltung von Informationen zum Übersetzen von virtuellen in physikalische Adressen ist in den beiden Fällen beispielsweise sehr unterschiedlich. Außerdem sind die vorliegenden Lehren bei ihrem Anschließen eines Permanentspeichers an ein RDMA-fähiges Netz unter Verwendung von RDMA-Lese- und Schreiboperationen einmalig.
  • Bei einer Implementierung umfaßt ein System eine an ein Netz angeschlossene Permanentspeichereinheit. Das System umfaßt einen Prozessorknoten zum Initiieren von Speicheroperationen, wie z. B. Lese- und Schreiboperationen. Die Prozessoreinheit referenziert ihre Adreßoperationen relativ zu einem virtuellen Adreßraum, der einem Permanentspeicheradreßraum entspricht. Der Prozessorknoten umfaßt ferner eine Netzschnittstelle, die zum Kommunizieren an die Permanentspeichereinheit verwendet wird, wobei die Permanentspeichereinheit ihre eigene Netzschnittstelle aufweist. Dementsprechend kommunizieren der Speicherknoten und die Permanentspeichereinheit über eine Kommunikationsverbindung, wie z. B. ein Netz, und vorzugsweise ein Systembereichsnetz. Die Permanentspeichereinheit ist ferner konfiguriert, um zwischen dem virtuellen Adreßraum, der den Speicherknoten bekannt ist, und einem physikalischen Adreßraum, der nur der Permanentspeichereinheit bekannt ist, zu übersetzen. Bei anderen Ausführungsbeispielen sind mehrere Adreßräume vorgesehen, wobei die Permanentspeichereinheit ebenfalls eine Übersetzung von diesen mehrfachen Adreßräumen in physikalische Adreßräume ermöglicht.
  • Bei anderen Ausführungsbeispielen geschieht die Übersetzung von virtuellen Adressen des Permanentspeichers in physikalische Adressen des Permanentspeichers innerhalb der jeweiligen Prozessorknoten. Bei noch weiteren Ausführungsbeispielen geschieht die Übersetzung innerhalb entweder der Verknüpfungen, den Ports, den Schaltern, den Routern, den Brücken, der Firmware, der Software oder den Diensten, die dem SAN zugeordnet sind. Bei den vorliegenden Lehren ist lediglich davon auszugehen, daß die Abbildungsinformationen, die für eine solche Übersetzung erforderlich sind, mit den Daten, die im Permanentspeicher gespeichert sind, konsistent zu halten sind, daß eine Entität die Adreßübersetzung unter Verwendung der gespeicherten Abbildungsinformationen effizient ausführen kann und daß die Entität und die erforderlichen Abbildungsinformationen zu einem beliebigen Zeitpunkt verfügbar sind, wenn die Informationen vom Permanentspeicher wiedergewonnen werden müssen.
  • Bei noch weiteren Ausführungsbeispielen werden andere Typen von Netzen verwendet, wie z. B. ServerNet, GigaNet, Infiniband, PCI-Express, RDMA-fähiges Ethernet und VIA-Netze (VIA = Virtual Interface Architecture = virtuelle Schnittstellenarchitektur). Außerdem werden verschiedene Typen eines Permanentspeichers verwendet, wie z. B. ein MRAM (MRAM = Magnetic Random Access Memory = magnetischer Direktzugriffsspeicher), ein MRRAM (MRRAM = Magnetio-Resistive Random Access Memory = magneto-resistiver Direktzugriffs speicher), ein PFRAM (PFRAM = Polymer Ferroelectric Random Access Memory = Polymer-ferroelektrischer Direktzugriffsspeicher), ein OUM (OUM = Ovonics Unified Memory = Einheits-Ovonic-Speicher) und ein Flash-Speicher.
  • Nachdem sie die vorliegende Offenbarung begriffen haben, sind diese und weitere Ausführungsbeispiele für Fachleute auf dem Gebiet, auf das sich die Erfindung bezieht, verständlich.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachstehend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm eines Systems, das eine nPMU (nPMU = Network Attached Permanent Memory Unit = Speichereinheit, die an ein Netz angeschlossen ist) umfaßt,
  • 2 ein Blockdiagramm eines weiteren Ausführungsbeispiels einer nPMU,
  • 3 ein Blockdiagramm eines Ausführungsbeispiels einer nPMU unter Verwendung einer Batteriesicherung,
  • 4 ein Blockdiagramm, das Abbildungen von einem virtuellen Permanentspeicher-Adreßraum auf einen physikalischen Permanentspeicher-Adreßraum darstellt,
  • 5 ein Blockdiagramm eines Ausführungsbeispiels einer nPMU mit einem virtuellen Permanentspeicher-Adreßraum,
  • 6 ein Blockdiagramm eines Ausführungsbeispiels einer nPMU mit mehreren virtuellen Adreßräumen eines Permanentspeichers,
  • 7 ein Blockdiagramm eines veranschaulichenden Computersystems, auf dem eine nPMU implementiert ist,
  • Obgleich bei bekannten Systemen ein permanenter Speicher nur im Kontext von blockorientierten und dateiorientierten I/O-Architekturen mit relativ großen Latenzen verwendet worden ist, beschreiben die vorliegenden Lehren einen Speicher, der wie die herkömmlichen I/O-Speichervorrichtungen permanent ist, auf den aber wie auf den Systemspeicher mit einer feinen Granularität und geringen Latenz zugegriffen werden kann. Wie in 1 gezeigt ist, weist ein System 100 unter Verwendung eines Permanentspeichers, der an ein Netz angeschlossen ist, eine nPMU 110 auf, auf die durch einen oder mehrere Prozessorknoten 102 durch ein RDMA-fähiges SAN 106 zugegriffen werden kann. Um auf den Permanentspeicher der nPMU 110 zuzugreifen, initiiert eine Software, die auf dem Prozessorknoten 102 arbeitet, Fern-Leseoperationen oder -Schreiboperationen durch die NI (NI = Network Interface = Netzschnittstelle) 104 des Prozessorknotens. Auf diese Weise werden Lese- oder Schreibbefehle auf einem RDMA-fähigen SAN 106 an die NI der nPMU 108 übertragen. Dementsprechend werden die entsprechenden Daten nach einer Verarbeitung über das RDMA-fähige SAN 106 kommuniziert. Neben den RDMA-Datenbewegungsoperationen kann die nPMU 110 konfiguriert sein, um auf verschiedene Verwaltungsbefehle, die nachstehend beschrieben werden, anzusprechen. In einer Schreiboperation, die durch den Prozessorknoten 102 initiiert wird, sobald Daten in der nPMU erfolgreich gespeichert worden sind, sind dieselben langlebig und überleben einen Leistungsausfall oder einen Ausfall des Prozessorknotens 102. Speziell werden Speicherinhalte beibehalten, solange die nPMU weiterhin korrekt funktioniert, selbst nachdem die Leistung über einen längeren Zeitraum getrennt worden ist oder das Betriebssystem auf dem Prozessorknoten 102 erneut gebootet worden ist.
  • Bei diesem Ausführungsbeispiel ist der Prozessorknoten 102 ein Computersystem, das zumindest eine CPU und einen Speicher aufweist, wobei die CPU konfiguriert ist, um ein Betriebssystem zu betreiben. Der Prozessorknoten 102 ist zusätzlich konfiguriert, um Anwendungssoftware, wie z.B. Datenbankprogramme, zu betreiben. Der Prozessorknoten 102 verwendet die SAN 106, um mit anderen Prozessorknoten 102 sowie Vorrichtungen, wie z. B. der nPMU 110 und den I/O-Steuerungen (nicht gezeigt), zu kommunizieren.
  • Bei einer Implementierung des Ausführungsbeispiels ist das RDMA-fähige SAN ein Netz, das Speicheroperationen auf Byteebene, wie z. B. Kopieroperationen, zwischen zwei Prozessorknoten oder zwischen einem Prozessorknoten und einer Vorrichtung ausführen kann, ohne die CPU über den Prozessorknoten 102 zu benachrichtigen. In diesem Fall ist das SAN 106 konfiguriert, um eine Virtuelle-zu-Physikalische Adreßübersetzung auszuführen, um die Abbildung von zusammenhängenden virtuellen Adreßräumen eines Netzes auf nichtzusammenhängende physikalische Adreßräume zu ermöglichen. Dieser Typ einer Adreßübersetzung ermöglicht eine dynamische Verwaltung der nMPU 110. Im Handel erhältliche SANs 106 mit einer RDMA-Fähigkeit umfassen ServerNet, GigaNet, Infiniband und alle VIA-fähigen SANs, sind jedoch nicht auf dieselben beschränkt.
  • Die Prozessorknoten 102 sind allgemein an ein SAN 106 durch die NI 110 angeschlossen, jedoch sind viele Variationen möglich. Allgemeiner muß ein Prozessorknoten jedoch nur mit einer Vorrichtung zum Kommunizieren von Lese- und Schreib- oder Lade- und Speicher-) Operationen verbunden sein. Bei einer weiteren Implementierung dieses Ausführungsbeispiels sind die Prozessorknoten 102 z. B. verschiedene CPUs auf einer Hauptplatine, und, anstelle ein SAN zu verwenden, wird ein Datenbus verwendet, z. B. ein PCI-Bus. Es wird darauf hingewiesen, daß die vorliegenden Lehren nach oben oder nach unten skaliert werden können, um nach Bedarf größere oder kleinerer Implementierungen zu realisieren.
  • Die NI 108 ist mit der nPMU 110 kommunikativ gekoppelt, um einen Zugriff auf den Permanentspeicher, der mit der nMPU 110 enthalten ist, zu ermöglichen. Für die verschiedenen Komponenten von 1 sind viele Technologien verfügbar, einschließlich des Typs des Permanentspeichers. Dementsprechend ist das Ausführungsbeispiel von 1 nicht auf eine spezifische Technologie zum Realisieren des Permanentspeichers begrenzt. Tatsächlich sind viele Speichertechnologien einschließlich eines MRAM, eines MRRAM, eines PFRAM, eines OUM, eines BBDRAM und Flash-Speicher aller Arten angemessen. Obgleich die BBSSDs Übertragungen auf Blockebene ausführen, berücksichtigt dieser Lösungsansatz eine feinere Granularität eines Speicherzugriffs einschließlich eines Speicherzugriffs auf Byteebene. Bemerkenswerterweise kann eine Speicherzugriffsgranularität unter Verwendung dieses Lösungsansatzes feiner oder gröber gestaltet sein. Wenn das SAN 106 verwendet wird, sollte der Speicher für den RDMA-Zugriff schnell genug sein. In dieser Weise werden RDMA-Lese- und Schreiboperationen über das SAN 106 ermöglicht. Wo ein anderer Typ einer Kommunikationsvorrichtung verwendet wird, sollte die verwendete Zugriffsgeschwindigkeit des Speichers ebenfalls schnell genug sein, um die Kommunikationsvorrichtung zu realisieren. Es wird darauf hingewiesen, daß einschlägige Informationen in dem Ausmaß geliefert werden, in dem der Permanentspeicher, der verwendet wird, die Daten halten kann. Bei vielen Anwendungen muß der Permanentspeicher beispielsweise Daten ungeachtet des Zeitumfangs, während dem die Leistung verloren geht, speichern können, wohingegen bei einer anderen Anwendung der Permanentspeicher nur für wenige Minuten oder Stunden erforderlich sein kann.
  • In Verbindung mit diesem Lösungsansatz wird eine Speicherverwaltungsfunktionalität zum Erzeugen von einzelnen oder von mehreren unabhängigen indirekt adressierten Speicherbereichen berücksichtigt. Außerdem werden nPMU-Metadaten für eine Speicherwiedergewinnung nach einem Ausfall einer Leistung oder eines Prozessorausfalls berücksichtigt. Metainformationen umfassen beispielsweise den Inhalt und das Layout der geschützten Speicherbereiche in einer nPMU. Auf diese Weise speichert die nPMU die Daten und die Art und Weise der Verwendung der Daten. Nach Bedarf kann die nPMU dann eine Wiedergewinnung von einer Leistung oder eines Systemausfalls berücksichtigen.
  • In 2 ist ein Ausführungsbeispiel einer nPMU 200 gezeigt, die einen nichtflüchtigen Speicher 202 verwendet, der mit einer NI 204 über Kommunikationsverbindungen, wie z. B. einen Bus, kommunikativ gekoppelt ist. Hier kann der nichtflüchtige Speicher 202 beispielsweise ein MRAM oder ein Flash-Speicher sein. Die NI 204 initiiert nicht ihre eigenen RDMA-Anforderungen, sondern statt dessen empfängt die NI 204 Verwaltungsbefehle vom Netz und führt die angeforderten Verwaltungsoperationen aus. Speziell übersetzt die nPMU 200 die Adresse und die eingehenden Anforderungen und führt dann die angeforderte Operation aus. Weitere Einzelheiten bezüglich der Befehlsverarbeitung werden nachstehend erörtert.
  • In 3 ist ein weiteres Ausführungsbeispiel einer nPMU 300 unter Verwendung einer Kombination aus einem flüchtigen Speicher 302 mit einer Batterie 304 und einem nichtflüchtigen sekundären Speicher 310 gezeigt. Bei diesem Ausführungsbeispiel werden die Daten bei einem Leistungsausfall im flüchtigen Speicher 302 unter Verwendung der Leistung der Batterie 304 bewahrt, bis diese Daten im nichtflüchtigen sekundären Speicher 310 gesichert werden können. Der nichtflüchtige sekundäre Speicher kann beispielsweise eine Magnetplatte oder ein langsamer Flash-Speicher sein. Damit die nPMU 300 ordnungsgemäß arbeiten kann, sollte die Übertragung von Daten vom flüchtigen Speicher 302 zum nichtflüchtigen sekundären Speicher 310 ohne eine externe Intervention oder eine beliebige andere Leistung mit Ausnahme der Leistung der Batterie 304 geschehen. Dementsprechend sollten beliebige angeforderte Aufgaben ausgeführt werden, bevor sich die Batterie 304 entladen kann. Wie gezeigt, umfaßt die nPMU 300 eine optionale CPU 306, die auf einem eingebetteten Betriebssystem betrieben wird. Dementsprechend kann die Sicherungsaufgabe (d. h. die Datenübertragung vom flüchtigen Speicher 302 zum nichtflüchtigen sekundären Speicher 310) durch eine Software ausgeführt werden, die auf der CPU 306 betrieben wird. Eine NI 308 ist ebenfalls umfaßt, um RDMA-Anforderungen unter der Steuerung der Software, die auf der CPU 306 betrieben wird, zu initiieren. Hier empfängt die CPU 306 wiederum Verwaltungsbefehle vom Netz und führt die angeforderte Verwaltungsoperation aus.
  • Eine nPMU, wie z. B. eine nPMU 200 oder 300, muß eine verwaltete Entität sein, um die Zuweisung und gemeinsame Verwendung von Ressourcen zu vereinfachen. Bei diesem Ausführungsbeispiel wird die nPMU-Verwaltung durch einen PMM (PMM = Permanent Memory Manager = permanenter Speicherverwalter) ausgeführt. Der PMM kann in der nPMU oder außerhalb der nPMU, wie z. B. auf einem der zuvor beschriebenen Prozessorknoten, positioniert sein. Wenn ein Prozessorknoten den Permanentspeicher der nPMU zuweisen oder die Zuweisung aufheben muß, oder wenn er einen existierenden Bereich des Permanentspeichers verwenden muß, kommuniziert der Prozessorknoten zuerst mit dem PMM, um die angeforderten Verwaltungsaufgaben auszuführen. Es ist zu beachten, daß, weil eine nPMU (wie eine Platte) langlebig ist und weil die nPMU einen selbstbeschreibenden Körper von permanenten Daten beibehält, die Metadaten, die sich auf existierende Permanentspeicherbereiche beziehen, auf der nPMU-Vorrichtung an sich gespeichert werden müssen. Der PMM muß daher Verwaltungsaufgaben in einer Weise ausführen, in der die Metadaten auf der nPMU stets mit den permanenten Daten, die auf der nPMU gespeichert sind, konsistent gehalten werden, so daß die gespeicherten Daten der nPMU stets unter Verwendung der gespeicherten Metadaten der nPMU interpretiert werden können und daher nach einem möglichen Abschalten oder Ausfall des Systems wiedergewonnen werden können.
  • In dieser Weise behält eine nPMU nicht nur die Daten in einer permanenten Weise bei, die manipuliert werden, sondern auch den Zustand der Verarbeitung solcher Daten. Bei einer Notwendigkeit für eine Wiedergewinnung ist das System 100 unter Verwendung der nPMU 110 somit in der Lage, wiederhergestellt zu werden und den Betrieb ab dem Speicherzustand, in dem der Leistungsausfall oder der Betriebssystemzusammenbruch eintraten, fortzusetzen.
  • Wie unter Bezugnahme auf 1 beschrieben, liefert das SAN 106 eine Grundspeicherverwaltung und eine virtuelle Speicherunterstützung. Bei einer solchen Implementierung muß der PMM in der Lage sein, die Logik in der NI 108 der nPMU 110 zu programmieren, um entfernte Lese- und Schreiboperationen zu ermöglichen, während gleichzeitig der Permanentspeicher vor unautorisierten oder unbeabsichtigten Zugriffen durch alle mit Ausnahme eines ausgewählten Satzes von Entitäten auf dem SAN 106 geschützt wird. Wie in 4 gezeigt ist, kann eine nPMU außerdem eine Virtuelle-zu-Physikalische-Adreßübersetzung unterstützen. Ein kontinuierlicher virtueller Adreßraum, wie z. B. virtuelle Adressen 402 bis 416 eines Permanentspeichers, können auf physikalische Adressen 418 bis 448 eines diskontinuierlichen Permanentspeichers abgebildet oder übersetzt werden. Die virtuellen PM-Adressen werden relativ zu einer Basisadresse durch N Inkrementaladressen referenziert. Solche virtuellen PM-Adressen entsprechen jedoch den nichtzusammenhängenden physikalischen PM-Adressen. Wie gezeigt, kann die virtuelle PM-Adresse 402 tatsächlich einer physikalischen PM-Adresse 436 entsprechen. Dementsprechend muß die nPMU in der Lage sein, die entsprechende Übersetzung von dem virtuellen PM-Adreßraum in den physikalischen PM-Adreßraum und umgekehrt zu ermöglichen. In dieser Weise ermöglicht der Übersetzungsmechanismus der nPMU, den Prozessorknoten zusammenhängende virtuelle Adreßbereiche vorzulegen, während immer noch eine dynamische Verwaltung des physikalischen Speichers der nPMU ermöglicht wird. Dies ist insbesondere aufgrund der permanenten Beschaffenheit der Daten auf einer nPMU von Bedeutung. Aufgrund von Konfigurationsveränderungen können sich die Anzahl von Prozessen, die auf eine spezielle nPMU zugreifen, oder möglicherweise die Größen ihrer jeweiligen Zuordnungen im Laufe der Zeit verändern. Der Adreßübersetzungsmechanismus ermöglicht der nPMU ohne weiteres, solche Veränderungen ohne Datenverlust zu realisieren. Der Adreßübersetzungsmechanismus ermöglicht ferner eine einfache und effiziente Verwendung einer Permanentspeicherkapazität, indem weder die Prozessorknoten dazu getrieben werden, zukünftige Speicheranforderungen vor einer Zuteilung vorherzusehen noch die Prozessorknoten dazu gezwungen werden, eine Permanentspeicherkapazität durch eine pessimistische Zuweisung zu verschwenden.
  • Unter erneuter Bezugnahme auf 1 ist das ServerNet-SAN, das in einem nativen AVT/BTE-Modus (AVT/BTE = access validation and translation/block transfer engine = Zugriffsvalidierungs- und Übersetzungs-/Blockübertragungsmaschine) arbeitet, ein Beispiel eines Einzeladreßraum-SAN 106. Jedes Ziel auf einem solchen SAN präsentiert den gleichen virtuellen Flachnetzadreßraum, an alle seine RDMA-Anforderungsinitiatoren, wie z. B. die Knoten 102. Die virtuellen Netzadreßbereiche werden durch das Ziel vom virtuellen PM-Adreßbereich auf den physikalischen PM-Adreßbereich mit einer Seitengranularität abgebildet. Die virtuellen Netz-PM-Adreßbereiche können einem einzelnen Initiator (z. B. dem Prozessorknoten 102) exklusiv zugewiesen werden, und mehrere virtuelle PM-Adressen können auf die gleiche physikalische Seite hinweisen.
  • Wenn der Prozessorknoten 102 den PMM anfordert, einen Bereich eines Permanentspeichers in einer nPMU zu öffnen (d. h. zuzuweisen und dann zu beginnen, denselben zu verwenden), ist die NI 108 der nPMU durch den PMM programmiert, um dem Prozessorknoten 102 zu ermöglichen, auf den entsprechenden Bereich zuzugreifen. Diese Programmierung weist einen Block von virtuellen Netzadressen zu und bildet dieselben auf einen Satz von physikalischen Seiten in einem physikalischen Speicher ab (d. h. übersetzt dieselben). Der Bereich von virtuellen PM-Adressen kann dann ungeachtet dessen, auf wie viele Seiten der physikalischen PM-Adresse zugegriffen werden soll, zusammenhängend sein. Die physikalischen Seiten können jedoch an einer beliebigen Stelle im physikalischen PM-Speicher sein. Nach einer erfolgreichen Initialisierung der Übersetzung benachrichtigt der PMM den anfordernden Prozessorknoten 102 über die virtuelle PM-Adresse des zusammenhängenden Blocks. Sobald die nPMU-Speicherseiten offen sind, kann der Prozessor 102 auf dieselben zugreifen, indem RDMA-Lese- oder – Schreiboperationen an die nPMU ausgegeben werden.
  • Unter Bezugnahme auf 5 werden nun die Operationen der nPMU 520 in Verbindung mit einem virtuellen Einzeladreßraum beschrieben. Es ist ein einzelner virtueller PM-Adreßraum 560 gezeigt, der in einen physikalischen PM-Adreßraum 562 übersetzt wird. Sobald ein Bereich des Permanentspeichers offen ist, kann die CPU 0 550 auf einen solchen Bereich des Permanentspeichers in Verbindung mit der Operation der NI 552 und der NI 558 zugreifen. Der PMM öffnet einen Bereich des Permanentspeichers, indem ein Bereich von virtuellen Adressen der CPU zur Verfügung gestellt wird. Beim Anfordern des Zugriffs auf einen offenen Bereich des virtuellen PM-Adreßraums leitet die CPU 0 550 einen Befehl (Lesen oder Schreiben) durch die NI 552 an die NI 558. Bei einem ordnungsgemäßen Betrieb kann die CPU 0 550 nur auf einen spezifizierten Bereich der virtuellen PM-Adressen zugreifen. Dementsprechend validiert die NI 558 zunächst, als Teil ihrer PMM-konfigurierten Funktionalität, die Fähigkeit der CPU 0 550, um auf die virtuelle PM-Adresse 560 zuzugreifen. Die NI 558, wenn sich dieselbe im zulässigen Bereich der CPU 0 550 befindet, führt dann die angeforderte Adreßübersetzung aus und gestaltet schließlich die angeforderte Operation (z. B. Lesen oder Schreiben) gegenüber der physikalischen PM-Adresse 562.
  • Wie in 6 gezeigt ist, kann die nPMU 620 auch mehrere Adreßkontexte (Räume) 670 und 672 mit ihren jeweiligen virtuellen PM-Adreßräumen realisieren und übersetzt jeden Raum unabhängig in den physikalischen PM-Adreßraum 674. Die SANs, die mehrere Adreßräume implementieren, umfassen VIA-SANs (VIA = VI-Architektur), die wiederum GigaNet und ServerNet II (im VIA-Modus) sowie Inifiniband umfassen. Zwischen der nPMU 620 von 6 und der nPMU 520 von 5 bestehen Ähnlichkeiten. Bei der nPMU 620 muß der PMM jedoch zuerst unter den mehreren Adreßkontexten 670 und 672 unterscheiden und dann die virtuellen Adreßkontexte 670 und 672 in die entsprechende physikalische PM-Adresse 674 übersetzen.
  • Bei diesem Ausführungsbeispiel ist die NI 668 für einen Benutzermodus sowie einen Betriebskernmoduszugriff auf den virtuellen PM-Speicher und wiederum auf den physikalischen PM-Speicher konzipiert. Dementsprechend liefert die NI 668 die prozeßäquivalenten virtuellen Adressen. In dieser Weise können viele unabhängige virtuelle Netzadreßräume zur Verfügung gestellt werden. Obgleich nur zwei Adreßkontexte gezeigt sind, sind viele mehr möglich. Tatsächlich sind in dem Ausmaß, in dem die vorliegenden Lehren auf Internetanwendungen anwendbar sind, viele Tausende von Adreßkontexten möglich. Um einen speziellen Adreßraum zu spezifizieren, spezifiziert ein RDMA-Befehl (z. B. Lesen oder Schreiben) einen Kontextidentifizierer zusammen mit der gewünschten virtuellen Adresse. Die NI 668 kann daher verschiedene Prozessorknoten (z. B. CPU 0 660 und CPU I 664) realisieren, um den gleichen Kontextidentifizierer gemeinsam zu verwenden. Außerdem können die separaten virtuellen Seiten von unterschiedlichen Kontexten in dieselbe physikalische Speicherseite übersetzt werden.
  • Wie zuvor, wenn ein Knoten einen Bereich eines Permanentspeichers für einen Zugriff öffnet, wird die NI 668 durch ihren PMM programmiert. Auch verifiziert die NI 668, daß der anfordernde Prozessorknoten einen Zugriff auf die angeforderte virtuelle Adresse hat. Das Programmieren erzeugt hier jedoch einen Kontext in der NI 668. Der Kontext umfaßt einen Block aus virtuellen Netzadressen, die in einen Satz von physikalischen Seiten übersetzt werden. Die virtuelle PM-Adresse 602 des Kontexts 0 670 übersetzt beispielsweise in eine physikalische PM-Adresse 612; und die virtuelle PM-Adresse 606 des Kontexts 1 672 wird in eine physikalische PM-Adresse 610 übersetzt. Bei einem Ausführungsbeispiel sind die virtuellen PM-Adressen ungeachtet der Anzahl von physikalischen PM-Seiten, die zugeordnet wurden, zusammenhängend. Die physikalischen Seiten können jedoch an einer beliebigen Stelle in dem physikalischen PM-Speicher positioniert sein.
  • Die weitere Funktionsfähigkeit des vorliegenden Lösungsansatzes, wie z. B. in 1 gezeigt, wird nun verständlich. Sobald der Prozessorknoten 102 mit dem PMM kommuniziert hat, um einen Speicherbereich zu öffnen, kann er dann direkt auf den Speicher der nPMU 110 zugreifen, ohne erneut durch den PMM zu gehen. Ein Fernlesebefehl liefert beispielsweise eine virtuelle Netzstartadresse und einen Versatz sowie (im Fall von mehreren Adreßräumen) einen Kontextidentifizierer. Für einen ordnungsgemäßen Betrieb sollte dieser Adreßbereich innerhalb des Bereichs sein, der durch den PMM zugewiesen wurde. Der Prozessorknoten 102 liefert an die NI 104 einen Fernlesebefehl, der einen Hinweis auf eine lokale physikalische Speicherposition am Knoten 102 zeigt. Die NI 104 im anfordernden Prozessorknoten 102 sendet dann den Fernlesebefehl an die NI 108 der nPMU 110 über das SAN 106. Die NI 108 übersetzt die virtuelle Startnetzadresse in eine physikalische Adresse in der nPMU 110 unter Verwendung von Übersetzungstabellen, die dem Bereich zugeordnet sind. Mittels der NI 108 sendet die nPMU dann die Daten zum lesenden Prozessorknoten zurück, der an der übersetzten physikalischen Adresse startet. Die NI 108 setzt das Übersetzen der Adressen fort, selbst wenn die nPMU 110 Seitengrenzen erreicht, da die physikalischen Seiten der zusammenhängenden virtuellen PM-Adressen nicht notwendigerweise in kontinuierliche physikalische PM-Adressen übersetzt werden müssen. Wenn der Lesebefehl ausgeführt worden ist, markiert die NI 104 die Leseübertragung als beendet. Außerdem können beliebige wartende Prozesse benachrichtigt werden und wiederum verarbeitet werden.
  • Ein Fern-Schreibvorgang an einen Permanentspeicher erfolgt in ähnlicher Weise. Der Prozessorknoten 102 liefert eine virtuelle Start-PM-Netzadresse und einen virtuellen Versatz sowie (im Falle von mehreren Adreßräumen) einen Kontextidentifizierer für die nPMU 110. Wie zuvor muß der virtuelle PM-Netzadreßbereich in den zugewiesenen Bereich fallen. Der Prozessorknoten 102 liefert auch einen Hinweis auf die physikalische Adresse der Daten, die übertragen werden sollen. Die NI 104 im Prozessorknoten 102 gibt dann einen Fern-Schreibvorgangs-Befehl an die NI 108 in der nPMU 110 aus und beginnt das Senden der Daten. Die NI 108 übersetzt die Startadresse in eine physikalische Adresse in der nPMU 110 unter Verwendung von Übersetzungstabellen, die dem Bereich zugeordnet sind. Auch speichert die nPMU 110 Daten, die an der übersetzten physikalischen Adresse starten. Die NI 108 setzt ein Übersetzen der Adressen fort, selbst wenn die nPMU 110 Seitengrenzen erreicht, da die physikalischen Adressen der zusammenhängenden virtuellen PM-Netzadressen nicht notwendigerweise in zusammenhängende physikalische PM-Adressen übersetzen. Wenn der Schreibbefehl ausgeführt ist, markiert die NI 104 die Schreibübertragung als beendet. Beliebige wartende Prozesse können dann benachrichtigt und wiederum verarbeitet werden.
  • Es wird darauf hingewiesen, daß beim Latenztesten der nPMU gemäß den vorliegenden Lehren festgestellt wurde, daß Speicherzugriffe ohne weiteres innerhalb von 80 Mikrosekunden erreicht werden könnten, was im Vergleich zu I/O-Operationen, die über 800 Mikrosekunden erfordern, ein sehr guter Schnitt ist. Tatsächlich ist dieses Ergebnis möglich, weil die Latenzen der I/O-Operationen einschließlich ihrer notwendigen Unterbrechungen vermieden werden. Die nPMU gemäß den vorliegenden Lehren weist daher die Persistent der Speicherung mit dem feinkörnigen Zugriff des Systemspeichers auf.
  • Für die nPMUs existieren verschiedene Anwendungen einschließlich Anwendungen zum Beschleunigen von Plattenlesevorgängen und Schreibvorgängen. Auch können die nPMUs eine Wiederherstellung von einem Leistungs- oder Prozessorausfall vereinfachen. Aufgrund der inhärenten Schwierigkeiten zwischen den Lese- und Schreiboperationen liefern die nPMUs eine deutlichere Verbesserung bei den Schreiboperationen als bei Leseoperationen, da die nPMUs einen langsameren und kleineren Speicher über einem Netz als der System-RAM über einem viel schnelleren Bus verwenden. Obgleich die Datenstrukturen, die häufig gelesen werden müssen, in einem System-RAM in einem Cache gespeichert werden können, selbst wenn eine Kopie in einem nPMU existiert, sind weniger häufig verwendete Datenstrukturen für eine nPMU angemessen.
  • Die Datenbankverriegelungen, die auf einer Transaktions-um-Transaktions-Basis gehalten werden, sind beispielsweise zur Speicherung in einer nPMU angemessen. Durch Verfolgen von aktualisierten Verriegelungen, die durch Transaktionen in einer nPMU gehalten werden, kann eine Wiederherstellung von ungeplanten Ausfällen – und möglicherweise geplanten Transaktionsverwalterunterbrechungen – beschleunigt werden. Außerdem kann eine nPMU das Aufkommen von neuen Verriegelungstypen vereinfachen, die bei einem Ausfall weiterhin bestehen bleiben, wodurch die Datenbankressourcen, die durch in Arbeit befindliche Transaktionen zum Zeitpunkt eines Zusammenbruchs in einem inkonsistenten Zustand übrig bleiben, bewacht werden.
  • Ein physikalischer Erneut-Ausführen-Cache (Redo-Cache) ist auch für eine nPMU-Implementierung angemessen. Das Beibehalten eines Cache-Speichers von Datenbankblöcken, die verunreinigt (d. h. teilweise verarbeitet), jedoch vor dem Zweiten-bis-Letzten-Steuerungspunkt nicht weggeräumt wurden, beschleunigt eine physikalische Reparatur während einer Volumenwiederherstellung unter Verwendung einer Fuzzy-Prüfpunktgebung. Bei einer Implementierung wird ein solcher Cache während des Fortschreitens von jedem Steuerungspunkt abgeschnitten. Während der Wiederherstellung kann anstelle eines Lesens von Plattenvolumina, das häufig willkürlich geschieht, für Daten, die Reparaturaufzeichnungen in einer Prüfspur zugeordnet sind, durch Konsultieren des Reparatur-Cache-Speichers in einer nPMU eine Wiederherstellung viel schneller erreicht werden. Dies kann besonders wichtig sein, wenn Datenbank-Cachespeicher groß sind und Transaktionen relativ klein sind, jedoch mit einer hohen Rate geschehen. Bei solchen Szenarien kann sich eine große Menge von Prüfinformationen zwischen aufeinanderfolgenden Steuerungspunkten aufbauen, die nichtsdestotrotz in einer nPMU für eine beschleunigte Wiederherstellung gespeichert werden können.
  • Eine nPMU kann auch effiziente Datenbankverpflichtungen durch die Verwendung eines permanenten Protokollendes berücksichtigen. Anstatt auf Plattenschreiboperationen zu warten, die Hilfsprüfspuren entsprechen, um vor der Ausführung von Datenbanktransaktionen geräumt zu werden, kann eine nPMU beispielsweise Datenbankverpflichtungen nach einem Schreiben an die nPMU berücksichtigen und muß nicht auf andere Räumungsoperationen warten. Da eine nPMU eine bessere Latenz als eine Latenz, die zehn mal geringer ist als die Plattenspeicherung, aufweisen kann, können Datenbanktransaktionslatenzen beträchtlich gekürzt werden. Außerdem wird desgleichen ein Transaktionsdurchsatz verbessert. Zu dem Maße, in dem Informationen nichtsdestotrotz einer Platte verschrieben werden müssen, kann eine nPMU beispielsweise eine beträchtlich größere Menge von Informationen akkumulieren und wiederum dieselben effizienter an die Platte schreiben.
  • Die Datenbankwarteschlangen und die Ereignisverarbeitung kann auch durch die Verwendung einer nPMU verbessert werden. Die Warteschlangen und Ereignisse können beispielsweise unter Verwendung von Listendatenstrukturen in einer nPMU beibehalten werden, um beliebige Ausfälle oder Stagnationen bei firmeninternen oder firmenweiten Einsätzen zu verhindern. Ein Beibehalten von Ereignissen und Warteschlangen in einer nPMU ermöglicht eine reibungslose Arbeitsflußverarbeitung und ein rechtzeitiges Handhaben von Ereignissen, selbst wenn eine CPU, die Informationen aktiv verarbeitet, einen Ausfall erleidet.
  • Bei einem Ausführungsbeispiel wird der vorliegende Lösungsansatz auf einem Computersystem 700, wie in 7 gezeigt ist, praktiziert. Unter Bezugnahme auf 7 ist ein exemplarisches Computersystem 700 (z. B. ein Personalcomputer, eine Arbeitsstation, ein Hauptrechner etc.), auf dem die vorliegenden Lehren praktiziert werden können, gezeigt. Das Computersystem 700 ist mit einem Datenbus 714 konfiguriert, der verschiedene Komponenten kommunikativ koppelt. Wie in 7 gezeigt ist, ist der Prozessor 702 mit dem Bus 714 für ein Verarbeiten von Informationen und Anweisungen gekoppelt. Ein computerlesbarer flüchtiger Speicher, wie z. B. ein RAM 704, ist ebenfalls mit dem Bus 714 zum Speichern von Informationen und Anweisungen für den Prozessor 702 gekoppelt. Außerdem ist ein computerlesbarer ROM (ROM = Read Only Memory = Nur-Lese-Speicher) 706 ebenfalls mit dem Bus 714 für ein Speichern von statischen Informationen und Anweisungen für den Prozessor 702 gekoppelt. Eine Datenspeicherungsvorrichtung 708, wie z. B. ein magnetisches oder optisches Plattenmedium, ist ebenfalls mit dem Bus 714 gekoppelt. Die Datenspeicherungsvorrichtung 708 wird zum Speichern von großen Mengen von Informationen und Anweisungen verwendet. Eine alphanumerische Eingabevorrichtung 710, die alphanumerische Tasten und Funktionstasten umfaßt, ist mit dem Bus 714 zum Kommunizieren von Informationen und Befehlsauswahlen an den Prozessor 702 gekoppelt. Eine Cursorsteuerungsvorrichtung 712, wie z. B. eine Maus, ist mit dem Bus 714 zum Kommunizieren von Benutzereingabeinformationen und Befehlsauswahlen an den Zentralprozessor 702 gekoppelt. Ein Eingabe-/Ausgabekommunikationsport 716 ist mit dem Bus 714 zum Kommunizieren mit einem Netz, anderen Computern oder anderen Prozessoren gekoppelt. Eine Anzeige 718 ist mit dem Bus 714 zum Anzeigen von Informationen für einen Computerbenutzer gekoppelt. Die Anzeigevorrichtung 718 kann eine Flüssigkristallvorrichtung, eine Kathodenstrahlröhre oder eine andere Anzeigevorrichtung sein, die zum Erzeugen von graphischen Bildern und alphanumerischen Schriftzeichen geeignet ist, die durch den Benutzer erkennbar sind. Die alphanumerische Eingabe 710 und die Cursorsteuerungsvorrichtung 712 erlauben dem Computerbenutzer, die zweidimensionale Bewegung eines sichtbaren Symbols (Hinweis) auf der Anzeige 718 dynamisch zu signalisieren.
  • Obgleich verschiedene Ausführungsbeispiele und Vorteile beschrieben worden sind, wird darauf hingewiesen, daß eine Anzahl von Variationen ohne weiteres erkennbar ist. Beim Implementieren eines Permanentspeichers sind beispielsweise viele Technologien verfügbar. Somit kann der vorliegende Lösungsansatz mit der Offenbarung und den folgenden Ansprüchen im weitesten Sinne konsistent angewendet werden.

Claims (41)

  1. System mit einem Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, der folgende Merkmale aufweist: eine Kommunikationsverbindung (106); einen Prozessorknoten (102) zum Initiieren von Permanentspeicheroperationen gegenüber einem virtuellen Permanentspeicher-Adreßraum (560), wobei der Prozessorknoten (102) mit der Kommunikationsverbindung (106) über eine erste Schnittstelle (104) kommunikativ gekoppelt ist; und eine Permanentspeichereinheit (110), die mit der Kommunikationsverbindung (106) über eine zweite Schnittstelle (108) kommunikativ gekoppelt ist, wobei die Permanentspeichereinheit (110) konfiguriert ist, um zwischen dem virtuellen Permanentspeicher-Adreßraum (560) und einem physikalischen Permanentspeicher-Adreßraum (562) in dem Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, zu übersetzen.
  2. System gemäß Anspruch 1, bei dem der Prozessorknoten (102) eine zentrale Verarbeitungseinheit (306) umfaßt.
  3. System gemäß Anspruch 1 oder 2, bei dem die Kommunikationsverbindung (106) aus einer Gruppe bestehend aus einem Netz und einem Bus ausgewählt ist.
  4. System gemäß Anspruch 3, bei dem das Netz aus einer Gruppe bestehend aus einem Systembereichsnetz, einem ServerNet-Netz, einem GigaNet-Netz, einem Infiniband-Netz, einem Infiniband, einem PCI-Express, einem Ethernet, einem RDMA-fähigen Ethernet und einem VIA- Netz (VIA = Virtual Interface Architecture) ausgewählt ist.
  5. System gemäß Anspruch 4, bei dem das Systembereichsnetz konfiguriert ist, um einen Ferndirektspeicherzugriff zu implementieren.
  6. System gemäß einem der Ansprüche 1 bis 5, bei dem der Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, aus einer Gruppe bestehend aus einem magnetischen Direktzugriffsspeicher, einem magnetoresistiven Direktzugriffsspeicher, einem ferroelektrischen Polymer-Direktzugriffsspeicher, einem Einheits-Ovonicspeicher, einem Flash-Speicher und einem batteriegesicherten flüchtigen Speicher ausgewählt ist.
  7. System mit einem Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, wobei das System folgende Merkmale aufweist: eine Kommunikationsverbindung (106); eine Mehrzahl von Prozessorknoten (102) zum Initiieren von Permanentspeicheroperationen basierend auf einer Mehrzahl von virtuellen Permanentspeicher-Adreßräumen (560), wobei die Mehrzahl von Prozessorknoten (102) über jeweilige erste Schnittstellen (104) mit der Kommunikationsverbindung (106) kommunikativ gekoppelt ist; und eine Permanentspeichereinheit (110), die mit der Kommunikationsverbindung (106) über eine zweite Schnittstelle (108) kommunikativ gekoppelt ist, wobei die Permanentspeichereinheit (110) konfiguriert ist, um zwischen der Mehrzahl von virtuellen Permanentspeicher-Adreßräumen (560) und physikalischen Permanentspeicher-Adreßräumen (562) in dem Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, zu übersetzen.
  8. System gemäß Anspruch 7, bei dem die Mehrzahl von Prozessorknoten (102) eine zentrale Verarbeitungseinheit umfaßt.
  9. System gemäß Anspruch 7 oder 8, bei dem die Kommunikationsverbindung (106) aus einer Gruppe bestehend aus einem Netz und einem Bus ausgewählt ist.
  10. System gemäß Anspruch 9, bei dem das Netz aus einer Gruppe bestehend aus einem Systembereichsnetz, einem ServerNet-Netz, einem GigaNet-Netz, einem Infiniband-Netz, einem Infiniband, einem PCI-Express, einem Ethernet, einem RDMA-fähigen Ethernet und einem VIA-Netz ausgewählt ist.
  11. System gemäß Anspruch 10, bei dem das Systembereichsnetz konfiguriert ist, um einen Ferndirektspeicherzugriff zu implementieren.
  12. System gemäß einem der Ansprüche 7 bis 11, bei dem der Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, aus einer Gruppe bestehend aus einem magnetischen Direktzugriffsspeicher, einem magnetoresistiven Direktzugriffsspeicher, einem ferroelektrischen Polymer-Direktzugriffsspeicher, einem Einheits-Ovonicspeicher, einem Flash-Speicher und einem batteriegesicherten flüchtigen Speicher ausgewählt ist.
  13. System mit einem Speicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, wobei das System folgende Merkmale aufweist: eine Kommunikationsverbindung (106); ein Prozessorknoten (102) zum Initiieren von Permanentspeicheroperationen gegenüber einem virtuellen Permanentspeicher-Adreßraum (560), wobei der Prozessorknoten (102) mit der Kommunikationsverbindung (106) über eine erste Schnittstelle (104) kommunikativ gekoppelt ist; und eine Permanentspeichereinheit (110), die mit der Kommunikationsverbindung (106) über eine zweite Schnittstelle (108) kommunikativ gekoppelt ist, wobei die Permanentspeichereinheit (110) konfiguriert ist, um zwischen dem virtuellen Permanentspeicher-Adreßraum (560) und einem physikalischen Permanentspeicher-Adreßraum (562) in einem flüchtigen Speicher zu übersetzen, wobei der flüchtige Speicher mit einem nichtflüchtigen Speicher kommunikativ gekoppelt ist und wobei die Permanentspeichereinheit (110) durch eine Speicherquelle mit Leistung versorgt wird, die eine Übertragung von Daten vom flüchtigen Speicher zum nichtflüchtigen Speicher liefert.
  14. System gemäß Anspruch 13, das ferner eine zentrale Verarbeitungseinheit umfaßt, die mit dem flüchtigen Speicher und dem nichtflüchtigen Speicher kommunikativ gekoppelt ist, wobei die zentrale Verarbeitungseinheit eine Übertragung von Daten vom flüchtigen Speicher zum nichtflüchtigen Speicher initiiert.
  15. System gemäß Anspruch 13 oder 14, bei dem die Speicherquelle ausreichend Leistung zum Initiieren und Abschließen einer Übertragung von Daten vom flüchtigen Speicher zum nichtflüchtigen Speicher enthält.
  16. System gemäß einem der Ansprüche 13 bis 15, bei dem die Mehrzahl von Prozessorknoten (102) eine Mehrzahl von zentralen Verarbeitungseinheiten umfaßt.
  17. System gemäß einem der Ansprüche 13 bis 16, bei dem die Kommunikationsverbindung (106) aus einer Gruppe bestehend aus einem Netz und einem Bus ausgewählt ist.
  18. System gemäß Anspruch 17, bei dem das Netz aus einer Gruppe bestehend aus einem Systembereichsnetz, einem ServerNet-Netz, einem GigaNet-Netz, einem Infiniband-Netz, einem Infiniband, einem PCI-Express, einem Ethernet, einem RDMA-fähigen Ethernet und einem VIA-Netz ausgewählt ist.
  19. System gemäß Anspruch 18, bei dem das Systembereichsnetz konfiguriert ist, um einen Ferndirektspeicherzugriff zu implementieren.
  20. Verfahren zum Zugreifen auf einen Permanentspeicher über eine Kommunikationsverbindung (106), das folgende Schritte aufweist: Initiieren eines Permanentspeicherbefehls an einen Prozessorknoten (102), wobei der Speicherbefehl eine Referenz auf eine virtuelle Permanentspeicher-Adresse (560) umfaßt; Kommunizieren des Permanentspeicherbefehls an eine Permanentspeichereinheit (110) über die Kommunikationsverbindung (106); an der Permanentspeichereinheit (110), Übersetzen der virtuellen Permanentspeicher-Adresse (560) an eine physikalische Adresse (562) eines Permanentspeichers in dem Permanentspeicher; und Ausführen des Speicherbefehls bezüglich des Inhalts der physikalischen Adresse (562).
  21. Verfahren gemäß Anspruch 20, bei dem die virtuelle Permanentspeicher-Adresse (560) einer Mehrzahl von virtuellen Permanentspeicher-Adreßräumen (670, 672) entspricht und bei dem die Permanentspeichereinheit (110) ferner die Mehrzahl von virtuellen Permanentspeicher-Adreßräumen (670, 672) in physikalische Permanentspeicher-Adressen (674) übersetzt.
  22. Verfahren gemäß Anspruch 20 oder 21, bei dem die Permanentspeichereinheit (110) bestätigt, daß der Prozessorknoten (102) autorisiert ist, um auf die virtuelle Permanentspeicher-Adresse zuzugreifen.
  23. Verfahren gemäß einem der Ansprüche 20 bis 22, bei dem der Permanentspeicherbefehl ein Lesebefehl ist.
  24. Verfahren gemäß einem der Ansprüche 20 bis 23, bei dem der Permanentspeicherbefehl ein Schreibbefehl ist.
  25. Verfahren gemäß einem der Ansprüche 20 bis 24, bei dem die Permanentspeichereinheit (110) einen Bereich von virtuellen Permanentspeicher-Adressen eines öffnet, der die virtuelle Permanentspeicher-Adresse (560) enthält.
  26. Verfahren gemäß einem der Ansprüche 20 bis 25, bei dem der Prozessorknoten (102) eine zentrale Verarbeitungseinheit umfaßt, die den Speicherbefehl initiiert.
  27. Verfahren gemäß einem der Ansprüche 20 bis 26, bei dem die Kommunikationsverbindung (106) aus einer Gruppe bestehend aus einem Netz und einem Bus ausgewählt ist.
  28. Verfahren gemäß Anspruch 27, bei dem das Netz aus einer Gruppe bestehend aus einem Systembereichsnetz, einem ServerNet-Netz, einem GigaNet-Netz, einem Infiniband-Netz, einem Infiniband, einem PCI-Express, einem Ethernet, einem RDMA-fähigen Ethernet und einem VIA-Netz ausgewählt ist.
  29. Verfahren gemäß Anspruch 28, bei dem das Systembereichsnetz konfiguriert ist, um einen Ferndirektspeicherzugriff zu implementieren.
  30. Verfahren gemäß einem der Ansprüche 20 bis 29, bei dem der Permanentspeicher, der an eine Kommunikationsverbindung (106) angeschlossen ist, aus einer Gruppe bestehend aus einem magnetischen Direktzugriffsspeicher, einem magnetoresistiven Direktzugriffsspeicher, einem ferroelektrischen Polymer-Direktzugriffsspeicher, einem Einheits-Ovonicspeicher, einem Flash-Speicher und einem batteriegesicherten flüchtigen Speicher ausgewählt ist.
  31. Computerlesbares Medium, auf dem Anweisungen gespeichert sind, um zu bewirken, daß ein Computer auf einen Permanentspeicher über eine Kommunikationsverbindung (106) zugreift, mit folgenden Schritte: Initiieren eines Permanentspeicherbefehls an einem Prozessorknoten (102), wobei der Speicherbefehl eine Referenz auf eine virtuelle Permanentspeicher-Adresse (560) umfaßt; Kommunizieren des Permanentspeicherbefehls an eine Permanentspeichereinheit (110) über die Kommunikationsverbindung (106); an der Permanentspeichereinheit (110), Übersetzen der virtuellen Permanentspeicher-Adresse (560) an eine physikalische Permanentspeicher-Adresse (562) im Permanentspeicher; und Ausführen des Speicherbefehls bezüglich des Inhalts der physikalischen Adresse.
  32. Computerlesbares Medium gemäß Anspruch 31, bei dem die virtuelle Permanentspeicher-Adresse (560) einer Mehr zahl von virtuellen eines Permanentspeicher-Adreßräumen (670, 672) entspricht und bei dem die Permanentspeichereinheit (110) ferner die Mehrzahl von virtuellen Permanentspeicher-Adreßräumen (670, 672) in physikalische Permanentspeicher-Adressen (562) übersetzt.
  33. Computerlesbares Medium gemäß einem der Ansprüche 31 oder 32, bei dem die Permanentspeichereinheit (110) bestätigt, daß der Prozessorknoten (102) autorisiert ist, um auf die virtuelle Permanentspeicher-Adresse (560) zuzugreifen.
  34. Computerlesbares Medium gemäß einem der Ansprüche 31 bis 33, bei dem der Permanentspeicherbefehl ein Lesebefehl ist.
  35. Computerlesbares Medium gemäß einem der Ansprüche 31 bis 34, bei dem der Permanentspeicherbefehl ein Schreibbefehl ist.
  36. Computerlesbares Medium gemäß einem der Ansprüche 31 bis 35, bei dem die Permanentspeichereinheit (110) einen Bereich von virtuellen Permanentspeicher-Adressen (560) öffnet, der die virtuelle Adresse des Permanentspeichers enthält.
  37. Computerlesbares Medium gemäß einem der Ansprüche 31 bis 36, bei dem der Prozessorknoten (102) eine zentrale Verarbeitungseinheit umfaßt, die den Speicherbefehl initiiert.
  38. Computerlesbares Medium gemäß einem der Ansprüche 31 bis 37, bei dem die Kommunikationsverbindung (106) aus einer Gruppe bestehend aus einem Netz und einem Bus ausgewählt ist.
  39. Computerlesbares Medium gemäß Anspruch 38, bei dem das Netz aus einer Gruppe bestehend aus einem Systembereichsnetz, einem ServerNet-Netz, einem GigaNet-Netz, einem Infiniband-Netz, einem Infiniband, einem PCI-Express, einem Ethernet, einem RDMA-fähigen Ethernet und einem VIA-Netz ausgewählt ist.
  40. Computerlesbares Medium gemäß Anspruch 39, bei dem das Systembereichsnetz konfiguriert ist, um einen Ferndirektspeicherzugriff zu implementieren.
  41. Computerlesbares Medium gemäß einem der Ansprüche 31 bis 40, bei dem der Permanentspeicher, der an eine Kommunikationsverbindung angeschlossen ist, aus einer Gruppe bestehend aus einem magnetischen Direktzugriffsspeicher, einem magnetoresistiven Direktzugriffsspeicher, einem ferroelektrischen Polymer-Direktzugriffsspeicher, einem Einheits-Ovonicspeicher, einem Flash-Speicher und einem batteriegesicherten flüchtigen Speicher ausgewählt ist.
DE10348326A 2003-01-24 2003-10-17 Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist Withdrawn DE10348326A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/351194 2003-01-24
US10/351,194 US20040148360A1 (en) 2003-01-24 2003-01-24 Communication-link-attached persistent memory device

Publications (1)

Publication Number Publication Date
DE10348326A1 true DE10348326A1 (de) 2004-08-12

Family

ID=32712824

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10348326A Withdrawn DE10348326A1 (de) 2003-01-24 2003-10-17 Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist

Country Status (4)

Country Link
US (1) US20040148360A1 (de)
JP (1) JP2004227568A (de)
DE (1) DE10348326A1 (de)
TW (1) TW200413908A (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089394B2 (en) * 2003-04-22 2006-08-08 Intel Corporation Optimally mapping a memory device
US9213609B2 (en) * 2003-12-16 2015-12-15 Hewlett-Packard Development Company, L.P. Persistent memory device for backup process checkpoint states
US7411591B2 (en) * 2003-12-24 2008-08-12 Intel Corporation Graphics memory switch
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
US8688800B2 (en) * 2005-10-05 2014-04-01 Hewlett-Packard Development Company, L.P. Remote configuration of persistent memory system ATT tables
US20080022120A1 (en) * 2006-06-05 2008-01-24 Michael Factor System, Method and Computer Program Product for Secure Access Control to a Storage Device
CN101715575A (zh) * 2006-12-06 2010-05-26 弗森多系统公司(dba弗森-艾奥) 采用数据管道管理数据的装置、系统和方法
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8935302B2 (en) * 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US20090327465A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Distributed Configuration Orchestration for Network Client Management
US20100161908A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient Memory Allocation Across Multiple Accessing Systems
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US20100161879A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient and Secure Main Memory Sharing Across Multiple Processors
US20100161909A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
EP2476039B1 (de) 2009-09-09 2016-10-26 SanDisk Technologies LLC Vorrichtung, system und verfahren zur leistungsverlustverwaltung in einem speichersystem
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10372350B2 (en) * 2010-11-29 2019-08-06 Pure Storage, Inc. Shared ownership of namespace ranges
US10802763B2 (en) 2010-11-29 2020-10-13 Pure Storage, Inc. Remote storage verification
US10922179B2 (en) 2010-11-29 2021-02-16 Pure Storage, Inc. Post rebuild verification
US11307930B1 (en) 2010-11-29 2022-04-19 Pure Storage, Inc. Optimized selection of participants in distributed data rebuild/verification
US20120137044A1 (en) * 2010-11-30 2012-05-31 Nokia Corporation Method and apparatus for providing persistent computations
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
EP2652623B1 (de) 2010-12-13 2018-08-01 SanDisk Technologies LLC Vorrichtung, system, und verfahren für einen auto-commit-speicher
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
WO2013138587A1 (en) 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9666244B2 (en) 2014-03-01 2017-05-30 Fusion-Io, Inc. Dividing a storage procedure
US9933950B2 (en) 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
WO2017131747A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Persistent virtual address spaces
US10303646B2 (en) 2016-03-25 2019-05-28 Microsoft Technology Licensing, Llc Memory sharing for working data using RDMA
US10915404B2 (en) * 2018-11-02 2021-02-09 Arm Limited Persistent memory cleaning
US11249804B2 (en) 2019-10-07 2022-02-15 International Business Machines Corporation Affinity based optimization of virtual persistent memory volumes
JP2021189719A (ja) 2020-05-29 2021-12-13 富士通株式会社 情報処理装置及び受信処理プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787476A (en) * 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US6804673B2 (en) * 2001-04-19 2004-10-12 Fujitsu Limited Access assurance for remote memory access over network
US6883068B2 (en) * 2001-12-17 2005-04-19 Sun Microsystems, Inc. Methods and apparatus for implementing a chche replacement scheme
US7103724B2 (en) * 2002-04-01 2006-09-05 Intel Corporation Method and apparatus to generate cache data
US7017025B1 (en) * 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
US6957158B1 (en) * 2002-12-23 2005-10-18 Power Measurement Ltd. High density random access memory in an intelligent electric device

Also Published As

Publication number Publication date
US20040148360A1 (en) 2004-07-29
TW200413908A (en) 2004-08-01
JP2004227568A (ja) 2004-08-12

Similar Documents

Publication Publication Date Title
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE102004064069B4 (de) Plattenarrayvorrichtung
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE3280428T2 (de) Datenspeichersystem fuer einen arbeitsrechner.
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69327679T2 (de) Nachrichtenübertragung zwischen Prozessoren und einer Koppeleinrichtung
DE69223287T2 (de) Steuerungsverfahren für eine Computerspeichereinrichtung
DE69622253T2 (de) System und verfahren für on-line- und echzeit-datenmigration
DE60316783T2 (de) Erkennung von Speichermangel und Feinabschaltung
DE3934145C2 (de) Platteneinheit-Steuerungsvorrichtung und Informationsverarbeitungssystem, das dieselbe enthält
DE102014117465A1 (de) Unterstützter kohärenter gemeinsamer Speicher
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE112010005821T5 (de) Kontextwechsel
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung
DE112010003794T5 (de) Datenspeicherung unter Verwendung von Bitmaps
DE112018004138B4 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112011100564T5 (de) Einfügen eines Flash-Zwischenspeichers in große Speichersysteme
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE69803923T2 (de) Dasd dateisystemkopierverfahren für einen datenprozessor unter verwendung einer datenspeicherungsuntersystemschnappschussmöglichkeit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 1216

8130 Withdrawal