DE102011076894A1 - Persistenter Speicher für einen Prozessorhauptspeicher - Google Patents

Persistenter Speicher für einen Prozessorhauptspeicher Download PDF

Info

Publication number
DE102011076894A1
DE102011076894A1 DE102011076894A DE102011076894A DE102011076894A1 DE 102011076894 A1 DE102011076894 A1 DE 102011076894A1 DE 102011076894 A DE102011076894 A DE 102011076894A DE 102011076894 A DE102011076894 A DE 102011076894A DE 102011076894 A1 DE102011076894 A1 DE 102011076894A1
Authority
DE
Germany
Prior art keywords
memory
cache
main memory
processors
persistent
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.)
Granted
Application number
DE102011076894A
Other languages
English (en)
Other versions
DE102011076894B9 (de
DE102011076894B4 (de
Inventor
John Rudelic
August Camber
Mostafa Naguib Abdulla
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE102011076894A1 publication Critical patent/DE102011076894A1/de
Application granted granted Critical
Publication of DE102011076894B4 publication Critical patent/DE102011076894B4/de
Publication of DE102011076894B9 publication Critical patent/DE102011076894B9/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells

Abstract

Der Gegenstand, der hier offenbart wird, bezieht sich auf ein System aus einem oder mehreren Prozessoren, das persistenten Speicher umfasst.

Description

  • Hintergrund
  • Gebiet
  • Der Gegenstand der hier offenbart wird, bezieht sich auf ein System aus einem oder mehreren Prozessoren, das persistenten Speicher umfasst.
  • Information:
  • Zentralverarbeitungseinheiten (central processing units, CPUs) werden in vielen Arten von elektronischen Vorrichtungen eingesetzt, wie zum Beispiel Computer, Mobiltelefone, PDAs, Datenlogger, Spiele und Navigationsausstattung. Unter solchen elektronischen Vorrichtungen können verschiedene Konfigurationen einer oder mehrerer CPUs eingesetzt werden, wie zum Beispiel in einem Mehrfachprozessorsystem. CPUs können mit Speichervorrichtungen assoziiert sein um bestimmte Funktionen auszuführen. Eine CPU kann zum Beispiel mit einem Hauptspeicher assoziiert sein, um eine oder mehrere Anwendungen, die durch die CPU bedient werden, zu unterhalten. In einem anderen Beispiel kann eine CPU mit Cachespeicher assoziiert sein, um relativ schnellen Zugriff auf verschiedene Arten von gespeicherter Information bereitzustellen.
  • Kurze Beschreibung der Zeichnungen
  • Nicht beschränkende und nicht erschöpfende Ausführungsformen werden mit Bezug auf die folgenden Zeichnungen beschrieben werden, wobei gleiche Bezugszeichen auf gleiche Teile durchgängig für die verschiedenen Zeichnungen verweisen, außer es ist anderweitig spezifiziert.
  • 1 ist ein schematisches Diagramm für eine Systemkonfiguration gemäß einer Ausführungsform.
  • 2 ist ein schematisches Diagramm eines Mehrfachprozessorsystems gemäß einer Ausführungsform.
  • 3 ist ein schematisches Diagramm einer Mehrfachprozessorsystem-Konfiguration gemäß einer anderen Ausführungsform.
  • 4 ist eine schematische Ansicht eines Computersystems und einer Speichervorrichtung gemäß einer Ausführungsform.
  • Detaillierte Beschreibung
  • Der durchgängige Bezug in dieser Spezifikation auf ”eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform des beanspruchten Gegenstands enthalten ist. Somit sind das Auftreten der Ausdrücke ”in einer Ausführungsform” oder ”einer Ausführungsform” an verschiedenen Orten innerhalb dieser Spezifikation nicht notwendigerweise alle Bezug nehmend auf dieselbe Ausführungsform. Weiterhin, können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
  • In einer Ausführungsform, kann ein System aus zwei oder mehreren Verarbeitungseinheiten, wie zum Beispiel Zentralverarbeitungseinheiten (CPUs), persistenten Speicher enthalten. Persistenter Speicher kann zum Beispiel zumindest für einen Teil eines Hauptspeichers verwendet werden, der gemeinsam von mehreren CPUs genutzt werden kann. Solch ein System aus zwei oder mehreren CPUs kann zum Beispiel ein Rechensystem aufweisen, um Anwendungen in irgendeiner einer Anzahl von Umgebungen auszuführen, wie zum Beispiel Computer, Mobiltelefone, PDAs, Datenlogger und Navigationsausrüstung, um nur einige wenige Beispiele zu nennen. Insbesondere können mehrere Anwendungen simultan durch mehrere CPUs ausgeführt werden. In einer Implementierung kann eine oder können mehrere solcher CPUs einzeln mit einem Hauptspeicher und/oder Cachespeicher assoziiert sein. Hier kann ein Teil entweder eines solchen Hauptspeichers oder Cachespeichers einen persistenten Speicher aufweisen. Zum Beispiel kann ein Hauptspeicher und/oder Cachespeicher einen Teil aus persistentem Speicher und einen Teil eines anderen Typs von Speicher mit wahlfreiem Zugriff (RAM) aufweisen. In einem bestimmten Beispiel kann der Hauptspeicher zumindest einen Teil aus einem Phasenänderungsspeicher (phase change memory, PCM) und dynamischen Speichern mit wahlfreiem Zugriff (dynamic random access memory, DRAM) aufweisen. In einem anderen bestimmten Beispiel kann der Cachespeicher PCM und/oder DRAM aufweisen. Solche Speicherkonfigurationen können Vorteile bieten wie zum Beispiel Nicht-Flüchtigkeit, relativ hohe Schreib-/Lesegeschwindigkeiten, und/oder verlängerte PCM-Lebensdauer, wie unten erläutert. Der Hauptspeicher, der persistenten Speicher enthält, kann einen anderen Vorteil wie zum Beispiel ein Vermeiden eines Bedarfs, um ausführbare Anweisungen und/oder andere Information aus einem nichtflüchtigen Speicher in ein flüchtiges DRAM hinein zu laden. Dementsprechend kann eine vergrößerte Speicheroperationsgeschwindigkeit (z. B. Lese-, Schreib- oder Löschoperationen) und/oder reduzierter Leistungsverbrauch einer Speichervorrichtung unter einer Anzahl von Vorteilen sein, die durch den Hauptspeicher, der persistenten Speicher enthält, bereitgestellt wird. Natürlich sind solche Merkmale und Details einer Ausführungsform, die PCM oder anderen persistenten Speicher als einen Hauptspeicher enthält nur Beispiele und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt.
  • Hier bezieht sich persistenter Speicher auf nichtflüchtigen Speicher wie zum Beispiel PCM, welcher die Fähigkeit besitzen kann Bits ändern zu lassen. Ein anderes Merkmal von persistentem Speicher weist nicht-symmetrische Lese-/Schreibgeschwindigkeiten auf, wobei eine Schreibgeschwindigkeit geringer sein kann als eine Lesegeschwindigkeit für eine gegebene Speicherzelle. Wie unten beschrieben kann ein Vorhandensein von persistentem Speicher, der solche Merkmale aufweist, in einem Mehrfachprozessorsystem bestimmte Cachekohärenzprotokolle benutzen, um einer oder mehreren Verarbeitungseinheiten zu erlauben zum Beispiel den Hauptspeicher gemeinsam zu nutzen. Hier bezieht sich der Hauptspeicher auf Speicher, der von einer Verarbeitungseinheit verwendet wird, um eine oder mehrere Anwendungen zu halten, die durch die Verarbeitungseinheit ausführbar sind, obgleich der beanspruchte Gegenstand nicht in diesem Bezug beschränkt ist.
  • In einer Ausführungsform kann PCM als Hauptspeicher für ein System aus einer oder mehreren Verarbeitungseinheiten verwendet werden. In einem solchen Fall kann PCM mindestens einige derselben Cachekohärenzprotokolle involvieren, wie zum Beispiel auf DRAM oder andere Arten von RAM angewendet werden. Der PCM kann jedoch unterschiedlich vom DRAM sein in dem Sinne, dass PCM einen persistenten Speicher aufweist. Der DRAM kann zum Beispiel gespeicherte Inhalte verlieren, wenn die Stromversorgung entfernt wird, während der PCM gespeicherte Inhalte behalten kann, selbst wenn die Stromversorgung entfernt wird. In einem anderen Beispiel können Lese- und Schreibgeschwindigkeiten die selben sein für DRAM, wohingegen Lese- und Schreibgeschwindigkeiten für PCM unterschiedlich voneinander und relativ langsam sein können, verglichen mit DRAM. Somit können bei einer Implementierung Cachekohärenz-Semantiken hinzugefügt werden zu einer Cachekohärenzverwaltung, um eine nichtflüchtige Eigenschaft des PCM zu unterstützen, falls der PCM mindestens ein Teil des Hauptspeichers ausmacht. Bei einer anderen Implementierung, die einen PCM hat, der mindestens einen Teil eines Hauptspeichers ausmachen können Cachekohärenz-Semantiken zu der Cachekohärenzverwaltung hinzugefügt werden, um relativ lange, nicht symmetrische Lese-/Schreibgeschwindigkeiten des PCM zu unterstützen, um einer erhöhten Latenz einer Schreiboperation verglichen mit einer Leseoperation Rechnung zu tragen. Selbstverständlich ist der beanspruchte Gegenstand nicht auf solche bestimmten Merkmale des DRAM oder PCM begrenzt.
  • In einer Ausführungsform kann eine Speichervorrichtung einen Hauptspeicher aufweisen, der mindestens eine Schnittstelle hat, um sich zum Beispiel über einen Bus mit mehreren Prozessoren zu verbinden. Bei einer Implementierung können solche Prozessoren einen Cache auf der Baugruppe (z. B. eingebetteten) enthalten. Solche Prozessoren können weiterhin ein Register wie etwa einen Adressenübersetzungspuffer (translation lookaside buffer, TLB), welche unten beschrieben ist. Mindestens ein Teil des Hauptspeichers kann persistenten Speicher aufweisen. Solch eine Speichervorrichtung kann weiterhin eine Speichersteuerung aufweisen, um Information aus einem persistenten Hauptspeicher abzurufen, um den auf der Baugruppe befindlichen Cache in den Mehrfachprozessoren, wie unten im Detail erläutert, zu initialisieren.
  • In einer anderen Ausführungsform kann ein Verfahren zur Verwendung einer bestimmten Speichervorrichtung ein gemeinsames Nutzen eines Hauptspeichers durch Mehrfachprozessoren aufweisen. Bei einer Implementierung können solche Prozessoren einen auf der Baugruppe befindlichen Cache aufweisen, der ein Register wie etwa ein TLB aufweist. Mindestens ein Teil des Hauptspeichers kann persistenten Speicher aufweisen. Solcher persistenter Speicher kann zum Beispiel PCM aufweisen.
  • Ein Verfahren zum Verwenden einer bestimmten Speichervorrichtung kann weiterhin ein Speichern von Information in solch einem persistenten Hauptspeicher aufweisen. Ein solches Speichern kann zum Beispiel auftreten während der Hauptspeicher und/oder einer oder mehrere der Mehrfachprozessoren spannungslos gemacht werden, nach dem eine TLB-Initialisierung auftreten kann wie unten erläutert.
  • Dementsprechend kann ein Verfahren zum Verwenden einer bestimmten Speichervorrichtung weiterhin ein Abrufen von gespeicherter Information aus persistentem Hauptspeicher aufweisen, um den TLB zu initialisieren.
  • Bei einer Implementierung kann ein TLB ein CPU-Cache aufweisen, der durch die Speicherverwaltungshardware benutzt wird, um zum Beispiel eine Übersetzungsgeschwindigkeit für virtuelle Adressen zu verbessern. Ein TLB kann als inhaltsadressierbarer Speicher (Content Addressable Memory, CAM) implementiert sein. In solch einem Fall kann ein CAM-Suchschlüssel eine virtuelle Adresse aufweisen und das Suchergebnis kann eine physikalische Adresse aufweisen. Falls zum Beispiel eine angeforderte Adresse in einem TLB vorhanden ist, kann eine CAM-Suche einen Treffer relativ schnell erreichen, was in einer abgerufenen physikalischen Adresse resultiert, die verwendet werden kann, um auf Speicher zuzugreifen. Falls jedoch die angeforderte Adresse nicht in einem TLB vorhanden ist, kann ein resultierender Prozess zum Beispiel ein Lesen von Inhalten von mehreren Speicherarten umfassen und mindestens einen Teil der gelesenen Inhalte verwenden, um eine physikalische Adresse zu bestimmen.
  • Im Allgemeinen können schreibende oder programmierende Prozesse verwendet werden, um Information in Speichervorrichtungen zu speichern, während ein Leseprozess verwendet werden kann, um gespeicherte Information abzurufen. Gespeicherte Information kann aus dem gesamten oder einem Teil der Speichervorrichtung gelöscht werden und/oder neue Information kann in die gesamte oder einen Teil einer Speichervorrichtung geschrieben werden. Relativ große Anzahlen von solchen Schreiben-Löschen-Zyklen und/oder Programmier-Umprogrammier-Zyklen können die physikalische Integrität eines PCM verschlechtern. Zum Beispiel können Tausende von Schreiben-Löschen-Zyklen, die einem Hauptspeicher aufgebürdet werden, der PCM beinhaltet, die Verlässlichkeit des Hauptspeichers reduzieren. Falls solch ein PCM-Speicher verwendet wird, kann es vorteilhaft sein die Anzahl des Auftretens von Schreiben-Löschen-Zyklen zu begrenzen und/oder zu reduzieren, oder ein ”Zyklieren”, dem ein PCM-Hauptspeicher ansonsten unterworfen werden kann. Dementsprechend kann in einer Ausführungsform eine Technik zum Verwalten von Zyklieren eines Hauptspeichers, der PCM beinhaltet, ein Cachen von Schreib-Information aufweisen. Somit kann der Cachespeicher, zusätzlich zum Bereitstellen der Vorteile einer verbesserten Prozessorsystemperformance in Begriffen von Geschwindigkeit und Effizienz, auch ein Verfahren zum Reduzieren von PCM-Zyklen bereitstellen, um eine Lebensdauer eines PCM-Hauptspeichers zu verlängern. Insbesondere kann eine Speichervorrichtung wie etwa ein DRAM-Cachespeicher verwendet werden, um Schreibinformation zu cachen, die mit bestimmten Adressen eines PCM-Hauptspeichers korrespondiert. Eine Speichergröße von solch einem DRAM-Cachespeicher kann zumindest teilweise basierend auf Eigenschaften des PCMs ausgewählt werden, der in dem Hauptspeicher enthalten ist. Solche Eigenschaften können zum Beispiel Spezifikationen eines Zyklierens von PCM, eine PCM-Fehlerrate, eine PCM-Schreibgeschwindigkeit, ein Schreibverwendungsmodell eines Systems, das einen PCM-Hauptspeicher eingebaut hat, aufweisen, und/oder es werden Verschleiß-Ausgleichs-Techniken beim PCM-Schreiben verwendet. Obwohl die bestimmte Verwendung von PCM genannt wird, kann solch eine Technik zum Verwalten eines Zyklierens eines Hauptspeichers, der irgendeine Anzahl von Speicherarten eingebaut hat, in ähnlicher Weise ein Cachen von Schreibinformation, wie oben beschrieben, aufweisen. Dementsprechend ist der beanspruchte Gegenstand in dieser Weise nicht auf solche Details beschränkt.
  • 1 ist ein schematisches Blockdiagramm eines Verarbeitungssystems 100 gemäß einer Ausführungsform. Das Verarbeitungssystem 100 kann eine CPU 110, einen Hauptspeicher 120 und/oder Cache 130 aufweisen. Insbesondere kann die CPU 110 eine oder mehrere Anwendungen bedienen, die in dem Hauptspeicher 120 gehalten werden. Obwohl es nicht in der 1 dargestellt ist, kann das Verarbeitungssystem 100 zusätzliche CPUs oder andere solche Verarbeitungseinheiten, zusätzliche Hauptspeicher und/oder zusätzliche Caches aufweisen. Zum Beispiel können die CPU 110, der Hauptspeicher 120 und/oder der Cache 130 kollektiv Funktionsbausteine für größere Mehrfachprozessorsysteme bilden. In einer Implementierung kann das Verarbeitungssystem 100 unter Verwendung einer Speicherhierarchie arbeiten, die eine oder mehrere Ebenen von Cachespeicher enthält. Jede solche Ebene kann persistenten Speicher aufweisen, der gemeinsam von mehreren CPUs verwendet wird. Der Cachespeicher kann zum Beispiel einen Cache erster Ebene und einen Cache zweiter Ebene aufweisen, wobei einer oder beide von diesen zumindest teilweise persistenten Speicher aufweisen können. Natürlich sind solche Details eines Verarbeitungssystems und Cachespeichers nur Beispiele und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt. In einer Ausführungsform kann zumindest ein Teil des Hauptspeichers 110 persistenten Speicher aufweisen. Bei einer bestimmten Implementierung kann ein anderer Teil des Hauptspeichers 110 andere Arten von Speicher aufweisen wie zum Beispiel flüchtigen DRAM. Teile von persistentem Speicher brauchen nicht zusammenhängend in dem Hauptspeicher 210 angeordnet sein, der zum Beispiel eine oder mehrere Chip-Strukturen aufweist.
  • 2 ist ein schematisches Blockdiagramm eines Mehrprozessorsystems 200 gemäß einer Ausführungsform. Solch ein Mehrprozessorsystem kann eine beliebige Anzahl von Verarbeitungseinheiten aufweisen, obgleich nur zwei solcher Einheiten in 2 dargestellt sind. In einem bestimmten Beispiel können solche Verarbeitungseinheiten eine erste CPU 210, die mit einem Cache 230 assoziiert ist, und eine zweite CPU 215, die mit einem Cache 235 assoziiert ist, aufweisen. Bei einer Implementierung kann die erste CPU 210 und die zweite GPU 215 jeweils einen lokalen Speicher (nicht dargestellt) enthalten, der zum Beispiel einen eingebetteten persistenten Speicher aufweist. Bei einer anderen Implementierung kann die erste CPU 210 und die zweite CPU 215 gemeinsam einen Hauptspeicher 250 nutzen, der persistenten Speicher enthält. Insbesondere kann der persistente Speicher in einer Speicherhierarchie enthalten sein, die Caches (z. B. verschiedene Ebenen an Cache) und Hauptspeicher aufweist. Zum Beispiel kann mindestens ein Teil von solchem Hauptspeicher PCM aufweisen. Solch eine Speicherhierarchie kann verwendet werden, um einen verteilten Speicher, der Caches und Hauptspeicher aufweist, zu verwalten. Die erste CPU 210 und die zweite CPU 215 (und andere CPUs, die zum Beispiel in einer Computerplattform vorhanden sein können), können solch einen verteilten Speicher gemeinsam nutzen. In solch einem Fall kann der persistente Speicher in einem one-hop Lokalspeicher, oder einem multihop verteilten und gemeinsam genutzten Speicher auf einer anderen (z. B. eine dritte) CPU oder eine Speicherhierarchie, die zum Beispiel gemeinsam von der ersten CPU 210 und der zweiten CPU 215 genutzt wird, enthalten sein.
  • Bei einer Implementierung kann das Mehrprozessorsystem 200 einen Teil einer Computer-Plattform aufweisen, wobei der Hauptspeicher 250 als virtueller Speicher, der mit einem Paging-Prozess assoziiert ist, verwendet werden kann. Bei solch einer Implementierung können sowohl der Cache 230 als auch der Cache 235 einen TLB aufweisen, der auf eine bestimmte Seitentabelle zeigen kann, die wiederum auf eine oder mehrere einzelne Seiten zeigen kann. Zum Beispiel kann der Cache 230, der einen TLB aufweist, auf die Seitentabelle 254 zeigen, und die Seitentabelle 254 kann wiederum auf die Seite 252 und die Seite 256 zeigen. Ebenso kann der Cache 235, der einen TLB aufweist, auf die Seitentabelle 264 zeigen und die Seitentabelle 264 kann wiederum auf die Seite 262, die Seite 266 und die Seite 268 zeigen. Bei einer bestimmten Implementierung können solche TLBs in einer CPU (z. B. Caches 230 und 235) ein Register aufweisen, das nicht persistent ist. Somit können zum Beispiel nach einem Ausschalten solche TLBs gespeicherte Information verlieren. Nach solch einem Abschalten können TLBs während eines Prozesses zum Booten von CPUs und/oder TLBs initialisiert werden. Bei einer Implementierung kann ein TLB ein Register aufweisen, das in einem Prozessor enthalten ist. Solch ein TLB kann zum Beispiel auf eine Basis einer Seitentabelle in dem Hauptspeicher zeigen. Solch ein TLB kann mit Zeigern auf den Hauptspeicher initialisiert werden. Der Prozessor kann Information verwenden, die in dem TLB für schnelles Nachschlagen gepflegt wird.
  • In einem Fall, wo solch ein TLB einen persistenten Speicher aufweist, braucht der TLB zum Beispiel nach einem Booten auf ein Abschalten hin nicht initialisiert zu werden. In einem Fall, wobei zumindest ein Teil des Hauptspeichers persistenten Speicher aufweist, kann der TLB initialisiert werden unter Verwendung von Information, die an einem bestimmten Ort des Hauptspeichers gespeichert ist. Wiederum kann eine derartige Initialisierung beim Booten, das auf ein Abschalten erfolgt, durchgeführt werden, obwohl der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. Zum Beispiel kann eine Technik zum Initialisieren eines TLBs ein Speichern einer Kopie der TLB-Information an einem bestimmten Ort in dem persistenten Hauptspeicher 250 umfassen. In solch einem Fall können nach der Initialisierung die einzelnen CPUs 210 und/oder 215 die jeweilige TLB-Information von einem bestimmten Ort in dem persistenten Hauptspeicher 250 in den mit dem Prozessor assoziierten TLB kopieren. Zum Beispiel kann nach der Initialisierung die CPU 210 TLB-Information von der Seite 270 in dem persistenten Hauptspeicher 250 in den mit dem Prozessor assoziierten TLB kopieren wie etwa dem Cache 230. Auch kann nach der Initialisierung die CPU 215 TLB-Information von der Seite 260 in dem persistenten Hauptspeicher 250 an den mit dem Prozessor assoziierten TLB kopieren wie etwa dem Cache 235. Nach dem Ausführen solch einer Technik kann der persistente Hauptspeicher 250 auch initialisiert werden. Ein Grund für solche Initialisierung kann sein, weil sobald ein TLB initialisiert wird, kann der persistente Hauptspeicher per Definition initialisiert werden wegen der Tatsache, dass eine Seitentabellenbasis und/oder Seitentabelleneinträge gültig und persistent in dem persistenten Speicher bleiben können. Selbstverständlich sind solche Details des Mehrfachprozessorsystems 200 nur Beispiele und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt.
  • 3 ist ein schematisches Diagramm eines Mehrkernsystems 300 gemäß einer Ausführungsform. Solch ein System kann Prozessorknoten 302, 304, 306 und 308 aufweisen, die miteinander zum Beispiel über einen oder mehrere Busse verbunden sind. Bei einer Implementierung kann das Mehrkernsystem 300 einen Mehrfachprozessor mit gemeinsam verwendetem Speicher aufweisen. Einzelne Prozessorknoten 302, 304, 306 und 308 können jeweils CPUs 310, 312, 314 bzw. 316, Cachespeicher 330, 332, 334 bzw. 336, und/oder lokale Speicher 320, 322, 324 bzw. 326, aufweisen. Innerhalb bestimmter Prozessorknoten können solche lokale Speicher Hauptspeicher aufweisen, die mit Prozessoren der bestimmten Prozessorknoten assoziiert sind. Der lokale Speicher 320 kann zum Beispiel einen Hauptspeicher aufweisen, der mit dem Prozessor 310 in dem Prozessorknoten 302 assoziiert ist. Bei einer Implementierung können lokale Speicher gemeinsam genutzt werden von, bzw. kann auf diese zugegriffen werden durch CPUs der anderen Prozessorknoten. Einer oder mehrere lokale Speicher 320, 322, 324 und 326 können alle oder mindestens teilweise einen persistenten Speicher aufweisen. Bei einer bestimmten Implementierung kann ein Teil des lokalen Speichers verschiedene Speicherarten aufweisen wie zum Beispiel ein flüchtiges DRAM. Teile eines persistenten Speichers brauchen nicht zusammenhängend in einem lokalen Speicher angeordnet sein, welcher zum Beispiel eine oder mehrere Chip-Strukturen aufweisen kann. Obwohl nicht dargestellt, können Prozessoreinheiten Speichersteuerungen enthalten, die zum Beispiel auf demselben Chip-Substrat wie die CPUs oder auf getrennten Chip-Substraten integriert sind. Ebenso, obwohl 3 ein System zeigt, das vier Knoten aufweist, kann jede beliebige Anzahl an Knoten enthalten sein und der beanspruchte Gegenstand ist nicht auf diese bestimmte Anordnung beschränkt.
  • Cachespeicher 330, 332, 334 und 336 können Speicher mit relativ hoher Geschwindigkeit zum Speichern einer Kopie der Information aufweisen, die von irgendeinem der lokalen Speicher 320, 322, 324 und 326 erhalten wird. Bei einer Implementierung kann mindestens ein Teil eines oder mehrerer Cachespeicher 330, 332, 334 und 336 persistenten Speicher aufweisen. Solch ein Cachespeicher kann unter Verwendung mindestens eines Teils einer Adresse von zum Beispiel einzelnen lokalen Speichern durchsucht werden. Solch ein Teil einer Speicheradresse, die zum Suchen von Cachespeicher verwendet wird, wird als ein Cache-Indexteil bezeichnet. Der Cachespeicher 330 kann zum Beispiel einen Cache-Indexteil und einen Cachedatenteil aufweisen. Der Cache-Indexteil kann Zeilenadressen von Information, die in dem Cachespeicher 330 gespeichert ist, und Cache-Zustandsinformation wie oben beschrieben enthalten. Natürlich sind solche Details eines Mehrkernsystems nur Beispiele, und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt.
  • 4 ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform eines Computersystems 400, das eine Speichervorrichtung 410 enthält, veranschaulicht. Eine Rechenvorrichtung 404 kann repräsentativ sein für jede Vorrichtung, Gerät oder Maschine, die konfigurierbar ist um die Speichervorrichtung 410 zu verwalten. Die Speichervorrichtung 410 kann eine Speichersteuerung 415 und einen Speicher 422 enthalten. Beispielsweise aber nicht begrenzend, kann die Rechenvorrichtung 404 enthalten: eine oder mehrere Rechenvorrichtungen und/oder Plattformen, wie zum Beispieleinen Desktopcomputer, einen Laptopcomputer, eine Arbeitsstation, eine Servervorrichtung oder Ähnliches; eine oder mehrere Personalcomputer- oder Kommunikationsvorrichtungen oder Geräte, wie zum Beispiel, einen persönlichen digitalen Assistenten, eine mobile Kommunikationsvorrichtung oder Ähnliches; ein Computersystem und/oder assoziierte Service-Providerfähigkeit wie zum Beispiel eine Datenbank oder Datenspeicherdienste-Provider/System; und/oder irgendeine Kombination davon.
  • In einer Ausführungsform kann die Rechenvorrichtung 404 eine oder mehrere Verarbeitungseinheiten 420 enthalten, die operativ an einen Speicher 422 durch einen Bus 440 und einem Host oder einer Speichersteuerung 415 gekoppelt sein. Die Verarbeitungseinheit 420 ist repräsentativ für eine oder mehrere Schaltungen, die konfigurierbar sind, um zumindest einen Teil einer Datenverarbeitungsprozedur oder eines Prozesses durchzuführen. Beispielsweise aber nicht begrenzend kann die Verarbeitungseinheit 420 einen oder mehrere Prozessoren, Steuerungen Mikroprozessoren, Microcontroller, anwendungsspezifische Integrierte Schaltungen, digitale Signalprozessoren, programmierbare logische Vorrichtungen, Feldprogrammierbare Gate-Arrays und der gleichen, oder irgendeine Kombination davon aufweisen. Die Verarbeitungseinheit 420 kann mit der Speichersteuerung 415 kommunizieren, um speicherbezogene Operationen zu verarbeiten, wie zum Beispiel Lesen, Schreiben und/oder Löschen, so wie zum Beispiel oben diskutierte Speicherpartitionsprozesse. Die Verarbeitungseinheit 420 kann ein Betriebssystem enthalten, das eingerichtet ist zum Kommunizieren mit der Speichersteuerung 415. Solch ein Betriebssystem kann zum Beispiel Befehle erzeugen, die an die Speichersteuerung 415 über den Bus 440 zu senden sind. Solche Befehle können zum Beispiel Lese-/Schreibanweisungen enthalten.
  • Der Speicher 422 ist repräsentativ für jeden beliebigen Datenspeichermechanismus. Der Speicher 422 kann zum Beispiel ein DRAM 424 und/oder einen persistenten Speicher 426 aufweisen. In einer bestimmten Ausführungsform kann der Speicher 422 einen Hauptspeicher, der zumindest ein Teil persistenten Speicher enthält, wie oben beschrieben aufweisen. Der Speicher 422 kann auch Cachespeicher, der in gleicher Weise zumindest teilweise persistenten Speicher enthalten kann, aufweisen. Während in diesem Beispiel es als von der Verarbeitungseinheit 420 getrennt veranschaulicht ist, versteht es sich, dass der Gesamte oder ein Teil des DRAMs 424 innerhalb oder in anderer Weise neben der Verarbeitungseinheit 420 angeordnet, oder mit der Verarbeitungseinheit 420 gekoppelt bereitgestellt sein kann.
  • Gemäß einer Ausführungsform kann ein oder können mehrere Teile des Speichers 422 Signale speichern, die für Daten und/oder Information repräsentativ sind wie durch einen bestimmten Zustand des Speichers 422 ausgedrückt. Zum Beispiel kann ein elektronisches Signal, das für Daten und/oder Information repräsentativ ist, in einem Teil des Speichers 422 ”gespeichert” werden durch Einwirken oder Ändern des Zustands solcher Teile des Speichers 422, um Daten und/oder Information als Binärinformation (z. B., Einsen und Nullen) zu repräsentieren. Als solches stellt in einer bestimmten Implementierung solch eine Zustandsänderung des Teils des Speichers, um ein Signal, das für Daten und/oder Information repräsentativ ist, zu speichern, eine Transformation des Speichers 422 zu einem unterschiedlichen Zustand oder einer anderen Sache dar.
  • In einer Ausführungsform kann das System 400 zwei oder mehrere Verarbeitungseinheiten 420 und Hauptspeicher, der mindestens eine Schnittstelle hat, um sieh mit solchen Mehrfachprozessoren, die Cache auf der Baugruppe haben, (z. B. über Bus 440 an Verarbeitungseinheiten 420) zu verbinden, wobei mindestens ein Teil des Hauptspeichers persistenten Speicher aufweisen kann. Das System 400 kann weiterhin eine Speichersteuerung aufweisen, um Information von solch einem persistenten Hauptspeicher abzurufen, um den auf der Baugruppe befindlichen Cache zu initialisieren. Solch ein persistenter Speicher kann zum Beispiel PCM aufweisen.
  • Die Rechenvorrichtung 404 kann zum Beispiel eine Eingabe/Ausgabe 432 aufweisen. Die Eingabe/Ausgabe 432 ist repräsentativ für eine oder mehrere Vorrichtungen oder Einrichtungen, die konfigurierbar sein können zum Empfangen oder auf andere Weise zum Zuführen menschlicher und/oder maschineller Eingaben, und/oder einer oder mehrere Vorrichtungen oder Einrichtungen, die konfigurierbar sein können zum Abgeben oder auf andere Weise Bereitstellen von Ausgaben für Mensch und/oder Maschine. Beispielsweise aber nicht begrenzend kann die Eingabe/Ausgabe-Vorrichtung 432 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Berührungsbildschirm, Datenanschluss, usw. aufweisen.
  • Während es veranschaulicht und beschrieben worden ist, was gegenwärtig als beispielhafte Ausführungsformen betrachtet wird, versteht der Fachmann, dass verschiedene andere Modifizierungen gemacht werden können und Äquivalente können ersetzt werden ohne von dem beanspruchten Gegenstand abzuweichen. Zusätzlich können Modifikationen gemacht werden um eine bestimmte Situation der Lehren des beanspruchten Gegenstandes anzupassen ohne von dem zentralen hierin beschriebenen Konzept abzuweichen. Deswegen ist es beabsichtigt, dass der beanspruchte Gegenstand nicht auf die bestimmten offenbarten Ausführungsformen beschränkt ist, sondern, dass solch ein beanspruchter Gegenstand auch alle Ausführungsformen enthalten kann, die innerhalb des Bereichs der beigefügten Ansprüche und der Äquivalente davon fallen.

Claims (20)

  1. Speichervorrichtung aufweisend: eine Speichersteuerung, die eingerichtet ist, um mit einem Hauptspeicher zu kommunizieren, der von mehreren Cache aufweisenden Prozessoren gemeinsam genutzt wird, wobei die Speichersteuerung weiterhin eingerichtet ist, um Information aus dem Hauptspeicher abzurufen, um den in den mehreren Prozessoren enthaltenen Cache zu initialisieren, wobei mindestens ein Teil des Hauptspeichers persistenten Speicher aufweist.
  2. Speichervorrichtung nach Anspruch 1, wobei der Cache einen Adressenübersetzungspuffer (translation lookaside buffer, TLB) aufweist.
  3. Speichervorrichtung nach Anspruch 2, wobei die Information Anfangswerte für den TLB aufweist.
  4. Speichervorrichtung nach Anspruch 1, wobei die mehreren Prozessoren jeweils eingebetteten Speicher enthalten, wobei mindestens einer der mehreren Prozessoren den Hauptspeicher enthält.
  5. Speichervorrichtung nach Anspruch 1, wobei der Hauptspeicher einen einzelnen Hauptspeicher aufweist, der von den mehreren Prozessoren gemeinsam genutzt wird.
  6. Speichervorrichtung nach Anspruch 1, wobei die mehreren Prozessoren mehrere Verarbeitungssysteme umfassen.
  7. Speichervorrichtung noch Anspruch 1, weiterhin aufweisend: eine Speicherhierarchie, die eine oder mehrere Ebenen von Cachespeicher enthält, der von den mehreren Prozessoren gemeinsam genutzt wird.
  8. Speichervorrichtung nach Anspruch 7, wobei mindestens ein Teil der einen oder der mehreren Ebenen des Cachespeichers persistenten Speicher aufweist.
  9. Speichervorrichtung noch Anspruch 1, wobei der persistente Speicher einen Phasenänderungsspeicher (phase change memory, PCM) aufweist.
  10. Speichervorrichtung noch Anspruch 1, wobei der Cache einen auf einer Baugruppe befindlichen Cache aufweist.
  11. Verfahren aufweisend: Abrufen von Information aus einem Hauptspeicher, der von mehreren Prozessoren, die einen auf einer Baugruppe befindlichen Cache aufweisen, gemeinsam genutzt wird; und Laden der Information in den auf der Baugruppe befindlichen Cache, um den auf der Baugruppe befindlichen Cache zu initialisieren, wobei mindestens ein Teil des Hauptspeichers persistenten Speicher aufweist.
  12. Verfahren nach Anspruch 11, wobei der Cache einen Adressenübersetzungspuffer (translation lookaside buffer, TLB) aufweist.
  13. Verfahren nach Anspruch 12, wobei die Information Anfangswerte für den TLB aufweist.
  14. Verfahren nach Anspruch 11, wobei die mehreren Prozessoren jeweils eingebetteten Speicher enthalten, wobei mindestens einer der mehreren Prozessoren den Hauptspeicher enthält.
  15. Verfahren nach Anspruch 11, wobei der Hauptspeicher einen einzelnen Hauptspeicher aufweist, der von den mehreren Prozessoren gemeinsam genutzt wird.
  16. Verfahren nach Anspruch 11, weiterhin aufweisend: Verwalten des Hauptspeichers in einer Speicherhierarchie, die eine oder mehrere Ebenen von Cachespeicher enthält, der von den mehreren Prozessoren gemeinsam genutzt wird.
  17. Verfahren nach Anspruch 11, wobei der persistente Speicher einen Phasenänderungsspeicher (phase change memory, PCM) aufweist.
  18. System aufweisend: eine Mehrzahl an Verarbeitungseinheiten zum Bedienen von einer oder mehreren Anwendungen, wobei einzelne der Verarbeitungseinheiten einen auf einer Baugruppe befindlichen Cache enthalten; ein Hauptspeicher, der mindestens eine Schnittstelle aufweist, um sich mit der Mehrzahl an Verarbeitungseinheiten zu verbinden, wobei mindestens ein Teil des Hauptspeichers persistenten Speicher aufweist; und eine Speichersteuerung, um Information aus dem persistenten Hauptspeicher abzurufen, um den auf einer Baugruppe befindlichen Cache in den mehreren Prozessoren zu initialisieren.
  19. System nach Anspruch 18, wobei der auf einer Baugruppe befindliche Cache einen Adressenübersetzungspuffer (translation lookaside buffer, TLB) aufweist.
  20. System nach Anspruch 19, wobei die Information Anfangswerte für den TLB aufweist.
DE102011076894.7A 2010-06-09 2011-06-01 Persistenter Speicher für einen Hauptspeicher eines Prozessors Active DE102011076894B9 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
USUS,12/797,512 2010-06-09
US12/797,512 US8694737B2 (en) 2010-06-09 2010-06-09 Persistent memory for processor main memory

Publications (3)

Publication Number Publication Date
DE102011076894A1 true DE102011076894A1 (de) 2011-12-15
DE102011076894B4 DE102011076894B4 (de) 2018-05-24
DE102011076894B9 DE102011076894B9 (de) 2018-12-20

Family

ID=45020213

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011076894.7A Active DE102011076894B9 (de) 2010-06-09 2011-06-01 Persistenter Speicher für einen Hauptspeicher eines Prozessors

Country Status (6)

Country Link
US (3) US8694737B2 (de)
JP (1) JP5752989B2 (de)
KR (1) KR101359813B1 (de)
CN (1) CN102331974B (de)
DE (1) DE102011076894B9 (de)
TW (1) TWI506435B (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626997B2 (en) * 2009-07-16 2014-01-07 Micron Technology, Inc. Phase change memory in a dual inline memory module
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
US9507534B2 (en) * 2011-12-30 2016-11-29 Intel Corporation Home agent multi-level NVM memory architecture
CN103838746B (zh) * 2012-11-21 2017-05-31 杭州海康威视数字技术股份有限公司 多cpu系统共享存储数据的方法及该系统
CN103838676B (zh) * 2012-11-22 2017-10-17 华为技术有限公司 数据存储系统、数据存储方法及pcm桥
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
US9195614B2 (en) 2013-01-08 2015-11-24 International Business Machines Corporation Instantaneous save/restore of virtual machines with persistent memory
US9367472B2 (en) * 2013-06-10 2016-06-14 Oracle International Corporation Observation of data in persistent memory
WO2014209394A1 (en) * 2013-06-28 2014-12-31 Hewlett-Packard Development Company, L.P. Fault tolerance for persistent main memory
KR101635665B1 (ko) * 2013-10-31 2016-07-01 주식회사 엘지화학 응용 모듈 데이터제어장치 및 그 데이터제어방법
US10621330B2 (en) 2014-03-28 2020-04-14 Hewlett-Packard Development Company, L.P. Allowing use of a test key for a BIOS installation
US10922228B1 (en) 2015-03-31 2021-02-16 EMC IP Holding Company LLC Multiple location index
US10210087B1 (en) 2015-03-31 2019-02-19 EMC IP Holding Company LLC Reducing index operations in a cache
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
US20170123796A1 (en) * 2015-10-29 2017-05-04 Intel Corporation Instruction and logic to prefetch information from a persistent memory
US10248571B2 (en) * 2016-08-11 2019-04-02 Hewlett Packard Enterprise Development Lp Saving position of a wear level rotation
US11216396B2 (en) 2016-09-29 2022-01-04 Intel Corporation Persistent memory write semantics on PCIe with existing TLP definition
CN108334331B (zh) * 2018-02-08 2021-05-25 苏州妙益科技股份有限公司 一种安全的电动汽车电池管理系统软件升级方法
US11544197B2 (en) 2020-09-18 2023-01-03 Alibaba Group Holding Limited Random-access performance for persistent memory

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0358163A (ja) 1989-07-26 1991-03-13 Nec Corp 疎結合型マルチプロセッサシステム
JPH06150031A (ja) 1992-10-30 1994-05-31 Nec Corp Cpuモジュール
US5442704A (en) 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
JPH0816470A (ja) 1994-07-04 1996-01-19 Hitachi Ltd 並列計算機
JP3320562B2 (ja) 1994-09-22 2002-09-03 株式会社東芝 キャッシュメモリを有する電子計算機
JP3210590B2 (ja) 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JPH10171676A (ja) * 1996-12-10 1998-06-26 Toshiba Corp マイクロプロセッサのテスト容易化回路
US6516384B1 (en) 1999-12-30 2003-02-04 Intel Corporation Method and apparatus to perform a round robin and locking cache replacement scheme
US6452823B1 (en) 2001-01-31 2002-09-17 Motorola, Inc. Non-volatile magnetic cache memory and method of use
US6760819B2 (en) * 2001-06-29 2004-07-06 International Business Machines Corporation Symmetric multiprocessor coherence mechanism
KR20040015818A (ko) 2001-07-18 2004-02-19 마츠시타 덴끼 산교 가부시키가이샤 기입장치, 반도체 메모리 카드, 기입프로그램 및 기입방법
US6658539B2 (en) 2001-10-16 2003-12-02 International Business Machines Corporation Super-coherent data mechanisms for shared caches in a multiprocessing system
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US6892283B2 (en) 2002-12-05 2005-05-10 International Business Machines Corporation High speed memory cloner with extended cache coherency protocols and responses
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
JP4241175B2 (ja) 2003-05-09 2009-03-18 株式会社日立製作所 半導体装置
US20050080999A1 (en) 2003-10-08 2005-04-14 Fredrik Angsmark Memory interface for systems with multiple processors and one memory system
US20050160229A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for preloading translation buffers
US7644287B2 (en) 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7240137B2 (en) * 2004-08-26 2007-07-03 International Business Machines Corporation System and method for message delivery across a plurality of processors
US7451166B2 (en) 2005-01-13 2008-11-11 International Business Machines Corporation System and method for maintaining checkpoints of a keyed data structure using a sequential log
CN101180612A (zh) 2005-03-31 2008-05-14 日本电气株式会社 计算机系统、存储器管理方法及其程序
US20060265544A1 (en) 2005-05-17 2006-11-23 John Rudelic Internally authenticated flash remediation
JP2006323739A (ja) 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
US7389402B2 (en) * 2005-06-07 2008-06-17 Advanced Micro Devices, Inc. Microprocessor including a configurable translation lookaside buffer
US20070226795A1 (en) 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
WO2007105256A1 (ja) 2006-02-24 2007-09-20 Fujitsu Limited マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
WO2008040028A2 (en) 2006-09-28 2008-04-03 Virident Systems, Inc. Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
US7827360B2 (en) 2007-08-02 2010-11-02 Freescale Semiconductor, Inc. Cache locking device and methods thereof
CN100492274C (zh) 2007-08-17 2009-05-27 杭州华三通信技术有限公司 存储控制系统及其处理节点
US8015365B2 (en) 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US8055847B2 (en) 2008-07-07 2011-11-08 International Business Machines Corporation Efficient processing of data requests with the aid of a region cache
US8250350B2 (en) * 2008-08-26 2012-08-21 Texas Digital And Multimedia Systems Computer system with non-volatile write-protected memory based operating system and secure system architecture
KR101038167B1 (ko) * 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
TW201017421A (en) 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
US8261019B2 (en) * 2009-02-13 2012-09-04 Oracle America, Inc. Conveying critical data in a multiprocessor system
US8250282B2 (en) * 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US8180981B2 (en) 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US8291175B2 (en) 2009-10-16 2012-10-16 Oracle America, Inc. Processor-bus attached flash main-memory module
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory

Also Published As

Publication number Publication date
US20150309931A1 (en) 2015-10-29
JP2011258189A (ja) 2011-12-22
US9384134B2 (en) 2016-07-05
KR101359813B1 (ko) 2014-02-07
TWI506435B (zh) 2015-11-01
US9075725B2 (en) 2015-07-07
KR20110134840A (ko) 2011-12-15
US20140223103A1 (en) 2014-08-07
US20110307665A1 (en) 2011-12-15
TW201227300A (en) 2012-07-01
JP5752989B2 (ja) 2015-07-22
DE102011076894B9 (de) 2018-12-20
US8694737B2 (en) 2014-04-08
CN102331974A (zh) 2012-01-25
DE102011076894B4 (de) 2018-05-24
CN102331974B (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
DE102011076894B4 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE102011076895B4 (de) Cachekohärenzprotokoll für persistente Speicher
DE112011106032B4 (de) Energieeinsparung durch Speicherkanal-Abschaltung
DE102013022712B4 (de) Virtuelle Speicherstruktur für Coprozessoren, die Speicherallokationsbegrenzungen haben
DE102019105879A1 (de) Verwaltung von kohärenten Verknüpfungen und Mehr-Ebenen-Speicher
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen
DE102014003668A1 (de) Befehle zum markieren des anfangs und endes eines nicht- transaktionsorientierten codegebiets, das ein zurückschreiben zu einer persistenten ablage erfordert
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE102007032307A1 (de) Dedizierter Mechanismus zur Seitenabbildung in einer GPU
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE112018006329T5 (de) Speichervorrichtungen, systeme und verfahren zum aktualisieren von firmware mit einer einzelnen speichervorrichtung
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE102013205886A1 (de) Dynamische Bankmodus-Adressierung für Speicherzugriff
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
WO2013110736A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE112017001658T5 (de) Behandlung von fehleranfälligen Cache-Zeilen-Slots eines speicherseitigen Caches eines Multilevel-Systemspeichers
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE112004000694B4 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
DE102022119777A1 (de) VERFAHREN ZUM MINIMIEREN VON MEHRAUFWAND BEI DETEKTION VON HEIßEN/KALTEN SEITEN BEI LAUFENDEN ARBEITSLASTEN
DE112018000842T5 (de) Mehrkern-on-die-speichermikrocontroller
DE102022121773A1 (de) In-memory-assoziativverarbeitungssystem
DE102018204931A1 (de) Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R019 Grant decision by federal patent court
R020 Patent grant now final