DE102014111990B4 - Heterogener Speicherzugriff - Google Patents

Heterogener Speicherzugriff Download PDF

Info

Publication number
DE102014111990B4
DE102014111990B4 DE102014111990.8A DE102014111990A DE102014111990B4 DE 102014111990 B4 DE102014111990 B4 DE 102014111990B4 DE 102014111990 A DE102014111990 A DE 102014111990A DE 102014111990 B4 DE102014111990 B4 DE 102014111990B4
Authority
DE
Germany
Prior art keywords
data
memory
areas
area
access
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.)
Active
Application number
DE102014111990.8A
Other languages
English (en)
Other versions
DE102014111990A1 (de
Inventor
Ruchir Saraswat
Matthias Gries
Nicholas P. Cowley
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102014111990A1 publication Critical patent/DE102014111990A1/de
Application granted granted Critical
Publication of DE102014111990B4 publication Critical patent/DE102014111990B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)

Abstract

Speicherzugriffsverfahren umfassend:Teilen eines Speichers (120) in eine Vielzahl von Bereichen (150), jeder Bereich ist durch Merkmale bestimmt und reagiert auf einen Prozessor;Empfangen von Betriebsstatistiken von der Vielzahl der Speicherbereiche (150), wobei die Betriebsstatistiken statistische Zugriffszähler und/oder Zugriffszeitüberschreitungszähler beinhalten und die Merkmale auf den erhaltenen Betriebsstatistiken basieren;Bestimmen von Daten entsprechend der erwarteten Nutzung der Daten; undAuswählen eines Bereichs aus der Vielzahl von Bereichen (150), in der die Daten auf Grund der erwarteten Nutzung der Daten gespeichert werden.

Description

  • 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.

