-
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.
-
Figurenliste
-
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 weist ein Teil eines solchen Hauptspeichers und Cachespeichers einen persistenten Speicher auf. Zum Beispiel kann ein Hauptspeicher und 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 nichtsymmetrische 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 Speicherorten 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 SchreibInformation 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 CPU 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 sich 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.