-
HINTERGRUND
-
Computersysteme verwenden Hauptspeicher oder RAM (Random Access Memory) für den Zugriff während des Programm-(Anwendungs-)ablaufs und Plattenspeicher (Massenspeicher) normalerweise zum Speichern/Abrufen ganzer Programme und Schreiben von Dateien, die auch nach der aktuellen Nutzung gespeichert werden sollen. Oft sind diese Arten als flüchtige und nicht-flüchtige Speicher gekennzeichnet, was sich auf den Bedarf der ständigen Netzspannung zum Erhalt gespeicherter Werte im Hauptspeicher bezieht, während der Plattenspeicher für die langlebige Speicherung von Programmen und Daten verwendet wird. Auch die Zugriffsmethoden auf diese Arten sind unterschiedlich, da der flüchtige Speicher durch Programmanweisungen erreicht wird, während der Plattenspeicher sich auf das Input-/Output (I/O)-Teilsystem des Computers verlässt. Während der flüchtige Speicher im Allgemeinen schneller ist, wird dieser Speicher als ein einziger Block homogener Speicherorte bezeichnet, sodass ein Speicher-Controller-Hub von zufällig verfügbaren Orten ähnlicher Betriebsleistung aus speichert und abruft.
-
DE 10 2008 036 822 A1 zeigt ein SSD-Speichersystem mit einer Steuereinheit und zwei Speicherschichten, wobei die Steuereinheit dazu ausgebildet ist eine erste Bestimmung durchzuführen, ob empfangene Daten heiße Daten oder kalte Daten sind und die Daten gemäß der ersten Bestimmung in die erste oder zweite Speicherschicht zu speichern.
-
WO 2013/048518 A1 zeigt einen Speichercontroller, der in der Lage ist, den Betrieb eines Speichersystems gemäß gemessener thermischer Bedingungen, insbesondere in einem Speicherstapel, anzupassen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Vorgenanntes und sonstige Gegenstände, Merkmale und Vorteile der Erfindung werden mit der nachfolgenden Beschreibung besonderer Darstellungen der Erfindung deutlich, wie in den enthaltenen Zeichnungen illustriert, in denen gleiche Zeichen sich in den unterschiedlichen Ansichten auf die gleichen Teile beziehen. Die Zeichnungen nicht sind notwendigerweise maßstäblich, die Betonung ist stattdessen generell auf die Veranschaulichung der Prinzipien der Erfindung gelegt worden.
- 1 ist ein Kontextdiagramm des Umfelds eines Computerspeichers für die Verwendung mit den hier angegebenen Konfigurationen;
- 2 ist ein Ablaufplan des Speicherzugriffs in dem Umfeld des Computerspeichers von 1;
- 3a-3d sind eine Berechnung und ein Datenfluss zur Darstellung einer Heuristik des Speicherzugriffs der Umgebung von 1; und
- 4 zeigt eine Stapelimplementierung von Speicherbereichen in der Umgebung von 1.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die Erfindung ist in den unabhängigen Ansprüchen angegeben. Vorteilhafte Ausgestaltungen sind den Unteransprüchen zu entnehmen.
-
Ein Speicher-Controller für den selektiven Speicherzugriff auf Bereiche flüchtigen und nicht-flüchtigen Speichers, jeder weist unterschiedliche Merkmale auf, setzt verschiedene Speicherkapazitäten ein, wodurch z. B. die Zugangsgeschwindigkeit, die Retentionsdauer und der Stromverbrauch variiert wird. Verschiedene Speicherbereiche haben verschiedene Merkmale, sind jedoch für Anwendungen als ein einziger durchgängiger, abrufbarer Speicherbereich. Der Speicher-Controller wendet eine Betriebsart an, die operative Prioritäten für einen Rechner erkennt, z. B. Geschwindigkeit, Energieeinsparung oder Effizienz (d. h. Reduzieren der Hitze/der Stromaufnahme). Der Speicher-Controller erkennt einen Speicherbereich durch eine erwartete Nutzung der gespeicherten Daten, z. B. eine Zugriffshäufigkeit, die Anzeigt, wann die Daten abgerufen werden. Auch weitere Faktoren können verwendet werden, wie z. B. Sensoren oder Zähler zur Erkennung häufig verwendeter Speicherbereiche, was zu Temperaturproblemen führen kann. Somit tritt der Speicher für Anwendungen als eine durchgängige Speicherbank auf, sodass die Anwendungen den Bereich nicht identifizieren müssen (im Gegensatz zu herkömmlichen flüchtigen/nicht-flüchtigen Zugriffsanweisungen). Der Speicher-Controller wählt Speicherbereiche auf Grund der Betriebsart und der erwarteten Nutzung gemäß einer Heuristik aus, die Speicherbereiche auf der Grundlage dieser Merkmale, die der erwarteten Datennutzung am ehesten entsprechen, begünstigt.
-
Wahrscheinlich wird DRAM durch Byte-adressierbaren, nicht-flüchtigen Speicher (NVM) verlegt, u. a. ferroelektrischen Random-Access Memory (FeTRAM), nicht-flüchtigen Nanodraht-Speicher, dreidimensionalen (3D)-Koppelpunktspeicher, wie z. B. Phasenwechselspeicher (PCM), Speicher mit Memristor-Technik, magneto-resistive Random-Access-Memory (MRAM) und Spin Transfer Torque (STT)-MRAM. Diese NVM sowie flüchtiger Speicher wie Dynamic Random Access Memory (DRAM) können für eine große Bandweite an Retentionsdauern eingestellt und gefertigt werden (von Mikrosekunden bis hinzu Jahren der Informationsspeicherung). Ähnlich große Bereich für Leistungs- oder Strombetriebspunkte dieser Speichertechnologien reichen von tief eingebetteten Nutzungen mit geringer Leistung bis zu Hochleistungen, wobei z. B. die Retentionsdauer und die thermische Belastung (z. B. Hitze) gegen bessere Leistung getauscht werden kann. Die hier angesprochenen Konfigurationen nutzen unterschiedliche Leistungen, Retentionsdauern und thermisch optimierte Speicherbereiche,um sich Betriebspunkten des Systems dynamisch anpassen zu können, wie z. B. die längste Standby-Dauer auf Akku, hohe Reaktionsfähigkeit während der aktiven Phasen und beste Spitzenleistung.
-
Speicherbereiche (flüchtig und/oder nicht-flüchtig) können auf jede beliebige Art angeordnet werden, zum Beispiel in einem Würfel, gestapelt (in Paketen) oder in getrennten Paketen. Weiterhin können diese Methoden mit jeder geeigneten Speichertechnologie verwendet werden, die der Merkmalerkennung und dem selektiven Abruf auf Grund der Merkmale entspricht. Der Speicher-Controller (MC) spielt eine zentrale Rolle bei der Koordinierung des Zugriffs auf die Auswahl an Speicherbereichen zur Datenspeicherung, da die Bereiche entweder statisch (z. B. bei der Herstellung) oder dynamisch z. B. durch Konfiguration von Spannungsschienen optimiert werden können. Zu den neuen Funktionen des MC zählt u. a. das selbständige Bewegen von Daten zwischen Speicherbereichen auf Grund einer Sensoreingabe, statistische Zähler und Zeituhren, sodass die Speicherzugriffe entsprechend einer üblichen Betriebsart (wie z. B. beste Leistung oder geringster Stromverbrauch) bestens bedient werden können. Eine solche Lösung bietet eine engmaschige Kontrolle über die Spannungsversorgung/Thermik, Leistung und Retentionsdauer des Speicher-Teilsystems.
-
Herkömmliche MC behandelten den Speicher als einen homogenen Bereich mit vorgegebenen, statischen Eigenschaften für Leistung und Effizienz. Thermische Vorkommnisse führen zu einer Einschränkung der Zugriffe auf diesen Speicherbereich mit einer negativen Auswirkung auf die Leistung, da die Zugriffe nicht an andere Speicherbereiche abgegeben werden können. Bei herkömmlichen Ansätzen wird die Retentionsdauer zurzeit nicht als Planziel erachtet, da das gesamte Speicher-Teilsystem als flüchtig erachtet wird. Herkömmliche Leistungsstadien für den Speicher sind grobmaschig und funktionieren nur auf dem gesamten homogenen Speicherbereich und werden selten neu konfiguriert (wenn überhaupt).
-
Speicher-Teilsysteme mit heterogenen Kapazitäten werden erweitert und beinhalten dann Technologien wie DRAM, DRAM und NVM gleichzeitig mit flüchtigem RAM. Die aktuelle Entwicklung des persistenten Speichers liefert dem Programmierer als persistente Schicht in der Plattformarchitektur von Byte-adressierbaren Lade-/Speicher-NVM Allerdings muss der Programmierer die herkömmlichen Daten entweder in einen flüchten oder persistenten Speicher/nicht-flüchtigen Speicher einfügen, um verschiedene Betriebspunkte zu bearbeiten. Zusätzlich gibt der herkömmliche persistente Speicher nur eine Ebene der Retentionsdauer (unbegrenzt) vor und ermöglicht nicht die Einstellung eines Austauschs zwischen Retentionsdauer für Leistungs- und thermischen Eigenschaften.
-
Die hier angegebenen Konfigurationen beruhen einerseits auf der Beobachtung, dass die herkömmlichen Ansätze für adressierbaren Speicher einen monolithischen Block aufeinanderfolgender Adressen festlegen. Herkömmliche Speicher-Controller greifen auf den Speicher als homogenen Speicherbereich zu, der den Speicher nicht hinsichtlich der Leistungs- oder Effizienzmerkmale unterscheidet oder danach teilt. Leider leiden herkömmliche Ansätze des Speicherzugriffs mithilfe des Speicher-Controllers darunter, dass nur eine Schicht oder Kategorie der nicht-flüchtigen Speicherung angeboten wird und hinsichtlich der Anwendungen muss entweder der flüchtige oder nicht-flüchtige (z. B. Platte) Speicher gewählt werden.
-
Entsprechend bewältigen die hier angegebenen Konfigurationen die oben beschriebenen Mängel des Speicherzugriffs bei Weitem, indem sie eine heterogene Anordnung verschiedener Bereiche oder Teile des Speichers bieten und jeder Bereich verschiedene Merkmale für Funktionen wie z. B. Zugangsgeschwindigkeit (Leistung), Retentionsdauer und Stromverbrauch besitzt. Ein Speicher kann zur Datenspeicherung auf Grund einer erwarteten Datennutzung und eines erkannten Bedarfs für besondere Merkmale gewählt werden. So können z. B. häufig genutzte Daten oder ein Teilbereich für schnelle Reaktionen in einem schnell abrufbaren Speicherbereich gelagert werden, während Daten, die wahrscheinlich länger nicht benötigt werden, in einem Bereich der langfristigen Retention gespeichert werden können, da ein langsamerer Zugriff möglich ist.
-
In hier angegebenen Konfigurationen kontrolliert und wählt der Speicher-Controller (MC) einen Speicherbereich, der sich durch Merkmale wie z. B. Leistung, Retentionsdauer und Energieeffizienz unterscheidet. Der MC kann die Betriebspunkte der Speicherbereiche entsprechend den Plattform-Vorgaben für die Merkmale Leistung, Effizienz und Retentionsdauer und auf Grund der Sensoreingabe (wie z. B. thermische Auswirkungen), statistische Zähler (z. B. Zugangshäufigkeit und Adressverteilung) und weiteren Faktoren wie z. B. Timeout-Zähler einstellen. Die Zugriffsheuristik des MC kann diese unterschiedlichen Betriebsarten nutzen. Zudem kann der MC Inhalte/Daten auf Grund der oben genannten Tast- und Statistik-/Messeingabe von einem Speicherbereich in einen anderen verlagern, um das Gesamtverhalten des Speicher-Teilsystems entsprechend einer Plattform-Vorgabe zu verbessern. Die heuristische Logik setzt Zugriffstechniken ein, die iterative Feedback-Bewertung verwenden, um die Leistung und die Beziehung von Merkmalen zu geeigneten oder am besten passenden Speicherbereichen zu verbessern.
-
Der Speicher kann in Leistungs- und Energiebereiche unterteilt werden oder in Bereiche mit höherer Retentionsdauer während der Produktion durch Schaltarchitektur oder dynamisch während der Laufzeit, falls die Schaltarchitektur ausreichend flexibel ist, um die Merkmale der verschiedenen Bereiche zu ändern.
-
Der erkannte Speicher-Controller unterscheidet sich von einem Pufferspeicher-Controller dahingehend, dass er die verschiedenen Bereiche im Pufferspeicher nicht auf Grund der erwarteten Nutzung auswählt; alle Daten können auf Grund der gleichen Kriterien zwischengespeichert werden, normalerweise die zuletzt oder am häufigsten verwendeten. Weiterhin unterscheidet sich der erkannte Speicher-Controller von Strukturen, die nur über die flüchtige und nicht-flüchtige Speicherung verfügen, da Zugriffe auf die flüchtige und nicht-flüchtige Speicherung eindeutig vorgegeben sind, z. B. durch variable Zuordnung oder eine Datei-Operation. Während die Wahl zwischen der herkömmlichen flüchtigen und nicht-flüchtigen Speicherung normalerweise entsprechend der Datenverwendung Anwenderbedingt ist, haben die Anwendungen keine Kontrolle über die nicht-flüchtige Speicherung und ein herkömmlicher Speicher-Controller teilt den Speicher nur als einen homogenen flüchtigen Speicherblock zu. Zudem wird darauf hingewiesen, dass der hier dargelegte Vorgang und die Ansätze ebenso auf eine Architektur mit einer Vielzahl von Speicher-Controllern in einer hierarchischen oder parallelen Anordnung angewandt werden können. Deshalb wird durch die Speicheroperation die Wahl eines Speicherbereichs gefordert. Die Zuteilung zu einem bestimmten Bereich erfolgt nicht auf Grund einer erwarteten Nutzung.
-
1 ist ein Kontextdiagramm des Umfelds eines Computerspeichers für die Verwendung mit den hier angegebenen Konfigurationen; In Hinblick auf 1 kontrolliert ein Speicher-Controller 110 in einer Speicherumgebung 100 den Zugriff zum Speicher 120.
-
Der Speicher-Controller 110 reagiert auf einen oder mehrere CPU 130 für die Anfragen 132 und liefert die Antworten 134, um Datenelemente (Daten) zu speichern oder abzurufen. Der CPU 130 reagiert ebenso auf einer Benutzeranzeige und GUI (Graphical User Interface) 140, um Benutzereingaben zu empfangen und Ergebnisse für die ausgeführten Anwendungen auszugeben. Auch eine Platte 142 oder ein sonstiges langfristiges/nicht-flüchtiges Speichermedium kann abhängig von der Größe und Tragfähigkeit der Speicherumgebung eingebunden werden, was weiter unten beschrieben ist.
-
Der Speicher 120 enthält eine Vielzahl von Bereichen 150-1..150-N (allgemein 150) und ist für den Speicher-Controller (MC) 110 über ein Zugriffsmedium 122 (Lese-/Schreibzugriff) zugänglich. Jedes geeignete Zugriffsmedium wie z. B. ein paralleler oder serieller Bus mit elektrischer oder optischer Übertragung, der eventuell mit Through Silicon Vias (TSV) verbunden ist, wie in einer gestapelten Umsetzung, wie weiter unten beschrieben. Der MC 110 wählt die Bereiche 150 des Speichers, in dem Daten entsprechend der Anfragen 132 gespeichert werden sollen und ruft von der gleichen Stelle ab, um die Antwort 134 zu geben. Die Controller-Logik 112 speichert und wendet Heuristika für die Berechnung anwendbarer Bereiche 150 an, in denen Daten sowie Statistiken bezüglich der Merkmale der Bereiche 150-N. gespeichert werden sollen. Die Speicherbereiche 150 können zudem Sensoren 121-1..121-N (allgemein 121) für Aspekte wie Temperatur und Zugriffszählungen enthalten. Ein Sensor-Hub 113 in der heuristischen Logik kumuliert die Eingaben für Sensor 121 sowie alle anderen relevanten Faktoren von einer Vielzahl geeigneter Quellen wie z. B. Standort, Temperatur, Feuchtigkeit, Aufmerksamkeit des Benutzers, die durch die Frontkamera festgestellt wird und weitere.
-
Die erkannten heterogenen Speicheransätze und die entsprechenden Heuristika sind mit einer Abbildung des Zwischenspeichers und/oder einer Seite, die in modernen Betriebssystemen vorhanden sind, völlig kompatibel. Deshalb kann der Speicher-Controller 110 auch einen Zwischenspeicher 114 und/oder eine Adressabbildung 116 enthalten, die zusammen mit den hier angegebenen Konfigurationen betrieben werden können. Zum Beispiel kann ein Cache-(Zwischenspeicher-)Controller eine oder mehrere Bereiche des Speichers als Cache-Bereich nutzen und somit ist kein weiteres Speichergerät oder eine Speicherbank nur für den Cache-Speicher erforderlich.
-
Der Cache 114, wie auf dem Gebiet bekannt, speichert kürzlich vom Speicher 120 abgelesenen Daten und optional Daten, die vor Kurzem in den Speiche 120 geschrieben wurden, sodass die nachfolgenden Abfragen mit diesen Daten vereinfacht werden. Die Wahl der hier erkannten Speicherbereiche 150 unterscheidet sich deshalb, da der Cache 114 nur auf die Unmittelbarkeit der I/O-Operation schaut und nicht auf die beabsichtigte Nutzung oder Nutzungsmuster auf Grund einer Heuristik. Allerdings kann ein Teil der Auswahl der Speicherbereiche einen Bereich mit Hochgeschwindigkeitsmerk- malen sowie die Häufigkeit oder letzten Anwendungen als Teil der Auswahllogik beinhalten. Auf ähnliche Weise sammelt ein Seitenwechselverfahren nur Speicherbereiche (z. B. Seiten wie z. B. 4K) wie das Lese-/Schreibvielfache und ist deshalb auf die erkannte Heuristik anwendbar, wenn Daten auf einer bestimmten Seite auftreten. So können z. B. optionale Datenmerkmale Anforderungen spiegeln, die vom Programmierer hinsichtlich der Leistung und Retention für die entsprechende Seite angegeben wurden. Der Speicher-Controller 110 kann diese Informationen als Anleitung zur Abbildung von Daten in diesem Bereich mit gleichen oder besseren Merkmalen verwenden. Ein solcher Vorgang ermöglicht die Interaktion mit dem Programmierer zusätzlich zu der hier erkannten selbständigen Arbeit des MC 110.
-
Die Adressabbildung 116 kann somit die Form von Abbildungen annehmen, die einen Software-Support oder eher auf Hardware beruhende Ansätze einsetzen. In einer Umsetzung mit Software-Support können die Konfigurationen auf einem Durchlauf der Seitentabellen des Betriebssystems (OS) beruhen. Auf der anderen Seite kann der MC 110 unabhängig (selbständig) eine separate Tabelle zur Nachverfolgung von Adressabbildungen verwenden (da der Controller in der Lage ist, Inhalte zu versetzen). Praktisch gesehen kann diese Möglichkeit der Abbildung/Übertragung von Adressen in der Hardware mit Verschleißausgleichsmechanismen für NVM geteilt werden, da der Verschleißausgleich Schreibzugriffe oft per Adresse nachverfolgt (z. B. Seite) und Inhalte auf Grund beschränkter Dauer verschiebt.
-
Es sollte betont werden, dass jeder Bereich 150 des geteilten Speichers 120 vom Speicher-Controller 110 auf gleiche Art (z. B. Wort- oder Byte- adressierbar) adressierbar bleibt, ungeachtet des Speicherbereichs 150, in dem die Daten gespeichert sind. Die Anwendung mit Anfrage 132 (und somit der Programmierer/Entwickler, der die Anwendung schreibt) muss nicht zwischen verschiedenen Speicherbereichen unterscheiden oder eine Bereichswahl angeben. Der gesamte Bereich des Anwender-/Anwendungsspeichers 120 bleibt adressierbar. Deshalb können die Daten ohne eindeutige Identifizierung des Bereichs, von dem der Abruf erfolgt, von jeder Vielzahl der Bereiche 150 abgerufen werden. Weiterhin ist zu vermerken, dass „Teilung“, wie hier verwendet, auf die Unterteilung des Speichers 120 in gleichzeitig adressierbare Bereiche 150 verweist und nicht auf getrennte Betriebssysteme verweist, die auf einer gleichen Maschine installiert sind und die normalerweise in sich gegenseitig ausschließende Umgebungen verteilt sind, die von einer Plattenteilung unterstützt sind.
-
Die Umgebung des Computerspeichers 100 kann jede geeignete Rechnerplattform sein, wie z. B. Smartphones und tragbare Rechner, Tablets, Laptops und Desktop-Formfaktoren. Physikalische Einschränkungen können Betriebsparameter der unterschiedlichen Geräte beeinträchtigen, so neigen z. B. kleinere Geräte auf Grund ihrer Kompaktheit dazu, mehr Hitze zu erzeugen oder sie müssen eventuell auf Grund der Batterieeinschränkungen mehr Energie sparen. Kleinere Geräte haben eventuell kein Plattenlaufwerk 142, auch wenn alle Geräte zumindest für das Starten/Booten über eine Dauerkomponente (nicht-flüchtig) verfügen, auch wenn das Netzwerk-Booten möglich ist.
-
2 ist ein Ablaufplan des Speicherzugriffs in dem Umfeld des Computerspeichers von 1; Mit Bezug auf die 1 und 2 in einer bestimmten, weiter unten besprochenen Konfiguration, beinhaltet die Methode des Speicherzugriffs ebenso das Unterteilen des Speichers in eine Vielzahl von Bereichen 150, sodass jeder Bereich 150 durch Merkmale definiert ist, wie in Schritt 200 angegeben. Jeder Bereich kann jeder geeignete Bereich 150 des Speichers 120 sein und kann Merkmale auf Grund der Bauweise oder dynamische Merkmale, die während der Ausführung geändert werden können, besitzen, wie durch die Pfeile 118-1.. 118-2 (allgemein 118) dargestellt, um die Befehle an die Speicherbereiche auszugeben, sodass Merkmale wie z. B. Spannung zur Minderung des Stromverbrauchs oder die Erhöhung der Zugriffsgeschwindigkeit geändert werden können. In der Beispielkonfiguration beinhalten die Merkmale die Leistung (Geschwindigkeit), Retention und Effizienz (Stromverbrauch). Weitere Merkmale können abhängig von der Bauweise eingesetzt werden und den Speicher 120 unterstützen.
-
Die heuristische Logik 112 weist die Daten entsprechend einer erwarteten Datenverwendung aus, wie in Schritt 201 dargestellt und bildet die Daten in einem Bereich 150 der Vielzahl der Bereiche 150-N auf Grund der erwarteten Verwendung und/oder zusammen mit einer gegenseitigen Beziehung der Merkmale des Bereichs, wie in Schritt 202 dargestellt, ab. In dem gezeigten Beispiel erfolgt die Abbildung oder wechselseitige Beziehung zwischen den Merkmalen und der erwarteten Verwendung so, dass das Leistungsmerkmal die Geschwindigkeit, mit der die Daten von einem Speicherbereich abgerufen werden, erkennt und für Daten verwendet wird, auf die in zeitkritischen Berechnungen häufig zugegriffen wird. Dieses Merkmal wird begünstigt, wenn die Benutzerreaktivität vorrangig ist und die Strom- und Temperaturbeständigkeit groß sind. Das Retentionsmerkmal erkennt die Dauer, mit der die Daten ohne erneutes Aufladen der Spannungsversorgung im Speicherbereich bleiben und wird für selten abgerufene Daten verwendet, die in Berechnungen mit toleranten Wartezeiten, z. B. für Ergebnisse, die nicht sofort benötigt werden oder die statistisch selten abgerufen werden, wie unten dargelegt. Das Merkmal der Effizienz weist auf einen Stromverbrauch zum Erhalt der Daten im Speicherbereich hin und wird eingesetzt, wenn der Speicherzugriff auf Grund von Hitze oder Batterieproblemen nur beschränkt zugänglich ist. Deshalb ist die Effizienz ein doppelgleisiges Merkmal, das auf eine akzeptable Geschwindigkeit mit beschränkter Energiezufuhr und Hitzeerzeugung hinweist. Effizienz ist in tragbaren Geräten wichtig, wo Platzverhältnisse die Wärmebildung steigern und die Stromversorgung durch den Akku ein Problem ist.
-
Merkmalsätze können gemäß einer Betriebsart im allgemeinen Kontext gebündelt werden, und können „Korridore“ oder Bereiche für die Merkmale festlegen, die für die Betriebsart akzeptabel sind. Deshalb behandelt die Betriebsart die Bereiche vorrangig, deren Verwendung auf den Merkmalen beruht, deren Betriebsart einen Leistungsmodus beinhaltet, der Speicherbereiche mit einem schnellen Abruf begünstigt, einem Effizienzmodus, der Bereiche mit geringem Stromverbrauch mit einer akzeptablen Abrufzeit begünstigt und einem Aufbewahrungsmodus, der Bereiche mit langen Retentionsdauern zur Aufrechterhaltung des Betriebs mit wenig Strom und thermischer Belastung, aber gutem Reaktionsvermögen begünstigt. Andere Betriebsarten, die unterschiedliche Merkmale erfassen und/oder unterschiedliche Korridore innerhalb eines Merkmalbereichs festlegen, können ebenso aktiviert werden.
-
In besonderen Konfigurationen werden die Speicherbereiche so konfiguriert, dass die Merkmale während der Laufzeit in Reaktion auf berechnete oder erwartete Nutzung verändert werden. Deshalb kann der Controller 110 auf die heuristische Logik 112 reagieren und die Merkmale im Bereich 150 in Reaktion auf die erwartete Nutzung dynamisch verändern. So kann z. B. selten genutzter Speicherplatz einen Zugriffszeitraum und eine Retentionsdauer des Speicherbereichs erkennen und ein Spannungsmerkmal des Bereichs ändern, sodass die Spannung während der Retentionsdauer zum Erhalt der Daten geringer ist, jedoch zum schnellen Abruf der Daten während der Zugriffszeit höher ist. Entsprechend ist während einer längeren Latenzzeit nur eine geringe Stromzufuhr erforderlich und die Wärmeerzeugung wird reduziert, wenn die Daten jedoch benötigt werden, steigt die Spannung, um den schnellen Zugriff während der Zugriffszeit zu ermöglichen.
-
Ebenso können Daten zwischen den Bereichen 150 mit den gewünschten Merkmalen verschoben werden. Die heuristische Logik 112 erkennt einen zukünftigen Zugriffszeitraum für die im Speicherbereich 150 gespeicherten Daten und verschiebt die Daten vor dem Zugriffszeitraum in einen anderen Speicherbereich 150, wobei der andere Bereich Merkmale hat, die dem Schnellzugriff in Reaktion auf unregelmäßig genutzte Daten, aber dem Bedarf des Schnellzugriffs während der Nutzung entsprechen.
-
In einem anderen Beispiel kann festgestellt werden, dass ein Speicherbereich auf Grund der Zugriffshäufigkeit oder -dichte eine hohe Betriebstemperatur erreicht. Entsprechend erkennt die heuristische Logik 112 die hohe Temperatur eines Speicherbereichs 150 und ändert die Merkmale des Bereichs 150 zur Minderung des Stromverbrauchs und der Wärmeerzzeugung entsprechend der erkannten hohen Temperatur, wodurch dieser Bereich 150 mit Merkmalen, die zu geringerem Stromverbrauch und einer niedrigeren Temperatur führen, weiterhin arbeiten kann.
-
3a-3d sind eine Berechnung und ein Datenfluss zur Darstellung einer Heuristik des Speicherzugriffs der Umgebung von 1. Im Allgemeinen zeigt die heuristische Logik 112 (Logik) einen Wert oder Zustand der Merkmale auf und führt berichtigende Maßnahmen zur Neuverteilung der Speichernutzung auf einen anderen Bereich 150 durch, um die Merkmale wieder in den Betriebskorridor der Betriebsart zurückzuführen. Mit Bezug auf die 1 und 3a-3d in Schritt 300, weist die Logik 112 einen Zeitraum des Datenzugriffs oder des Speicherbereichszugriffs auf, um selten genutzte Bereiche oder Daten zu erkennen. Eine Prüfung wird in Schritt 303 durchgeführt, um festzustellen, ob ein überwachtes Merkmal eine Verzögerung außerhalb des Betriebskorridors im aktuellen Profil aufweist. Sollte dies der Fall sein, so verschiebt der Speicher-Controller 110 (oder eine untergeordnete Management-Funktion wie DMA oder Adressabbildungsprozesse) die Daten zu einem Bereich 150 (Teil) des Speichers 120 mit verschiedener Retention entsprechend dem Betriebsprofil, wie in Schritt 302 dargestellt, um die Zeit zwischen den Zugriffen besser abzustimmen. Falls ein Datenelement für einen längeren Zeitraum nicht abgerufen wird, ist es deshalb möglich, dieses in einem Bereich 150 mit längerer Retentionsdauer zu lagern, um von der herabgesetzten Stromzufuhr zu profitieren. Die Kontrolle wiederholt sich bei Schritt 300 entsprechend einem Überwachungs- oder Abfragezyklus. Die Abbildung auf Grund der erwarteten Nutzung kann deshalb die Aktivierung einer Heuristik zum Erhalt von Sensor-Feedback bei einer Temperatur von häufig abgefragten Bereichen 150 und das Umleiten von Speichernutzung auf weniger häufig verwendete Bereiche 150 auf Grund des erhaltenen Sensor-Feedbacks beinhalten.
-
In Schritt 310 überwacht in 3b die Logik 112 die Zugriffsdichte, die auf die Zugangshäufigkeit, das Lese-/Schreibverhältnis, den durchschnittlichen Ankunftszeiträume, das Gesamtvolumen oder genutzte Speicherbereiche verweisen, die normalerweise auf die Nutzung oder Kapazitätsauslastung hinweisen. Ein solches Merkmal verweist normalerweise auf die gesamte Stromversorgung und die entsprechende Wärmeerzeugung, die bei einem kleineren, tragbaren Gerät ein besonderes Problem darstellen kann. In Schritt 311 wird eine Prüfung durchgeführt, um festzustellen, ob die Zugriffsdichte außerhalb des Betriebskorridors (Bereichs) liegt. Falls ja, wird eine weitere Prüfung durchgeführt, um festzustellen, ob ein neuer Betriebskorridor durch Änderung des Betriebsstatus verwendet werden kann (z. B. um die gesamte Wärme-/Stromanforderung durch eine geringe Spannung zu reduzieren), wie in Schritt 312 dargestellt. Sollte dies der Fall sein, legt die Logik 112 den neuen Betriebskorridor fest, um die Kontrolle durch Leistungsanstieg oder -Minderung zu variieren, wie in Schritt 313 dargestellt. Falls kein neuer Betriebskorridor festgelegt werden kann (ohne die Nutzung drastisch abzubrechen), verschiebt der Speicher-Controller die Daten mit veränderter Stromzufuhr/Leistung (d. h. Effizienz) entsprechend dem Profil in die Speicherbereiche 150, wie in Schritt 314 dargestellt. Normalerweise ist es weniger aufwendig, den Status durch Änderung der Spannung als durch Verschieben von Speicherbereichen zu ändern, deshalb werden zuerst Spannungsänderungen erwägt. Die Heuristik 112 kann deshalb Zähler für Bereichszugriffe beanspruchen und die Speichernutzung von Bereichen mit hohem Zugriff auf Bereiche mit geringerem Zugriff weiterleiten.
-
Für beide Fälle, in denen die Bereichsverschiebung beansprucht wird (Schritte 302, 314) können statistische Nutzungsdaten verwendet werden, die von Speichersensoren und/oder Zählern gesammelt wurden. Informationen der Adressier-Bereichsteilung des Speichers auf Grund der Retentionsdauer der Speicherart werden an die Logik gesandt, wie in Mitteilung 350 gezeigt. Ebenso werden Informationen der Adressier-Bereichsteilung des Speichers auf Grund der Spannungs-/Leistungsstatus des Speichers von Mitteilung 352 empfangen. Deshalb beruht die erwartete Nutzung der Daten auf mindestens einer der Faktoren Zugriffshäufigkeit zu den Daten, Geschwindigkeit des Abrufs der Daten und Langlebigkeit der Daten. Die Wahl des Bereichs 150 beinhaltet weiterhin die Erkennung des Betriebsmodus, wobei der Betriebsmodus auf eine Priorität der Merkmale hinweist, sodass Bereiche mit einem höheren Prioritätsmerkmal bevorzugt werden. Der MC 110, der auf die Logik 112 reagiert, bildet die Daten auf Grund der Priorität von Merkmalen ab, in denen Bereiche 150 mit Merkmalen begünstigt sind, die der hohen Priorität entsprechen und Bereiche mit Merkmalen mit einer geringeren Priorität weniger häufig eingesetzt oder gemeinsam zwischen Bereichen verschoben werden.
-
Deshalb setzt die Logik 112 Heuristika ein, die den Empfang von Betriebsstatistiken von einer Vielzahl von Speicherbereichen 150 beinhalten können, in denen die Merkmale auf den erhaltenen Betriebsstatistiken beruhen. In der Beispieldarstellung können die Betriebsstatistiken Parameter wie z. B. Temperatur (d. h. thermische Auswirkungen), statistische Zähler (z. B. Zugriffshäufigkeit und Adressverteilung) und Timeout-Zähler von in den Speicherbänken/-modulen eingebauten Sensoren beinhalten.
-
In Schritt 320 überwacht die Logik 112 die Zugriffsdichte eines Speicherbereichs 150. Die Zugriffsdichte wirkt sich auf zahlreiche Merkmale (Parameter) z. B. innerhalb DRAM aus, und nimmt beim Prozessskalieren an Bedeutung zu. Die Logik überwacht auch den Verschleißausgleich des NVM, wie in Schritt 323 dargestellt. Der Abnutzungsausgleichs versucht, die Zugriffszyklen im Speicher auszugleichen, damit der Zugriff auf alle Speicherorte gleichmäßig ist, da ansonsten der Lese-/Schreiblebenszyklus unverhältnismäßig oft genutzter Orte vorzeitig abgenutzt sein kann. Für beide Merkmale wird eine Prüfung durchgeführt, um festzustellen, ob Daten mit geringerer Zugriffsdichte an einen Bereich 150 verschoben werden können, wie in Schritt 321 dargestellt. Falls dies möglich ist, verschiebt MC 110 die Daten in einen anderen Speicherbereich 150 mit mehr Toleranz bezüglich der Zugriffszyklen (längere Lese-/Schreiblebensdauer verfügbar). Deshalb kann das Abbilden zudem eine Heuristik zum Erhalt der Schalteingaben aktivieren, die der Dauer der Datenretention entspricht und die Daten erkennt, die einen Grenzwert erreichen, falls die Retentionsdauer für den Bereich 150, in dem sie liegen, abgelaufen ist. Der MC 110 leitet die Speichernutzung auf Grund der erhaltenen Schalteingaben auf Bereiche mit längeren Retentionsdauern um.
-
4 zeigt eine Stapelimplementierung von Speicherbereichen in der Umgebung von 1. Mit Bezug auf die 1 und 4 können unterschiedliche Aufbauten Speicherbereiche mit verschiedenen Zugriffsmedien, wie z. B. TSV (Through Silicon Vias) 122' bereitstellen. In anderen Konfigurationen beinhalten die Bereiche 150 TSV-Bereiche 150-11..150-14, die von gestapelten Würfelspeicheranordnungen 120' und für Bus zugängliche Bänke zugänglich sind, siehe oben. Weiterhin können verschiedene Bereiche verschiedenen Stromkreisen entsprechen und somit die Kontrolle über den Stromverbrauch und die Wärmeerzeugung verbessern.
-
Fachleute schätzen es, dass die hier angegebenen Programme und Verfahren für ein Benutzergerät zur Verarbeitung und Wiedergabe in vielen Formen bereitstehen, u. a. für a) Informationen, die ständig auf schreibgeschützten Speichermedien wie z. B. ROM-Geräte gespeichert sind, b) Informationen, die veränderlich auf beschreibbaren, nicht-flüchtigen Speichermedien wie z. B. Floppydisks, Magnetkassetten, CDs, RAM-Geräten oder anderen magnetischen oder optischen Medien gespeichert sind oder c) Informationen, die mittels Kommunikationsmedien auf einen Computer übertragen werden, wie in einem digitalen Netzwerk wie das Internet oder Telefon-Modemverbindungen. Die Operationen und Verfahren können in ein durch Software ausführbares Objekt oder als ein Bündel kodierter Anweisungen zur Ausführung durch einen Prozessor, der auf die Anweisungen reagiert eingebaut werden. Alternativ können die hier eröffneten Operationen und Verfahren vollständig oder teilweise durch Hardware-Komponenten wie z. B. Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), Zustandsmaschinen, Controller oder sonstige Hardware-Komponenten oder -Geräte oder eine Kombination aus Hardware, Software und Firmware-Komponenten verkörpert sein.
-
Obwohl erfindungsgemäße Ausführungsformen insbesondere mit Bezug auf ihre Ausführungsformen gezeigt und beschrieben wurden, ist es für Fachleute selbstverständlich, dass verschiedene Änderungen hinsichtlich Form und Details daran vorgenommen werden können, ohne vom Umfang der erfindungsgemäßen Ausführungsformen, die von den angehängten Ansprüchen umfasst sind, abzuweichen.