Claims (23)

  1. Speicherzugriffsverfahren umfassend: Teilen eines Speichers (120) in eine Vielzahl von Bereichen (150), jeder Bereich ist durch Merkmale bestimmt und reagiert auf einen Prozessor; Empfangen von Betriebsstatistiken von der Vielzahl der Speicherbereiche (150), wobei die Betriebsstatistiken statistische Zugriffszähler und/oder Zugriffszeitüberschreitungszähler beinhalten und die Merkmale auf den erhaltenen Betriebsstatistiken basieren; Bestimmen von Daten entsprechend der erwarteten Nutzung der Daten; und Auswählen eines Bereichs aus der Vielzahl von Bereichen (150), in der die Daten auf Grund der erwarteten Nutzung der Daten gespeichert werden.
  2. Verfahren nach Anspruch 1, wobei die erwartete Nutzung der Daten auf Zugriffshäufigkeit, Zweckmäßigkeit beim Abruf der Daten und/oder Langlebigkeit der Daten beruht.
  3. Verfahren nach einem der Ansprüche 1-2, wobei die Daten ohne eindeutige Identifizierung des Bereichs, von dem der Abruf erfolgt, auf jedem der Vielzahl der Bereiche gespeichert und von dort abgerufen werden können.
  4. Verfahren nach einem der Ansprüche 1-3, das weiterhin die dynamische Änderung der Merkmale des Bereichs entsprechend der erwarteten Nutzung beinhaltet.
  5. Verfahren nach einem der Ansprüche 1-4, ferner umfassend: Erkennen eines Zugriffszeitraums und einer Retentionsdauer des Speicherbereichs; und Ändern eines Spannungsmerkmals des Bereichs, sodass die Spannung entsprechend der erwarteten Nutzung auf Grund des erforderlichen Stromverbrauchs und der Geschwindigkeit verändert wird.
  6. Verfahren nach Anspruch 5 umfassend weiterhin das Ändern eines Spannungsmerkmals des Bereichs, sodass die Spannung während der Retentionsdauer zum Erhalt der Daten geringer ist und die Spannung während des Zugriffszeitraums für die schnelle Abrufung von Daten höher ist.
  7. Verfahren nach einem der Ansprüche 1-6, ferner umfassend: Erkennen eines zukünftigen Zugriffszeitraums für die im Speicherbereich gespeicherten Daten; und Verschieben der Daten vor dem Zugriffszeitraum in einen anderen Speicherbereich, wobei der andere Bereich Merkmale hat, die dem Schnellzugriff für unregelmäßig genutzte Daten mit Bedarf für Schnellzugriff während der Nutzung entsprechen.
  8. Verfahren nach einem der Ansprüche 1-7, ferner umfassend: Erkennen eines Speicherbereichs mit Bedarf der Korrektur des Stromverbrauchs auf Grund einer Speichersensoreingabe; und Ändern der Merkmale eines Bereichs für die Minderung des Stromverbrauchs und der Wärmeerzeugung entsprechend der erkannten hohen Temperatur.
  9. Verfahren nach einem der Ansprüche 1-8, das zudem das Erkennen einer Betriebsart umfasst, die Betriebsart weist auf eine Priorität der Merkmale hin, sodass die Bereiche mit einem höheren Prioritätsmerkmal begünstigt werden; und Abbilden der Daten auf Grund der Priorität der Merkmale, sodass Bereiche mit Merkmalen von höherer Priorität vorrangig und Bereiche mit Merkmalen von geringerer Priorität weniger häufig verwendet werden.
  10. Verfahren nach einem der Ansprüche 1-8, wobei eine Betriebsart die Nutzungsbereiche auf Grund der Merkmale vorrangig verwendet, die Betriebsarten umfassen: einen Leistungsmodus, der Leistungsmodus begünstigt Speicherbereiche mit einem schnellen Abruf; einen Effizienzmodus, der Bereich mit geringem Stromerbrauch und einer akzeptablen Abrufzeit begünstigt; und einen Belastbarkeitsmodus, der Bereiche mit hohen Retentionszeiten favorisiert, um den Betrieb trotz bleibenden Reaktionsvermögens mit geringstem Stromverbrauch und geringster thermischer Belastung zu erhalten.
  11. Verfahren nach einem der Ansprüche 1-10, wobei die Auswahl das Zuordnen zwischen den Merkmalen und der erwarteten Nutzung beinhaltet, wobei: ein Leistungsmerkmal die Geschwindigkeit bezeichnet, mit der die Daten von einem Speicherbereich abgerufen werden und für Daten verwendet wird, auf die für die Steuerung empfindlicher Berechnungen häufig zugegriffen wird; ein Retentionsmerkmal die Dauer bezeichnet, in der die Daten ohne Aufladen der Spannungsversorgung in dem Speicherbereich verbleiben und für unregelmäßig abgerufene Daten in Berechnungen verwendet werden, die längere Wartezeiten ermöglichen; und ein Effizienzmerkmal einen Stromverbrauch zum Erhalt der Daten in einem Speicherbereich anzeigt und eingesetzt wird, wenn der Speicherzugriff auf Grund von übermäßiger Hitze oder Batterieproblemen eingeschränkt ist.
  12. Das Verfahren nach einem der Ansprüche 1-11, wobei die Zuordnung weiterhin die Aktivierung einer Heuristik für Folgendes beinhaltet: Erhalt von Sensor-Feedback über eine Temperatur von häufig beanspruchten Bereichen; und Umleiten der Speichernutzung auf Grund des erhaltenen Sensor-Feedbacks zu weniger häufig beanspruchten Bereichen.
  13. Verfahren nach einem der Ansprüche 1-12, wobei die Zuordnung weiterhin die Aktivierung einer Heuristik für Folgendes beinhaltet: Instandhaltung von Zählern für Zugriffe auf Bereiche; und Umleiten der Speichernutzung von Bereichen mit häufigem Zugriff auf Bereiche mit weniger häufigem Zugriff.
  14. Verfahren nach einem der Ansprüche 1-13, wobei die Zuordnung weiterhin die Aktivierung einer Heuristik für Folgendes beinhaltet: Erhalt von Schaltungseingaben entsprechend den Retentionszeiten für Daten; Erkennen der Annäherung einer Datenretentionsdauer für den Bereich, in dem diese sich befinden; und Umleiten der Speichernutzung auf Grund der erhaltenen Schaltungseingaben auf Bereiche mit längeren Retentionsdauern.
  15. Verfahren nach einem der Ansprüche 1-14, wobei die Bereiche Through-Silicon-Via-Bereiche, TSV-Bereiche, enthalten, die von gestapelten Würfelanordnungen und Buszugänglichen Datenbänken aus zugänglich sind.
  16. Speicher-Controller, der Folgendes umfasst: in eine Vielzahl von Speicherbereiche (150) unterteilten Speicher (120), wobei jeder Bereich durch Merkmale bestimmt ist, wobei die Merkmale auf von der Vielzahl der Speicherbereiche erhaltenen Betriebsstatistiken basieren und die Betriebsstatistiken statistische Zugriffszähler und/oder Zugriffszeitüberschreitungszähler beinhalten; heuristische Logik (112) für die Bestimmung von Daten entsprechend einer erwarteten Nutzung der Daten; und Speicherzugriffsmedium für die Zuordnung der Daten zu einem Bereich der Vielzahl von Bereichen beruhend auf der wechselseitigen Beziehung der erwarteten Nutzung mit den Merkmalen des Bereichs; und Anzeige für die Wiedergabe der zugeordneten Daten.
  17. Controller nach Anspruch 16, wobei die erwartete Nutzung der Daten auf mindestens einem Merkmal beruht: Häufigkeit des Zugriffs auf die Daten, Schnelligkeit des Abrufs der Daten und Langlebigkeit der Daten.
  18. Controller nach einem der Ansprüche 16-17, wobei jeder Bereich (150) des unterteilten Speichers (120) von einem Speicher-Controller ungeachtet des Speicherbereichs in dem die Daten gespeichert sind auf gleiche Art adressierbar bleibt.
  19. Controller nach einem der Ansprüche 16-18, wobei die Speicherbereiche (150) für die dynamische Änderung der Merkmale entsprechend der erwarteten Nutzung konfiguriert sind.
  20. Der Controller nach einem der Ansprüche16-19, wobei die heuristische Logik (112) eine Betriebsart festlegt, die Betriebsart weist auf eine Priorität der Merkmale hin, sodass die Bereiche mit einer höheren Priorität begünstigt werden; und das Speicherzugriffsmedium entspricht der heuristischen Logik (112) für die Zuordnung der Daten beruhend auf der Priorität der Merkmale, sodass Bereiche mit Merkmalen für eine hohe Priorität begünstigt werden und Bereiche mit Merkmalen für eine geringere Priorität weniger häufig verwendet werden.
  21. Der Controller nach einem der Ansprüche 16-20, wobei die heuristische Logik (112) Betriebsarten für die vorrangige Nutzung von Bereichen auf Grund der Merkmale beinhaltet, die Betriebsarten umfassen: einen Leistungsmodus, der Leistungsmodus begünstigt Speicherbereiche mit einem schnellen Abruf; einen Effizienzmodus, der Bereich mit geringem Stromerbrauch und einer akzeptablen Abrufzeit begünstigt; und einen Belastbarkeitsmodus, der Bereiche mit langen Retentionsdauern favorisiert, um den Betrieb trotz bleibendem Reaktionsvermögens mit geringstem Stromverbrauch und geringster thermischer Belastung zu erhalten.
  22. Controller nach einem der Ansprüche 16-21, wobei die heuristische Logik (112) so konfiguriert ist, dass eine Zuordnung zwischen den Merkmalen und der erwarteten Nutzung erfolgt, wobei: das Leistungsmerkmal die Geschwindigkeit erkennt, mit der die Daten von einem Speicherbereich abgerufen werden und für Daten verwendet wird, die häufig bei der Schaltung empfindlicher Berechnungen abgerufen werden; das Retentionsmerkmal die Dauer erkennt, für die die Daten ohne Stromaufladung in dem Speicherbereich verbleiben und wird für weniger häufig abgerufene Daten, deren Berechnungen längere Wartezeiten tolerieren verwendet; und das Effizienzmerkmal den Stromverbrauch zum Erhalt der Daten in dem Speicherbereich anzeigt und verwendet wird, wenn der Speicherzugriff auf Grund von übermäßiger Wärme oder Batterieproblemen eingeschränkt ist.
  23. Computer-lesbares Speichermedium mit Anweisungen für die Durchführung eines Verfahrens für den Speicherzugriff nach einem der Ansprüche 1-15.
DE102014111990.8A 2013-09-18 2014-08-21 Heterogener Speicherzugriff Active DE102014111990B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/030,515 2013-09-18
US14/030,515 US9513692B2 (en) 2013-09-18 2013-09-18 Heterogenous memory access

Publications (2)

Publication Number Publication Date
DE102014111990A1 DE102014111990A1 (de) 2015-03-19
DE102014111990B4 true DE102014111990B4 (de) 2023-11-30

Family

ID=51726972

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014111990.8A Active DE102014111990B4 (de) 2013-09-18 2014-08-21 Heterogener Speicherzugriff

Country Status (7)

Country Link
US (1) US9513692B2 (de)
JP (1) JP5883089B2 (de)
KR (1) KR101675199B1 (de)
CN (1) CN104636263B (de)
DE (1) DE102014111990B4 (de)
GB (1) GB2519641B (de)
TW (1) TWI536256B (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014044527A (ja) * 2012-08-24 2014-03-13 Canon Inc 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
JP2016177689A (ja) * 2015-03-20 2016-10-06 株式会社東芝 メモリシステム
CN104978303B (zh) * 2015-06-19 2019-06-04 上海兆芯集成电路有限公司 单芯片整合的传感器集线器和多传感器管理方法
US9575671B1 (en) * 2015-08-11 2017-02-21 International Business Machines Corporation Read distribution in a three-dimensional stacked memory based on thermal profiles
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
JP6690829B2 (ja) * 2015-08-28 2020-04-28 国立大学法人 東京大学 計算機システム、省電力化方法及び計算機
KR20170030307A (ko) * 2015-09-09 2017-03-17 삼성전자주식회사 분리 배치된 커패시터를 갖는 메모리 장치
US10013174B2 (en) * 2015-09-30 2018-07-03 Western Digital Technologies, Inc. Mapping system selection for data storage device
US20170131947A1 (en) * 2015-11-06 2017-05-11 Pho Hoang Data and collection methods to analyze life acceleration of SSD with real usages
US20170162235A1 (en) * 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US9747049B2 (en) * 2015-12-03 2017-08-29 Huawei Technologies Co., Ltd. Computer memory management method and system
US10079650B2 (en) * 2015-12-04 2018-09-18 Infineon Technologies Ag Robust high speed sensor interface for remote sensors
US10896138B2 (en) * 2016-05-27 2021-01-19 Apple Inc. Dynamically controlling random access memory retention in a wireless device
US10534545B2 (en) * 2017-12-20 2020-01-14 International Business Machines Corporation Three-dimensional stacked memory optimizations for latency and power
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
KR102091409B1 (ko) * 2018-03-09 2020-03-20 삼성전자 주식회사 전자장치 및 그 제어방법
WO2019172622A1 (ko) * 2018-03-09 2019-09-12 삼성전자(주) 전자장치 및 그 제어방법
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10720217B1 (en) * 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US11144467B2 (en) * 2019-05-17 2021-10-12 Intel Corporation Bypassing cache memory in a write transaction in a system with multi-level memory
JP2021043654A (ja) * 2019-09-10 2021-03-18 富士通株式会社 情報処理装置及びプロセス配置決定プログラム
CN112882646A (zh) * 2019-11-29 2021-06-01 北京金山云网络技术有限公司 一种资源缓存方法、装置、电子设备及存储介质
KR20220003837A (ko) * 2020-07-02 2022-01-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11561907B2 (en) * 2020-08-18 2023-01-24 Micron Technology, Inc. Access to data stored in quarantined memory media
KR20220030348A (ko) 2020-08-27 2022-03-11 삼성전자주식회사 메모리 장치
US11928509B2 (en) * 2021-01-07 2024-03-12 Micron Technology, Inc. Memory system workload allocation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008036822A1 (de) 2007-08-14 2009-04-02 Samsung Electronics Co., Ltd., Suwon Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
WO2013048518A1 (en) 2011-09-30 2013-04-04 Intel Corporation Dynamic operations for 3d stacked memory using thermal data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216053A (ja) 2004-01-30 2005-08-11 Matsushita Electric Ind Co Ltd 最適メモリ配置演算装置及び最適メモリ配置方法
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
JP4209906B2 (ja) 2006-08-02 2009-01-14 株式会社日立製作所 低消費電力メモリ管理方法及びその方法を用いた計算機
US7830690B2 (en) * 2006-10-30 2010-11-09 Intel Corporation Memory module thermal management
US7646636B2 (en) * 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
JP2009064112A (ja) 2007-09-04 2009-03-26 Fujitsu Microelectronics Ltd メモリへのコード転送方法
JP4620722B2 (ja) 2007-12-26 2011-01-26 富士通株式会社 データ配置制御プログラム、データ配置制御装置、データ配置制御方法、およびマルチノードストレージシステム
JP2011022933A (ja) 2009-07-17 2011-02-03 Toshiba Corp メモリ管理装置を含む情報処理装置及びメモリ管理方法
US20100138677A1 (en) 2008-12-01 2010-06-03 International Business Machines Corporation Optimization of data distribution and power consumption in a data center
US7653826B1 (en) * 2009-01-20 2010-01-26 International Business Machines Corporation Method and apparatus for query optimization and management of sleepy drives
US20110047316A1 (en) * 2009-08-19 2011-02-24 Dell Products L.P. Solid state memory device power optimization
JP4660621B1 (ja) 2009-10-29 2011-03-30 株式会社東芝 情報処理装置およびメモリ制御方法
US8589650B2 (en) * 2010-05-17 2013-11-19 Texas Instruments Incorporated Dynamically configurable memory system
US8472274B2 (en) 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US8983911B2 (en) 2011-06-20 2015-03-17 Microsoft Technology Licensing, Llc Storage media abstraction for uniform data storage
US9703500B2 (en) * 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
US9626126B2 (en) * 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008036822A1 (de) 2007-08-14 2009-04-02 Samsung Electronics Co., Ltd., Suwon Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
WO2013048518A1 (en) 2011-09-30 2013-04-04 Intel Corporation Dynamic operations for 3d stacked memory using thermal data

Also Published As

Publication number Publication date
CN104636263B (zh) 2021-05-28
CN104636263A (zh) 2015-05-20
TW201523435A (zh) 2015-06-16
JP5883089B2 (ja) 2016-03-09
US20150082062A1 (en) 2015-03-19
JP2015060589A (ja) 2015-03-30
US9513692B2 (en) 2016-12-06
KR101675199B1 (ko) 2016-11-10
TWI536256B (zh) 2016-06-01
GB201414980D0 (en) 2014-10-08
KR20150032478A (ko) 2015-03-26
GB2519641A (en) 2015-04-29
GB2519641B (en) 2018-05-02
DE102014111990A1 (de) 2015-03-19

Similar Documents

Publication Publication Date Title
DE102014111990B4 (de) Heterogener Speicherzugriff
US11625321B2 (en) Apparatuses and methods for memory address translation during block migration using depth mapping table based on mapping state
DE102017104125B4 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE112011106032B4 (de) Energieeinsparung durch Speicherkanal-Abschaltung
US8862810B2 (en) Solid state device write operation management system
US11693775B2 (en) Adaptive cache
EP3462320B1 (de) Dynamischen seitenzuweisung in einem speicher
CN104460941B (zh) 一种降低主存存储器满负荷运行功耗的方法
DE102017104150A1 (de) Abnutzungsausgleich in Speichervorrichtungen
JP2019502996A (ja) ハイブリッドキャッシュ
DE102019105881A1 (de) Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen
DE102020117350A1 (de) Speichersystem einschliesslich heterogener speicher, computersystem mit dem speichersystem und datenverwaltungsverfahren dafür
Papon et al. The need for a new I/O model
Mittal Using cache-coloring to mitigate inter-set write variation in non-volatile caches
Elyasi et al. Content popularity-based selective replication for read redirection in ssds
Fevgas et al. A study of R-Tree performance in hybrid flash/3DXPoint storage
EP4390685A1 (de) Verfahren und vorrichtung zur steuerung der speicherbandbreite, prozessor und computervorrichtung
Kaplan et al. Deduplication in resistive content addressable memory based solid state drive
WO2016069031A1 (en) Managing a storage pool
CN115357522A (zh) 分层存储器系统中的对象管理
Zhang et al. ConeSSD: a novel policy to optimize the performance of HDFS heterogeneous storage
Karyakin Memory Power Consumption in Main-Memory Database Systems
Lee et al. Optimizing Read Operations of Hadoop Distributed File System on Heterogeneous Storages.
Ji et al. Relaxed wear leveling approach for non-volatile memories
WO2022132481A1 (en) Object management in tiered memory systems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G11C0007000000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final