DE112011106032T5 - Energieeinsparung durch Speicherkanal-Abschaltung - Google Patents

Energieeinsparung durch Speicherkanal-Abschaltung Download PDF

Info

Publication number
DE112011106032T5
DE112011106032T5 DE112011106032.7T DE112011106032T DE112011106032T5 DE 112011106032 T5 DE112011106032 T5 DE 112011106032T5 DE 112011106032 T DE112011106032 T DE 112011106032T DE 112011106032 T5 DE112011106032 T5 DE 112011106032T5
Authority
DE
Germany
Prior art keywords
memory
dram
channel
cache lines
pcms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112011106032.7T
Other languages
English (en)
Other versions
DE112011106032B4 (de
Inventor
Murugasamy K. Nachimuthu
Mohan J. Kumar
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 DE112011106032T5 publication Critical patent/DE112011106032T5/de
Application granted granted Critical
Publication of DE112011106032B4 publication Critical patent/DE112011106032B4/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • 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

Abstract

Es wird eine Methode beschrieben, die den Entschluß enthält, in einen niedrigeren Strom-Zustand einzutreten und, als Antwort, einen Speicherkanal eines Computer-Systems abzuschalten, wobei danach andere Speicherkanäle des Computer-Systems aktiv bleiben, damit der Computer funktionsfähig bleibt, während der Speicherkanal abgeschaltet ist.

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich im Allgemeinen auf das Fachgebiet von Computer-Systemen. Genauer, die Erfindung bezieht sich auf eine Vorrichtung und Methode zur Ausführung einer mehrstufigen Speicher-Hierarchie.
  • BESCHREIBUNG VERWANDTER TECHNIK
  • A. Derzeitige Speicher–Konfigurationen
  • Heutzutage ist einer der einschränkenden Faktoren bei Computer-Neuerungen, die Speichertechnologie Bei konventionellen Computersystemen wird der Systemspeicher (auch bekannt als Hauptspeicher, Primärspeicher, Arbeitsspeicher) typischerweise ausgeführt als dynamischer Schreib-/Lesespeicher mit wahlfreiem Zugriff (DRAM). Ein DRAM-basierter Speicher verbraucht Strom, auch wenn sich kein Speicher-Lese- oder Schreibvorgang ereignet, weil er kontinuierlich die internen Kondensatoren nachladen muss. Ein DRAM-basierter Speicher ist volatil, d. h. Daten, die im DRAM-Speicher gespeichert wurden, sind verloren, wenn kein Strom fließt. Konventionelle Computersysteme bauen auf mehrstufige Zwischenspeicher, um die Leistung zu erhöhen. Ein Zwischenspeicher ist ein Hochgeschwindigkeitsspeicher, der zwischen dem Prozessor und dem Systemspeicher angeordnet ist, um Speicherzugriff-Anforderungen schneller zu bedienen als es aus dem Systemspeicher möglich wäre. Solche Zwischenspeicher werden normalerweise ausgeführt als statischer Direktzugriffsspeicher (SRAM). Zwischenspeicher-Verwaltungsprotokolle können verwendet werden, um sicherzustellen, dass die Daten und Anweisungen, auf die am Häufigsten zugegriffen wird, auf einer Stufe des Zwischenspeichers gespeichert werden.
  • Im Hinblick auf Massenspeicher (auch bekannt als Sekundärspeicher oder Diskettenspeicher) enthalten konventionelle Massenspeicher üblicherweise magnetische Datenträger (z. B. Festplattenlaufwerke), optische Datenträger (z. B. CD-Laufwerke, DVD-Laufwerke, etc.), holographische Datenträger und/oder Flash-Speicher (z. B. Festkörperlaufwerke (SSDs), Wechseldatenträger, etc.). Im Allgemeinen werden diese Speichermedien als Eingabe-/Ausgabegeräte (I/O) betrachtet, weil auf diese vom Prozessor, durch unterschiedliche Ein-/Ausgangs-Adapter zugegriffen wird, die unterschiedliche Ein-/Ausgabe-Protokolle ausführen. Diese Ein-/Ausgangs-Adapter und Ein-/Ausgabe-Protokolle verbrauchen eine erhebliche Menge Strom und können erhebliche Auswirkungen auf den Platinen-Bereich und den Formfaktor der Plattform haben. Tragbare oder mobile Geräte (z. B. Laptops, Tablet-Computer, Minicomputer (PDAs), tragbare Medienabspielgeräte, tragbare Spielkonsolen, Digitalkameras, Handys, Smartphones, Multimedia-Handys, etc.), die eine begrenzte Batterielebensdauer haben, wenn sie nicht mit einer dauerhaften Stromzufuhr verbunden sind, können entfernbare Massenspeichergeräte enthalten (z. B. eingebettete Muldimedia-Karte (eMMC), SD-Karte (SD)), die normalerweise mit dem Prozessor über Niedrigenergie-Verbindungen und Ein-/Ausgabe-Steuerungen gekoppelt sind, um dem Wirkleistungs- und Bindleistungs-Budget zu entsprechen.
  • Hinsichtlich Firmware-Speichern (wie Boot-Speicher (auch bekannt als BIOS Flash)), verwendet ein konventionelles Computersystem üblicherweie Flash-Speichergeräte, um dauerhafte Systeminformationen zu speichern, die oft gelesen, aber selten (oder nie) beschrieben werden. Beispielsweise werden die durch einen Prozessor durchgeführten Startbefehle, die wesentliche Systemkomponenten während des Boot-Vorgangs strten, üblicherweise auf einem Flash-Speichergerät gespeichert. Derzeit auf dem Markt erhältliche Flash-Speichergeräte haben eine begrenzte Geschwindigkeit (z. B 50 MHz). Diese Geschwindigkeit wird weiter reduziert durch den Aufwand für Lese-Protokolle (z. B. 2,5 MHz). Um die BIOS-Ausführungsgeschwindigkeit zu erhöhen, speichern konventionelle Prozessoren im Allgemeinen einen eil des BIOS-Codes auf Zwischenspeichern, während der vor-ausziehbaren Firmware-Schnittstellen-Phase (PEI) des Boot-Prozesses. Die Größe des Prozessor-Zischenspeichers begrenzt die Größe des BIOS-Codes, der während der PEI-Phase (auch bekannt als ”PEI BIOS-Code”) verwendet wird.
  • B. Phasenwechselspeicher (PCM) und verwandte Technologien
  • Phasenwechselspeicher (PCM), manchmal auch bezeichnet als Phasenwechselspeicher mit wahlfreiem Zugriff (PRAM oder PCRAM), Ovonic Unified Memory oder Chalcogenider RAM (CRAM), ist eine Art von nicht flüchtigem Speicher, der das einzigartige Verhalten von chalcogenidem Glas nutzt. Als Ergebnis der beim Durchfluss von elektrischem Strom erzeugten Hitze, kann chalcogenides Glas zwischen zwei Zuständen wechseln: kristallin und amorph. Neueste Versionen von PCM können zwei weitere, unterschiedliche Zustände annehmen.
  • Der PCM-Speicher sorgt für höhere Leistung als der Flash-Speicher, weil das Speicherelement des PCM schneller umgeschaltet werden kann. Schreiben (wechseln individueller Bits auf entweder 1 oder 0) kann ausgeführt werden, ohne die Notwendigkeit, zuerst einen ganzen Zellenblock zu löschen und der Abbau durch das Beschreiben ist geringer (ein PCM-Gerät kann ca. 100 Millionen Schreibzyklen aushalten; PCM-Abbau findet wegen thermischer Ausbreitung während des Programmierens, wegen Metall-Abwanderung (und der anderer Materialien) und wegen anderer Mechanismen statt).
  • KURZE BESCHREIBUNG DER ZEICHNIUNGEN
  • Die folgende Beschreibung und die Begleitzeichnungen werden verwendet, um darzustellen, was die Erfindung verkörpert. In den Zeichnungen:
  • stellt eine Zwischenspeicher- und Systemspeicher-Anordnung dar, entsprechend der Ausgestaltung der Erfindung;
  • stellt eine Speicher-Hierarchie dar, angewendet entsprechend der Ausgestaltung der Erfindung;
  • zeigt ein Computer-Speichersystem mit einem DRAM-Bereich des Systemspeichers und einem PCMS-Bereich des Systemspeichers;
  • zeigt eine Methodik zur Speicherkanal-Abschaltung;
  • zeigt eine Methodik zur Reaktivierung eines Speicherkanals;
  • zeigt eine Tabelle der Stromverbrauchs-Stadien des Speichers, bei Nutzung eines Energie-Management-Systems;
  • zeigt Komponenten zur Ausführung von Speicherkanal-Abschaltung und -Reaktivierung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten wie Anwendungslogiken, Befehlscodes, Mittel zur Festlegung von Operanden, Anwendungen zur Ressourcen-partitionierung/gemeinsamen Nutzung von Ressourcen/Ressourcen-Vervielfältigung, Arten von Systemkomponenten sowie Wechselbeziehungen zwischen Systemkomponenten sowie Möglichkeiten der Logikpartitionierung/Logik-Integration darlegt, um für ein genaueres Verständnis der vorliegenden Erfindung zu sorgen. Für einen Fachmann ist es jedoch offensichtlich, dass die Erfindung auch ohne solche spezifischen Details umgesetzt werden kann. In anderen Fällen sind Kontrollstrukturen, Gateebenenschaltungen und gesamte Softwarebefehlsfolgen nicht im Detail dargestellt worden, um die Erfindung nicht zu verschleiern. Der Durchschnittsfachmann wird anhand der eingebundenen Beschreibungen in der Lage sein, ohne unangemessenes Experimentieren sachgerechte Funktionalität zu realisieren.
  • Bezugnahmen in der Beschreibung auf „eine Ausführungsform”, „eine beispielhafte Ausführungsform” weisen daraufhin, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft enthalten kann, aber dass nicht unbedingt jede Ausführungsform das besondere Merkmal, die besondere Struktur oder die bestimmte Eigenschaft enthalten muss. Ferner beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Desweiteren, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft im Zusammenhang mit einer Ausführungsform beschrieben ist, so wird weiterhin unterstellt, dass der Fachmann die Kenntnis besitzt, solch ein Merkmal, eine Struktur oder Eigenschaft im Zusammenhang mit anderen Ausführungsformen zu beeinflussen, unabhängig davon, ob sie ausführlich beschrieben sind oder nicht.
  • In der folgenden Beschreibung und den Ansprüchen können die Begriffe „gekoppelt” und „verbunden” samt ihrer Ableitungen verwendet sein. Es sollte davon ausgegangen werden, dass diese Begriffe nicht als Synonyme für einander vorgesehen sind. „Gekoppelt” wird verwendet um darauf hinzuweisen, dass zwei oder mehr Elemente, die möglicherweise direkten oder indirekten Kontakt zu einander haben, kooperieren oder aufeinander einwirken. ”Verbunden” wird verwendet, um auf die Einrichtung einer Kommunikation zwischen zwei oder mehr Elementen hinzuweisen, die miteinander gekoppelt sind.
  • Texte in Klammern und Blocks, die durch Striche getrennt sind (z. B. Schrägstrich, Gedankenstrich, Strichpunkt, Punkt) werden manchmal hierin verwendet, um optionale Prozesse/Komponenten darzustellen, die den Ausführungen der Erfindung zusätzliche Merkmale verleihen. Jedoch sollte ein solcher Vermerk nicht so verstanden werden, dass dies die einzigen Optionen oder optionalen Prozesse/Komponenten sind und/oder, dass Blocks mit durchgehender Umrandung nicht bei bestimmten Ausführungen der Erfindung optional sind.
  • EINLEITUNG
  • Speicherkapazität und Leistungsanforderungen steigen weiter, mit zunehmender Anzahl an Prozessorkernen und neuen Anwerndungen, wie der Virtualisierung. Zusätzlich sind Speicher-Stromverbrauch und Speicherkosten zu einer signifikanten Komponente der Gesamtverbrauchs- und der Gesamtkosten, in Bezug auf elektronische Systeme, geworden.
  • Manche Ausführungen der Erfindung lösen die oben genannten Herausforderungen durch intelligente Unterteilung der Leistungsanforderungen und des Kapazitätsbedarfs zwischen den Speichertechnologien. Der Fokus dieser Herangehensweise liegt bei der Leistungserbringung mit einer relativ kleinen Menge eines relativ schnellen Speichers, wie einem DRAM, während der Großteil des Systemspeichers durch die Nutzung eines erheblich günstigeren und dichteren, nicht-flüchtigen Arbeitspeichers (NVRAM) ausgeführt wird. Unten aufgeführte Ausführungen der Erfindung definieren Plattform-Konfigurationen, die hierarchische Speicher-Subsystem-Anordnungen, zur Nutzung von NVRAM, ermöglichen. Die Verwendung von NVRAM in der Speicher-Hierarchie ermöglicht auch neue Anwendungen, wie erweiterter Boot-Speicherplatz und Massenspeicher-Ausführungen, wie im Einzelnen unten beschrieben.
  • stellt eine Zwischenspeicher- und Systemspeicher-Anordnung dar, entsprechend der Ausgestaltung der Erfindung. Besonders zeigt eine Speicher-Hierarchie, die einen Satz interner Prozessor-Zwischenspeicher 120, einen ”Nah-Speicher”, der als Fern-Zwischenspeicher 121 fungiert, der sowohl den internen Zwischenspeicher 106 als auch die externen Zwischenspeicher 107109 enthalten kann, sowie den ”Fernspeicher” 122. Eine besondere Art von Speicher, der als ”Fernspeicher” bei einigen Ausführungen der Erfindung genutzt werden kann, ist ein nicht-flüchtiger Arbeitsspeicher (”NVRAM”). Als solches, ist eine Übersicht von NVRAM unterhalb aufgeführt, gefolgt von einer Übersicht von Fern- und Nah-Speichern.
  • A. Nicht-flüchtiger Arbeitsspeicher (”NVRAM”)
  • Es gibt eine große Auswahl an Technologien für NVRAM, einschließlich PCM, Phasenwechselspeicher und -Schalter (PCMS) (das Letztere ist eine speziellere Ausführung des Ersten), Byteadressierbarer Persistenzspeicher (BPRAM), universeller Speicher, Ge2Sb2Te5, programmierbare Metallisierungszelle (PMC), resistiver Speicher (RRAM), RESET-Zelle (amorph), SET-Zelle (kristallin), PCME, Ovshinsky-Speicher, ferroelektrischer Speicher (auch bekannt als Polymer-Speicher und Poly(N-Vinylcarbazol)), ferromagnetischer Speicher (auch bekannt als Spintronik, SPRAM (Drehmoment-Übertragungs RAM), STRAM (Drehtunnel RAM), magnetoresistiver Speicher, magnetischer Speicher, magnetischer Arbeitsspeicher (MRAM) und Halbleiter-Oxid-Nitrid-Oxid-Halbleiter (SONOS, auch bekannt als dielektrischer Speicher).
  • Für den in dieser Anwendung beschriebenen Gebrauch der Speicher-Hierarchie, hat NVRAM die folgenden Eigenschaften:
    • (1) Sein Inhalt bleibt erhalten, auch bei unterbrochener Stromversorgung, ähnlich wie bei Flash-Speichern, die bei Festkörper-Laufwerken (SSD) verwendet werden und anders als bei SRAM und DRAM, die flüchtig sind;
    • (2) Niedrigerer Energieverbrauch im Ruhezustand als flüchtige Speicher, wie SRAM und DRAM;
    • (3) Wahlfreier Zgriff, ähnlich wie bei SRAM und DRAM (auch bekannt als wahlfrei adressierbar);
    • (4) Wiederbeschreibbar und löschbar mit einer geringeren Granularitätsstufe (z. B. auf der Byte-Ebene) als Flash-Speicher, wie man sie in SSDs findet (die nur mit jeweils einem ”Block” wiederbeschrieben und gelöscht werden können – mit einer Mindestgröße von 64 KBytes bei NOR-Flashspeichern und 16 KBytes bei NAND-Flashspeichern);
    • (5) Verwendbar als Systemspeicher und ihm (NVRAM) wird der gesamte oder ein Teil des Systemspeicher-Adressraums zugeteilt;
    • (6) Kann mit dem Prozessor gekoppelt werden, mittels eines Datenbusses, unter Verwendung eines Transaktionsprotokolls (einem Protokoll, das Transaktionskennungen (IDs) unterstützt, um verschiedene Transaktionen voneinander zu unterscheiden, so dass diese Transaktionen in anderer Reihenfolge beendet werden können) und um Zugang zu erlauben, bei einer Granularitätsstufe, die gering genug ist, um den Betrieb des NVRAM als Hauptspeicher zu unterstützen (z. B. Zwischenspeicher-Zeilengrößen von 64 oder 128 Bytes). Zum Beispiel kann der Datenbus ein Speicher-Bus sein (z. B. ein DDR Bus, wie DDR3, DDR4 etc.), über welchen ein Transaktionsprotokoll geschickt wird, im Gegensatz zum Nicht-transaktionsbezogenen Protokoll, das normalerweise verwendet wird. Als weiteres Beispiel kann es sich um einen Bus handeln, über welchen normalerweie ein Transaktionsprotokoll (ein Standardprotokoll) geschickt wird, wie ein PCI-Express-Bus (PCIE), Benutzerflächen-Verwaltungs-Bus (DMI) oder eine andere Art von Bus, der ein Transaktionsprotokoll und einen Transaktionsumfang, der klein genug ist (z. B. Zwischenspeicher-Zeilengrößen von 64 oder 128 Bytes), verwendet; und
    • (7) eine on der mehrere der Folgenden beinhaltet: a) schnellere Schreibgeschwindigkeit als nicht-flüchtige Speicher-Technologien, wie z. B. Flash-Speicher; b) sehr hohe Lesegeschwindigkeit (schneller als Flash und fast so schnell wie oder ebenbürtig den DRAM Lesegeschwindigkeiten); c) direkt beschreibbar (anstatt der Notwendigkeit zu löschen (überschreiben mit 1ern) bevor Daten, wie bei in SSDs verwendeten Flash-Speichern) beschrieben werden können; und/oder d) Größenordnung (z. B. 2 oder 3) mit höherer Schreibbeständigkeit (höher als bei Boot ROM und Flash-Speichern, die in SSDs verwendet werden).
  • Wie oben erwähnt, ist im Gegensatz zum Flash-Speicher, bei dem jeweils ein kompletter Block überschrieben und gelöscht werden muss, die Granularitätsstufe, zu der, bei jeder festgelegten Ausführung, auf NVRAM zugegriffen wird, möglicherweise abhängig von der einzelnen Speichersteuerung und dem einzelnen Speicher-Bus oder der Art von Bus, an die der NVRAM gekoppelt ist. Zum Beispiel kann, bei manchen Anwendungen, bei denen der NVRAM als Systemspeicher genutzt wird, auf den NVRAM bei der Granularität einer Zwischenspeicher-Zeile zugegriffen werden (z. B. Zwischenspeicher-Zeilengröße von 64 oder 128 Bytes), ungeachtet der ursprünglichen Fähigkeit des Zugriffs bei der Granularität eines Bytes, weil die Zwischenspeicher-Zeile auf dem gleichen Niveau liegt, mit dem das Speicher-Subsystem auf den Speicher zuugreift. Somit kann, wenn NVRAM innerhalb eines Speicher-Sybsystems eingesetzt wird, darauf auf dem gleichen Granularitäts-Niveau zugegriffen werden, wie dem des DRAM (z. B. der ”Nah-Speicher”), der im gleichen Speicher-Subsystem verwendet wird. Trotzdem ist das Granularitäts-Niveau des Zugriffs auf den NVRAM, durch die Seichersteuerung und Speicher-Bus oder andere Art von Bus, niedriger als die der von Flash-Speichern verwendeten Blockgröße und Zugriffsgröße der Ein-/Ausgabe-Subsystem-Steuerung und des Busses.
  • Der NVRAM kann auch Abnutzungsgrad-Algorithmen enthalten, um der Tatsache Rechnung zu tragen, dass die Speicherzellen der Fernspeicher-Stufe, nach einer gewissen Anzahl an Schreibezugriffen, anfangen sich abzunutzen. Da sich Blöcke mit hoher Zyklusanzahl wahrscheinlich am Ehesten auf diese Art und Weise abnutzen, werden durch Abnutzungsverteilung Schreibzugriffe über den Fernspeicher verteilt, durch Adress-Austausch von Blöcken hoher Zyklusanzahl mit Blöcken niederer Zyklusanzahl. Bitte beachten Sie, dass die meisten Adress-Austausch-Vorgänge üblicherweise für die Anwendungsprogramme erkennbar sind, da dies durch Hardware, einfache Software (z. B. einen einfachen Treiber oder einem einfachen Betriebssystem) ausgeführt wird, oder durch eine Kombination von Beidem.
  • B. Fernspeicher
  • Der Fernspeicher 122 einiger Ausführungen der Erfindung, wird ausgeführt mit einem NVRAM, ist aber nicht notwendigerweise auf eine besondere Speichertechnologie beschränkt. Fernspeicher 122 ist unterscheidbar von anderen Informations- und Speicher-Technologien, in Bezug auf seine Eigenschaften und/oder ihre Anwendung in der Speicher-Hierarachie. Zum Beispiel unterscheidet sich der Fernspeicher 122 von:
    Statischen Arbeitsspeichern mit wahlfreiem Zugriff (SRAM), die für Stufe 0 und 1 der internen Prozessor-Zwischenspeicher 101a–b, 102a–b, 103a–b und 104a–b verwendet werden, die entsprechend den Prozessorkernen 101104 fest zugeordnet sind, sowie dem nachrangigen Zwischenspeicher (LLC) 105, der von den Prozessorkernen geteilt wird;
    Dynamischen Arbeitsspeichern mit wahlfreiem Zugriff (DRAM), die als interner Zwischenspeicher 106 für den Prozessor 100 konfiguriert sind (z. B. auf der gleichen Platine wie der Prozessor 100) und/oder als ein oder mehrere äußere Zwischenspeicher 107109 des Prozesors konfiguriert sind (z. B. in der gleichen oder in einer anderen Einheit des Prozessor 100), und
    Flash-Speicher/Festplatte/optischer Speicherplatte in der Anwendung als Massenspeicher (nicht gezeigt); und
    von Speichern, wie dem Flash-Speicher oder anderen Lese-Speichern (ROM), die als Firmware-Speicher angewendet werden (was sich auf Boot ROM, Flash und/oder TPM Flash beziehen kann) (nicht gezeigt).
  • Der Fernspeicher 122 kann als Informations- und Datenspeicher verwendet werden, der durch einen Prozessor 100 direkt adressierbar ist und der in der Lage ist, ausreichend Schritt zu halten, mit dem Prozessor 100, im Gegensatz zu Flash-Speicher/Festplatte/optischer Speicherplatte, die als Massenspeicher angewendet werden. Außerdem, wie oben erörtert und im Detail unterhalb beschrieben, kann der Fernspeicher 122 auf einem Speicher-Bus platziert werden und könnte direkt mit einer Speicher-Steuerung kommunizieren, die im Gegenzug, direkt mit dem Prozessor 100 kommuniziert.
  • Der Fernspeicher 122 könnte mit anderen Informations- und Speicher-Technologien kombiniert werden (z. B. DRAM), um einen Hybrid-Speicher zu bilden (auch bekannt als: Zusammenlegung von PCM und DRAM, erstraniger und zweitrangiger Speicher; FLAM (Flash und DRAM)): Bitte beachten Sie, dass zumindest einige der oben genannten Technologien, einschließlich PCM/PCMS, für Massenspeicherung verwendet werden könnten, satt für oder zusätzlich zum Systemspeicher, und diese müssen keinen wahlfreien Zugriff haben, nicht durch den Prozessor Byte-adressierbar oder direkt adressierbar sein, wenn sie auf diese Weise angewendet werden.
  • Zur leichteren Erklärung können die Begriffe NVRAM, PCM, PCMS und Fernspeicher austauschbar verwendet werden, in nachfolgender Erörterung. Jedoch sollte realisiert werden, wie oben erörtert, dass auch andere Technologien für Fernspeicher verwendet werden können. Auch, dass der NVRAM nicht auf die Verwendung als Fernspeicher begrenzt ist.
  • BEISPIEL EINES SYSTEMSPEICHER-ZUWEISUNGS-SCHEMAS
  • zeigt, wie unterschiedliche Stufen der Zwischenpeicher 101109 konfiguriert sind, im Hinblick auf einen system-physischen Adressraum (SPA) 116119, in der Ausgestaltungsform der Erfindung. Wie bereits erwähnt, enthält diese Ausführung einen Prozessor 100 mit mehreren Kernen 101104, wobei jeder Kern seinen eigenen, zugeordneten, höherrangigen Zwischenspeicher (L0) 101a104a und mittelrangigen Zwischenspeicher (MLC) (L1) 101b104b hat. Der Prozessor 100 enthält auch einen geteilten LLC 105. Der Einsatz dieser verschiedenen Zwischenspeicher-Stufen ist gut nachvollzogen und wird hier nicht im Einzelnen beschrieben.
  • Die Zwischenspeicher 107109, aufgeführt in können einem bestimmten Systemspeicher-Adressbereich oder einem Satz nicht-zusammenhängender Adressbereiche fest zugeordnet werden. Zum Beispiel ist Zwischenspeicher 107 fest der Funktion als Nebenspeicher (MSC) für Systemspeicher-Adressbereich Nr. 1 116 zugeordnet und die Zwischenspeicher 108 und 109 sind fest der Funktion als Nebenspeicher für nicht-überlappende Bereiche der Systemspeicher-Adressbereiche Nr. 2 117 und Nr. 3 118 zugeordnet. Die letztere Durchführung könnte für Systeme verwendet werden, in welchen der vom Prozessor genutzte SPA-Raum sich mit dem von den Zwischenspeichern 107109 genutzten Adress-Bereich überlappt (z. B. bei Konfiguration als MSCs). Bei manchen Ausführungen wird sich auf diesen letzteren Adress-Bereich als Speicherkanal-Adressraum (MCA) bezogen. Bei einer Ausführung, leisten die internen Zwischenspeicher 101a106 Zwischenspeicher-Tätigkeiten für den gesamten SPA-Raum.
  • Ein Systemspeicher, wie hierin verwendet, ist ein Speicher, der für auf dem Prozessor 100 ausgeführte Software sichtbar und/oder direkt adressierbar ist; während die Zwischenspeicher 101a109 transparent gegenüber der Software eingesetzt werden, in dem Sinn, dass sie keinen direkt adressierbaren Teil des System-Adressraums bilden, aber die Kerne können auch die Ausführung von Informationen unterstützen, um der Software einige Kontrolle (Konfiguration, Richtlinien, Hinweise, etc.) über einige oder alle Zwischenspeicher zu ermöglichen. Die Unterteilung des Systemspeichers in die Bereiche 116119 kann manuell ausgeführt werden, als Teil eines System-Konfigurationsprozesses (z. B. durch einen Systementwickler) und/oder kann automatisch, durch die Software, ausgeführt werden.
  • In einer Ausführung werden die Systemspeicher-Bereiche 116119 durchgeführt, durch Verwendung eines Fernspeichers (z. B. PCM) und, in manchen Ausführungen, werden sie durchgeführt, durch einen als Systemspeicher konfigurierten Nahspeicher. Der Systemspeicher-Adressbereich Nr. 4 stellt einen Adressbereich dar, der durch die Verwendung von Hochgeschwindigkeits-Speichern ausgeführt wird, wie DRAM, was durch einen Nahspeicher, der in den Systemspeicher-Modus konfiguriert wurde (im Gegensatz zum Zwischenspeicher-Modus), erreicht werden kann.
  • zeigt eine Speicher-Herarche 140 und unterschielich konfigurierbare Operations-Modi für Nahspeicher 144 und NVRAM, entsprechend der Ausführungen der Erfindung. Die Speicher-Hierarchie 140 hat mehrere Stufen, einschließlich (1) einer Zwischenspeicher-Stufe 150, die die Prozessor-Zwischenspeicher 150A (z. B. Zwischenspeicher 101A105 in ) enthalten kann und optional einen Nahspeicher als Zwischenspeicher für den Fernspeicher 150B (in bestimmten Operations-Modi), (2) einer Systemspeicher-Stufe 151, die den Fernspeicher 151B (z. B. NVRAM, wie auch PCM) enthält und einen Nahspeicher, der als Systemspeicher 151A eingesetzt wird, (3) einer Massenspeicher-Stufe 152, die einen Flash-/Festplatten-/optischen Massenspeicher 152B und/oder einen NVRAM Massenspeicher 152A (z. B. ein Teil des NVRAM 142) enthalten könnte; und (4) einer Firmware-Speicherstufe 153, die den BIOS Flashspeicher 10 und/oder den BIOS NVRAM 172 und optional das sichere Plattform-Modul (TPM) NVRAM 173 enthalten könnte.
  • Wie angegeben, könnte der Nahspeicher 144 ausgeführt werden, um in einem Modus zu agieren, in dem er als Systemspeicher 151A arbeitet und einen Teil des SPA-Raums belegt (manchmal bezeichnet als Nahspeicher-”Direktzugriffs-Modus”), und in einem oder mehreren Operations-Modus/modi, wie z. B. als Scratchpad-Zwischenspeicher 192 oder als Schreibpuffer 193. In manchen Ausführungen der Erfindung ist der Nahspeicher unterteilbar, wobei jede Unterteilung gleichzeitig in einem unterschiedlichen Modus, der unterstützten Modi, arbeiten könnte; und andere Ausführungen könnten die Konfiguration der Unterteilungen unterstützen (z. B. Größen, Modi), durch Hardware (z. B. Sicherungen, Stecker), Firmware und/oder Software (z. B. durch einen Satz programmierbarer Registerbereiche innerhalb der MSC-Steuerung 124, innerhalb der beispielsweise verschiedene Binär-Codes gespeichert werden können, um jeden Modus und jede Unterteilung zu identifizieren).
  • Wie beobachtet in , wird der System-Adressbereich B 191 verwendet, um eine Durchführung zu zeigen, wenn allen oder einem Teil des Nahspeichers ein Teil des System-Adressraums zugeordnet wird. In dieser Ausführung stellt der System-Adressraum B 191 den Bereich des System-Adressraums dar, der dem Nahspeicher 151A fest zugeordnet ist und System-Adressraum A 190 stellt den Bereich des System-Adressraums dar, der dem NVRAM 174 fest zugeordnet ist.
  • Beim Betrieb im Nahspeicher-Direktzugriffs-Modus sind alle oder Teile des Nahspeichers als Systemspeicher 151A für die Software direkt sichtbar und bilden einen Teil des SPA-Raums. Solche Speicher können komplett unter Kontrolle der Software stehen. Solch ein Schema kann einen uneinheitlichen Speichezugriff-(NUMA)Bereich für Software erzeugen, wo diese höhere Leistung aus dem Nahspeicher 144 bezieht, im Verhältnis zum NVRAM Systemspeicher 174. Zum Beispiel, und uneingeschränkt, wird so eine Nutzung verwendet für bestimmte Hochleistungs-Computer (HPC) und Grafik-Anwendungen, die sehr schnellen Zugriff auf bestimmte Datenstrukturen benötigen.
  • stellt auch dar, dass ein Teil des NVRAM 142 als Firmware-Speicher genutzt werden kann. Zum Beispiel könnte der BIOS NVRAM 172-Teil verwendet werden, um BIOS-Darstellungen zu speichern (anstatt oder zusätzlich zur Speicherung der BIOS-Information im BIOS Flash-Speicher 170). Der BIOS NVRAM-Teil 172 könnte ein Teil des SPA-Raums sein und ist direkt, durch die auf den Prozesorkernen 101104, ausgeführten Programme adressierbar, wobei der BIOS Flashspeicher 170 durch das Ein-/Ausgabe-Sybsysem 115 adressierbar ist. Als weiteres Beispiel kann ein Teil eines sicheren Plattform-Moduls (TPM) NVRAM 173 verwendet werden, um sensible Systeminformationen (z. B. Kodierungsschlüssel) zu schützen.
  • Daher, wie bereits angegeben, könnte der NVRAM 142 eingesetzt werden, um in unterschiedlichen Modi zu arbeiten, einschließlich als Fernspeicher 151B (z. B. wenn Nahspeicher 144 vorhanden ist/Funktion mit Direktzugriff); NVRAM Massenspeicherung, BIOS NVRAM 172, und TPM NVRAM 173.
  • Die Auswahl des Systemspeichers und der Massenspeichergeräte kann von der Art der elektronischen Plattformen abhängen, auf welchen die Ausführungen der Erfindung angewendet werden. Zum Beispiel können bei PCs, Tablet-Computern, Notebooks, Smartphones, Handys, Multimedia-Telefonen, Mini-Computern (PDA), tragbaren Medienabspielgeräten, tragbarn Spielkonsolen, Spielkonsolen, Digitalkameras, Schaltern, Netzknoten, Routern, Set-top Boxen, digitalen Videorecordern oder anderen Geräten, die relativ kleine Massenspeicher-Anforderungen haben, die Massenspeicherung durch Verwendung des NVRAM Massenspeichers 152A alleine oder durch Verwendung des NVRAM Massenspeichers 152A, in Kombination mit einem Flash-/Festplatten-/optischen Massenspeicher 152B.
  • Bei anderen elektronischen Plattformen, die relativ hohe Massenspeicher-Anforderungen haben (z. B. Groß-Server), kann die Massenspeicherung durch Verwendung von Magnetspeichern (z. B. Festplatten) oder jeglicher Kombination aus Magnetspeichern, optischen Speichern, holographichen Speichern, Flash-Massenspeichern und NVRAM Massenspeicher 152A, durchgeführt werden. In solchen Fällen können die für die Speicherung zuständigen Geräte und/oder Programme des Systems unterschiedliche intelligente dauerhafte Speicherzuweisungsverfahren durchführen, um Blöcke dauerhafter Programm-Codes und Daten zwischen dem FM 151B/NVRAM Speicher 152A und einem Flash/magnetischen/optichen Massenspeicher 152B, in effizienter oder anderweitig sinnvoller Weise, zuzuordnen.
  • Zum Beispiel ist in einer Ausführungsform ein Hochleistungs-Server konfiguriert, mit einem Nah-Speicher (z. B. DRAM), einem PCMS-Gerät und einem magnetischen Massenspeicher-Gerät, für große Mengen dauerhaft zu Speicherndem. In einer Ausführungsform, ist ein Notebook konfiguriert mit einem Nah-Speicher und einem PCMS-Gerät, das sowohl die Rolle eines Fernspeichers und eines Massenspeichergerätes ausfüllt. Eine Ausführungsform eines Heim- oder Büro-Computers ist, eine ähnliche Konfiguration wie die des Notebooks, die aber auch ein oder mehrere Magnetspeicher-Geräte enthalten kann, um für die Fähigkeit zur dauerhaften Speicherung großer Mengen zu sorgen.
  • Eine Ausführungsform eines Tablet-Computers oder Mobiltelefons ist die Konfiguration mit einem PCMS-Speicher aber möglicherweise ohne Nah-Speicher und ohne zusätzlichen Massenspeicher (aus Kosten-/Energieeinsparungs-Gründen). Jedoch kann das Tablet/Telefon mit einem entfernbaren Massenspeichergerät konfiguriert werden, wie einem Flash oder PCMS-Memorystick.
  • Verschiedene andere Arten von Geräten können, wie oben beschrieben, konfiguriert werden. Zum Beispiel können tragbare Medienabspielgeräte und/oder Mini-Computer (PDAs) auf ähnliche Weise konfiguriert werden, wie die zuvor beschriebenen Tablets/Telefone. Spielkonsolen können auf ähnliche Weise konfiguriert werden wie Desktop- oder Laptop-Computer. Andere Geräte, die ähnlich konfiguriert werden können, sind unter anderem: Digitalkameras, Router, Zusatzgeräte, digitale Videorecorder, Fernseher und Autos.
  • BEISPIEL EINES SYSTEMSPEICHER-ZUWEISUNGS-SCHEMAS
  • zeigt eine Speichersteuerung 300 eines Comuter-Systems mit den betreffenden Schnittstellen 301_1 bis 301_8, für eine Vielzahl von Speicherkanälen (z. B. DDR-Kanäle) 302_1 bis 302_8, wobei jeder Kanal eine oder mehrere DIMM-Karten (sollheißen, eine oder mehrere DIMM-Karten können in den Speicherkanal eingesteckt werden) unterstützt. Und und zeigen Verfahren zur Steuerung des Energieverbrauchs eines Computer-Systems, durch Abschaltung/Einschaltung eines Speicherkanals und seiner zugehörigen DIMM-Karten. Zur Vereinfachung werden 8 Speicherkanäle gezeigt. Jedoch ist auch Nutzern mit durchnittlichen Kenntnissen klar, dass das Gezeigte hierin auch bei Systemen mit anderer Anzahl an Speicherkanälen angewendet werden kann.
  • Entsprechend der Verfahrensweise in , kann zum Beispiel entschieden werden (z. B. durch intelligente Energiemanagement-Software), ein Computer-System auf niedrigen Leistungszustand zu stellen, durch das Abschalten eines Speicherkanals, der derzeit arbeitet. Dagegen, entsprechend der Verfahrensweise in , kann entschieden werden, das Computer-System auf höheren Leistungszustnd zu schalten, durch Einschalten eines Speicherkanals, der derzeit nicht arbeitet.
  • Erinnern Sie sich aus daran, dass manche Computer-Systemausführungen, mit DRAM und NVRAM Systemspeicher-Komponenten, einen ersten Teil von Systemspeicher-Adressen für DRAM und einen zweiten Teil der Systemspeicher-Adressen für NVRAM reservieren können. Sprich, bei der ”Nah-Speicher agiert als Systemspeicher” Herangehensweise, kann der adresierbare Systemspeicher sowohl DRAM (siehe z. B. , Nah-Speicher als Systemspeicher 151A) als auch PCMS (siehe z. B. Fernspeicher 151B ausgeführt als NVRAM Systemspeicher 174).
  • Entsprechend einer Ausführungsform, zurückbezogen auf , wird jedem der Speicherkanäle 302_1 bis 302_8 ein eigener Teil oder Segment der Systemspeicher-Adressen des Computers zugewiesen, entsprechend des auf dem Speicherkanal verfügbaren Speicherplatzes. Wiederum ist der auf einem Speicherkanal verfügbare Speicherplatz eine Funktion der Anzahl von in den Speicherkanal eingeteckten DIMM-Karten und der Speicherdichte auf den Speichergeräten der DIMM-Karten.
  • Entsprechend einer weiteren Ausführungsform, ist ein erster Teil 303 der Speicherkanäle (und damit ein entsprechender erster Teil/Segment des Systemspeicher-Adresssraums) für DRAM DIMMs und ein weiterer Teil 304 der Speicherkanäle (und damit ein entsprechender, verbleibender zweiter Teil/Segment des Systemspeicher-Adressraums) für PCMS DIMMs reserviert.
  • Entsprechend dieser besonderen Ausführungsform, agiert der DRAM Speicherplatz 303 nicht als Zwischenspeicher für den PCMS Speicherplatz 304. Es ist eher so, daß der Systemspeicherplatz konfiguriert ist, um ”zeitkritische” Zugangsinformationen (wie Programmbefehlscodes oder zumindest, häufig verwendete Programm-Befehlscodes) im DRAM Speicherraum 303 und ”nicht oder weniger zeitkritische” Informationen (wie Daten oder zumindest, Daten auf die selten zugegriffen wird) im PCMS-Speicherplatz 304 zu speichern.
  • Damit weist das Betriebssystem und/oder die virtuelle Maschinenverwaltung, die auf der CPU des Computers laufen, den Speicher-Adressraum, entsprechend dieses Schemas, zu. Zum Beispiel, erhalten häufig verwendete Programm-Befehle einen Adressraum, der (mindestens)) dem der Speicherkanäle mit DRAM DIMMs entspricht und selten verwendete Daten erhalten einen Adressraum, der (mindestens) dem der Speicherkanäle mit PCMS DIMMS entspricht. Bei verschiedenen Ausführungsformen, hat der bei jeder Adresse gespeicherte Inhalt, ob bei DRAM oder PCMS, eine festgelegte Datenwort-Länge (z. B. ein 64 Bit-Datenwort oder ein 128 Bit-Datenwort), bezeichnet als ”Cache-Zeile”. Aus Komfort-Gründen, werden die Begriffe ”Inhalt” und ”Cache-Zeile”, in der folgenden Erörterung, austauschbar verwendet, in Bezug auf die bei einer Systemspeicher-Adresse gespeicherten Informationen.
  • Bezogen auf die Verfahrensweise der , bei Anwendung im direkt zuvor beschriebenen Computer-System, beinhaltet das Abschalten eines Speicherkanals, um in einen niedrigeren Leistungszustand zu schalten, das Abschalten der DIMM-Karten des Speicherkanals und ihrer entprechenden Speicher-Geräte.
  • Besonders effektive Staffelung des Energieverbrauchs und der Leistung kann erreicht werden, wenn die Kanäle mit DRAM DIMM-Karten zum Ein-/Abschalten ausgewählt werden. Da DRAM-Geräte schneller sind und mehr Strom verbrauchen als PCMS-Geräte, solte der Abfall des Leistungszustands, durch Abschalten eines DRAM-Speicherkanals, den Energievebrauch und die Leistung eines Computer-Systems erheblich senken. Ebenso sollte der Anstieg auf einen höhreren Leistungszustand, durch das Einschalten eines DRAM-Speicherkanals, eheblich die Leistung und den Energieverbrauch des Computer-Systems erhöhen.
  • Jedoch gibt die Speicherverwaltung Anlass zur Sorge. Besonders, wenn ein DRAM-Speicherkanal abgeschaltet oder eingeschaltet ist, sollte der Systemspeicher-Adressraum erfolgreich neu konfiguriert werden, um der Änderung des verfügbaren DRAM-Speicherraums Rechnung zu tragen. Dies beinhaltet das ”Bewegen” des Inhalts des abzuschaltenden DRAM-Kanals auf einen anderen Systemspeicher-Platz. Entsprechend der Verfahrensweise in , verfolgt das Betriebssystem und/oder ein virtueller Maschinenmonitor und/oder eine virtuelle Maschinen- und/oder Energieverwaltungs-Komponente (hierin nachfolgend als ”System-Software” bezeichnet) die Verwendung 402 der virtuellen Adressen nach, die dem DRAM zugewiesen sind, um Kenntnisse darüber zu erlangen, auf welche virtuellen Adressen häufiger und/oder auf welche virtuellen Adressen seltener zugegriffen wird.
  • Eine dem Stand der Technik bekannte System-Software ist üblicherweise entworfen, um sich auf virtuelle Adressen zu beziehen und die zugrunde liegende Hardware ist dafür zuständig, die virtuellen Adressen in entsprechende physische Adressen des im System vorhandenen Systemspeichers umzuwandeln.
  • Wenn entschieden wurde, einen DRAM Speicherkanal abzuschalten, rekonfiguriert die System-Software effizient den DRAM Adressraum so, daß häufiger verwendete virtuelle Adressen dem DRAM Adressraum zugeordnet bleiben und, eine Gruppe von weniger genutzten virtuellen DRAM Adressen, deren Anzahl ungefähr oder genau gleich hoch ist wie die physischen Adressen, die im abzuschaltenden DRAM Speicherkanal verbleiben, neu dem PCMS Adressraum zugeordnet werden. Die daraus resultierende Neuzuordnung der zugrunde liegenden physischen Adressen (einschließlich Migration des Inhalts häufig verwendeter Adressen im abzuschaltenden DRAM Kanal zu einem DRAM Kanal der aktiv bleiben soll, und der Migration des Inhalts weniger genutzter DRAM Adressen zu PCMS Adressraum) wirkt sich notwendigerweise auf die gerade zuvor beschriebene Umwandlung virtueller Adressen in physische Adressen aus.
  • Üblicherweise agiert ein im Hauptprozessor (CPU) oder ”Prozessor” 306 vorhandener Übersetzungspuffer (TLB) 305 als Zwischenspeicher für Umwandlungen virtueller Adressen in physische Adressen. Ein TLB ist in der Technik wohlverstanden, aber ein kurzer Überblick seiner Rolle und Funktion ist erwähnenswert. Ein TLB enthält eine Anzahl von Umwandlungseinträgen (TEs), wobei jeder TE eine eindeutige physische Adresse für eine bestimmte virtuelle Adresse ermittelt, auch bezeichnet als Adress-Umwandlung. Üblicherweise ist die Umwandlung selbst auf die Granularität der Speicherseite festgelegt. Daher enthält der TE einer virtuellen Adresse die entsprechende Speicherseite seiner physischen Adresse, im Systemspeicher des Computer-Systems.
  • Der TLB ist ausgelegt, um den Satz von TEs (bis zur Größe des TLB) zu enthalten, deren zugehörige als Neuestes durch den ausführenden Programm-Code aufgerufen wurden. Da jede der vom ausführenden Programm-Code aufgerufenen, virtuellen Adressen, entweder einen bestimmten Befehlscode oder ein bestimmtes Datenelement bezeichnet nach dem gearbeitet wird, können verschiedene Prozessor-Aufbauten sowohl einen Befehls-TLB als auch einen Daten-TLB enthalten.
  • Bei einem Befehls-TLB wird, während der Ausführung eines Befehlscodes, eine nächste virtuelle Adresse, für einen nächsten Befehl geholt und im Befehls-TLB wird eine Suche nach der virtuellen Befehls-Adresse und der entsprechenden virtuellen Adresse innerhalb des Befehls-TLB TEs durchgeführt. Bei einem gemeinsamen Ansatz, werden untergeordnete Bits der Virtuellen Adresse nicht bei der Suche verwendet, so dass der Such-Parameter (d. h. übergeordnete Bits der virtuellen Adresse) im Wesentlichen der Adresse einer virtuellen Speicherseite entspricht. Falls eine Paarung gefunden wird, bezeichnet die im TE befindliche physische Adresse, die die virtuelle Adresse hat, eine bestimmte Speicherseite auf dem Systemspeicher, wo der gewünschte Befehl gefunden werden kann.
  • Falls im Befehls-TLB keine passende virtuelle Adresse gefunden wird (ein Befehls-TLB-Fehlschlag), dann holt die Hardware des Prozessors den entsprechenden TE aus dem Systemspeicher. Die physische Adresse innerhalb des vom Systemspeicher geholten TEs bezeichnet die Speicherseite im Systemspeicher, wo der nächste Befehl gefunden werden kann. Eine Kopiie des aus dem Systemspeicher geholten TEs wird üblicherweise auch in den Befehl-TLB geladen und der älteste, verwendete TE wird aus dem Befehls-TLB entfernt. Der originale, aus dem Systemspeicher geholte, TE verbleibt im Systemspeicher.
  • Der Daten-TLB, einschließlich Systembetrieb als Antwort auf einen Daten-TLB-Fehlschlag, funktioniert ziemlich gleich wie oben beschrieben. Außer, daß die virtuelle Adresse für ein gewünschtes Datenelement dient und die, im gewünschten TE befindliche, physische Adresse eine Seite im Systemspeicher bezeichnet, wo die gewünschten Daten zu finden sind.
  • Es ist wichtig, daß Sie beachten, daß der Satz an TEs, der alle Umwandlungen virtueller Adressen in physische Adressen enthält (sowohl für Befehle als auch für Daten), für den Satz virtueller Adressen, den ein Betriebsprogramm (z. B. eine Anwendung und/oder eine virtuelle Maschine) evtl. während seines Ablaufs aufruft, sich in einem speziellen Speicher 307, genannt TE-Speicher, befindet, der im Systemspeicher aufbewahrt wird. In einer Ausführungsform wird der TE-Speicher 307 in den Systemspeicher geladen, als Teil des Ladens des Betriebsprogramms, zur Ausführung, in den Speicher. Wenn mehrere Programme gleichzeitig auf dem Computer ausgeführt werden, wird bei einer Ausführung, ein TE-Speicher für jedes Betriebsprogramm im Systemspeicher aufbewahrt. Bei einer weiteren Ausführung, werden alle TE-Speicher, und damit alle TEs, in einem speziellen Segment des DRAM Systemspeichers, auf einem DRAM-Kanal, der nicht abgeschaltet werden kann, aufbewahrt.
  • Wenn Systemspeicherplatz rekonfiguriert wird, um das Abschalten (oder Einschalten) eines Speicherkanals, als Teil einer Energie-Management-Entscheidung zum Wechsel des Computer-Leistungszustands, zu berücksichtigen, erzeugt die zuvor erwähnte Bewegung des DRAM-Speicherinhalts die Notwendigkeit, daß jede zu bewegende Zwischenspeicher-Zeile, die daher eine ”neue” physische Adresse erhält, ihren entspreichenden TE aktualisiert, um ihren neuen physischen Adressen-Standort 404 wiederzugeben. Konkret enthalten die zu aktualisierenden TEs: i) TEs von häufiger verwendeten DRAM-Adressen, deren Inhalt von einem abzuschaltenden DRAM-Kanal zu einem DRAM-Kanal, der nicht abgeschaltet wird, bewegt werden soll; und, ii) TEs von seltener verwendeten DRAM-Adressen, dern entsprechender Inhalt zu PCMS Adressplatz bewegt werden soll.
  • In einer unwahrscheinlichen Situation, befinden sich alle der am seltensten verwendeten DRAM-Adressen auf dem bestimmten DRAM-Kanal, der abgeschaltet werden soll. In diesem Fall sind keine DRAM-Adressen auf irgendeinem anderen DRAM-Kanal von der Kanal-Abschaltung betroffen (d. h., der Gesamtinhalt des abzuschaltenden DRAM-Kanals wird in die PCMS-Speicherung verschoben). Als solches, in diesem unwahrscheinlichen Szenario, werden nur die TEs der DRAM-Adressen des abzuschaltenten Kanals verändert, um eine neue Adresse im PCMS-Speicher wiederzugeben.
  • In einem wahrscheinlicheren Szenario, befinden sich einige der häufiger verwendeten DRAM-Adressen auf dem abzuschaltenden Speicherkanal und einige der seltener verwendeten DRAM-Adressen befinden sich auf den verbleibenden Kanälen, die nicht abgeschaltet werden. Bei einer Ausführung, ist die Anzahl der am seltensten verwendeten DRAM-Adressen, die zur Verschiebung in den PCMS-Speicher bezeichnet sind, gleich hoch (oder ungefähr gleich) wie die Anzahl der Adressen, die vom abzuschaltenden DRAM-Speicher unterstützt werden. Dies entspricht im Wesentlichen dem Gleichstellen der Anzahl an DRAM-Adressen, die zur Verschiebung in PCMS-Speicherung gekennzeichnet sind, mit der Anzahl an DRAM-Adressen, die durch die Abschaltung des DRAM-Kanals verloren gehen.
  • Mit dieser Herangehensweise, sollte die Anzahl an häufig verwendeten DRAM-Adressen auf dem abzuschaltenden DRAM-Kanal, deren Inhalt zu einer neuen DRAM-Adresse bewegt werden muss (genauer gesagt, zu einer Adresse auf einem anderen DRAM-Kanal, der eingeschaltet bleiben soll) die Gleiche sein, wie die Anzahl der am seltensten verwendeten DRAM-Adressen auf den DRAM-Kanälen, die aktiv bleiben sollen, deren Inhalt zu einer neuen PCMS-Adresse bewegt werden muss (d. h. einer Adresse im PCMS-Speicher). Als solches, kann der Inhalt des Ersteren den Ihnhalt des Letzteren in dem DRAM-Raum ersetzen, der nach der Kanal-Abschaltung aktiv bleibt. Das heißt, der Inhalt von häufig verwendeten DRAM-Adressen auf dem abzuschaltenden DRAM-Kanal kann in die DRAM-Adressen der am seltensten verwendeten DRAM-Adressen der DRAM-Kanäle geschrieben werden, die nicht abgeschaltet werden.
  • Als solches, entsprechend der Herangehensweise von , werden die Zwischenspeicher-Zeilen von am seltensten verwendeten DRAM-Adressen, sowohl die auf dem abzuschaltenden DRAM-Kanal als auch die auf einem anderen DRAM-Kanal, aus DRAM ausgelesen und in PCMS-Speicherraum 403 geschrieben. Die physischen Adressdaten für ihre jeweiligen Speicherseiten, wie in ihren entsprechenden TEs, im Systemspeicher, hinterlegt (in ihren jeweiligen TE-Speichern – weil mehrfache Software-Anwendungen von der Kanal-Abschaltung betroffen sein können), werden geändert um ihre jeweiligen neuen PCMS-Adressen 404 wiederzugeben.
  • Dann werden die ”gerade freigewordenen” DRAM-Adressen auf den aktiven DRAM-Kanälen neu bevölkert, mit den Zwischenspeicher-Zeilen der häufig verwendeten DRAM-Adressen des abzuschaltenden DRAM-Kanal 405.
  • Als Solches, wird jede freigewordene, am seltensten verwendete DRAM-Adresse, die auf einem aktiven Kanal verblieben ist, mit einer Zwischenspeicher-Zeile aus einer anderen, häufiger verwendeten DRAM-Adresse des abzuschaltenden Kanals, überschrieben. Die TE-Aufzeichnung, im Systemspeicher, für jede der Speicherseiten der häufiger verwendeten DRAM-Adressen, die vom abzuschaltenden Kanal auf die aktiv bleibenden DRAM-Kanäle verschoben werden, wird verändert um ihren neuen physischen Adress-Standort 406 wiederzugeben. Insbesondere, entspricht jede neue physische Adresse einer Adresse, die zuvor als am seltensten verwendet gekennzeichnet war.
  • In einer Ausführung, als Teil der ursprünglichen System-Inbetriebnahme (z. B. lange vor der Entscheidung zur Abschaltung des DRAM-Kanals), wird ein Teil des PCMS-Speichers 308 rserviert zum Erhalt von Zwischenspeicher-Zeilen ”im Wert eines DRAM-Kanals”, für den Fall einer DRAM-Kanal-Abschaltung. Hier werden keine aktiven Daten im PCMS-Segment gespeichert, es sei denn und bis ein DRAM-Kanal abgeschaltet wird. Zu diesem Zeitunkt wird eine Anzahl an Zwischenspeicher-Zeilen, in der Gesamt-Datengroesse äquivalent zur Speicherkapazität des abzuschaltenden DRAM-Kanals vom DRAM-Speicherraum in das Segment 308 geladen. Beim Aktualisieren ihrer entsprechenden TEs in ihren jeweiligen TE-Speichern wird auf diese Zwischenspeicher-Zeilen nachträglich vom PCMS-Bereich zugegriffen, um Programm-Abläufe zu unterstützen. Mehrere solcher PCMS-Bereiche des Systemspeichers können vor-reserviert werden, wie oben beschrieben, um ein System zu unterstützen, das ablaufen kann während mehrere DRAM-Kanäle abgeschaltet werden 407.
  • Als Teil des Systemspeicher-Rekonfigurationsprozesses, der oben beschrieben wurde, wird jede in einem TLB vorhandene Kopie eines TE ungültig gemacht. Beachten Sie, dass Systemfunktionen während des Ablaufs der Systemspeicher-Konfiguration auch außer Kraft gesetzt werden können.
  • Nachdem ein DRAM-Kanal abgeschaltet wurde, mit Bezug auf , kann eine nachträgliche Entscheidung durch das Betriebssystem getroffen werden, in einen höheren Leistungszustand 502 einzutreten, was die Aktivierung eines derzeit inaktiven DRAM-Kanals 502 beinhaltet. In diesem Fall, werden Zwischenspeicher-Zeilen, die sich im zuvor erwähnten Bereich 308 des PCMS-Systemspeichers 304 befinden, der für die Speicherung von aus DRAM herunter verschobenem Inhalt reserviert ist, ”zurück hinauf verschoben” zum DRAM-Kanal 503, der reaktiviert wird. Die physischen Adress-Komponenten der TEs für die entsprechenden Speicherseiten aller solcher Zwischenspeicher-Zeilen werden im TE-Speicher 307 geändert, um ihre neue Speicherung im kürzlich aktivierten DRAM-Kanal 504 wiederzugeben. Wieder können Systemfunktionen außer Kraft gesetzt werden, zur Durchführung der Aktiviertung des DRAM-Kanals, Verschiebung der Zwischenspeicher-Zeilen, TE-Änderung und zum Ungültigmachen jeglicher Kopien von in einem TLB befindlichen geänderten TEs.
  • zeigt eine Software-Tabellenstruktur-Hierarchie, die zum Beispiel durch ein intelligentes Energie-Management-Programm (wie ACPI) verwendet werden kann, um die Fähigkeit eines Computer-Systems zur Ein-/Ausschaltung eines Speicherkanals, wie oben beschrieben, zu unterstützen. Wie beobachtet in , enthält die Speicherstromzustand-Tabellen-Hierarchie 600 eine Überschrift 601, einen Befehlssatz 602, Definitionen eines oder mehrerer Stromknoten 603_1 bis 603_X sowie die Eigenschaften der unterschiedlichen Stromzustände 604_1 bis 604_Y, unterstützt von dem Bereich des Systemspeichers, der durch die Speicherstrom-Zustandstabelle 600 dargestellt wird.
  • In Einzelfall kann eine Speicherstrom-Zustandstabelle ausgeführt werden, z. B. für: einen kompletten Systemspeicher, einen technologiespezifischen Bereich eines Systemspeichers (wie einer ersten Tabelle, ausgeführt für einen DRAM-Bereich des Systemspeichers und einer zweiten Tabelle, ausgeführt für einen PCMS-Bereich des Systemspeichers), etc. Die Informationen der Überschriftszeile 601 enthalten Informationen, die sich auf den Teil des Systemspeichers beziehen, in dessen Auftrag der Speicherstrom-Zustand erstellt wird. In einer Ausführung, enthält die Überschriftszeilen-Information 601: i) eine Signatur für die Tabelle; ii) die Länge der Gesamttabelle, einschließlich all ihrer Komponenten 602, 603, 604; iii) die Versionsnummer der Tabellenstruktur; iv) eine Prüfsumme für die Tabelle; v) eine OEM-Kennung; vi) eine Hersteller-ID eines Dienstprogramms, mit dem die Tabelle erstellt wurde; und, vii) eine Revisionskennung für das Dienstprogramm, mit dem die Tabelle erstellt wurde.
  • Die Befehlssätze enthalten Grundbefehle zum Lesen/Schreiben von Daten aus/in die Strom-Zustandstabelle und ihre unterschiedlichen Komponenten.
  • Die Speicherstrom-Zustandstabelle ermittelt die Anzahl (X) an Stromknoten-Strukturen 603, die in der Tabelle aufgeführt sind und enthält, oder gibt zumindest Hinweise auf die Stromknoten-Strukturen 603_1603_X selbst. In einer Ausführung wird ein separater Stromknoten-Strukturfall für jeden Speicherkanal in dem Teil des Speichers, der in der Tabelle 600 dargestellt ist, erzeugt, der in der Lage ist, mehrere Stromzustände zu unterstützen – von denen jeder programmierbar verzeichnet werden kann. Beziehen wir uns beispielsweise kurz auf , falls die Speicherstrom-Zustandstabelle 600 den DRAM-Teil 303 eines Systemspeichers darstellt, der sowohl DRAM 303 als auch PCMS 304 Bereiche hat, kann eine separate Stromknoten-Struktur für jeden DRAM Speicherkanal 302_1 bis 302_4 erstellt werden.
  • Wie beobachtet in , enthält jede Stromknoten-Struktur, wie die Stromknoten-Struktur 603_1: i) eine Kennung der Stromknoten-Struktur 605; ii) den Adressbereich 606 des Systemspeicher-Adressraums, den die Stromknoten-Struktur darstellt; und iii) den Stromzustand 607, in dem sich der bestimmte Bereich des Systemspeichers derzeit befindet, der in der Stromknoten-Struktur 606 dargestellt wird. Beachten Sie, daß der derzeitige Speicherstrom-Zustand 607 dem der Stromzustände aus den Speicherstromzuständen 604_1 bis 604_Y entspricht, die durch die Strom-Zustandstabellt 600 als Ganzes definiert sind.
  • in einer Ausführung, bei der die Stromknoten-Struktur 603_1 einen DRAM-Kanal darstellt, entspricht der Adressbereich 606 der Stromknoten-Struktur einer Reihe von virtuellen Systemspeicher-Adressen, deren Umwandlung in physischen Adressraum den physischen Adressen entspricht, die vom Kanal unterstützt werden. Jedoch kann das zuvor erwähnte Aus-u. Einschalten eines Speicherkanals benachbarte virtuelle Adressbereiche über mehrere Speicherkanäle hinweg durcheinanderbringen. Anders gesagt, zumindest nach einer Kanal-Abschalte-Sequenz, kann ein einziger Speicherkanal mehrere nicht-benachbarte Bereiche virtuellen Adressraums unterstützen.
  • Diese Fragmentierung virtuellen Adressraums über seine entsprechenden physischen Speicherressourcen kann jedes Mal hergestellt werden, wenn eine Speicherkanal-Abschalte-Sequenz eingeleitet wird. Als solches können in einer Ausgestaltungsform mehrere zusätzliche Stromknoten-Strukturen 603_1_2 bis 603_1_R für den selben Speicherkanal ausgeführt werden, wobei jede solche Stromknoten-Struktur-Ausführug einem unterschiedlichen Bereich des virtuellen Adressraums entspricht, der im Endeffekt in dem Kanal gespeichert wird. Die unterschiedlichen Stromknoten-Strukturen können effektiv ”zusammengebunden” werden, auf eine Weise, die kennzeichnend ist für ihre virtuellen Adressbereiche, die auf dem gleichen Speicherkanal gespeichert werden, durch Eingabe des gleichen Stromknoten-Struktur-Kennerelements 605 in jedem davon. Jede Handlung an diesem bestimmten Kenner, wird natürlich alle Stromknoten-Strukturen 603_1 und 603_1_2 bis 603_1_R, die diesen Kenner haben, aufrufen.
  • Während eines Kanal-Abschalte- oder Kanal-Wiedereinschalte-Übergangs, sollten die Stromknoten-Ausführungen eines bestimmten Speicherkanals geändert werden, um die ”neuen” virtuellen Adressen wiederzugeben, deren Speicherung der Kanal unterstützt. Dies könnte betreffen: das Hinzufügen oder die Löschung von bestehenden Stromknoten-Struktur-Ausführungen, die für den Speicherkanal ausgeführt werden und/oder die Änderung des virtuellen Adressbereiches 606, der festgelegt ist für bestehende Stromknoten-Struktur-Ausführungen, die für den Speicherkanal ausgeführt werden. Als solches, entsprechend verschiedener Ausgestaltungsformen, wenn ein Speicherkanal ausgeschaltet oder wieder eingeschaltet wird, werden nicht nur die TE-Eingaben in einem TE-Speicher im Systemspeicher, geändert, um betroffene virtuelle Adressen in physische Adressen umzuwandeln, sondern auch Elemente des Adressbereichs 606 von Stromknoten-Strukturen, die von der Energieverwaltungs-Software verwendet werden und auch die Anzahl solcher Strukturen selbst, kann geändert werden.
  • Wenn ein DRAM-Speicherkanal abgeschaltet wird, wie oben ausführlich beschrieben, entspricht der aktuelle Strom-Zustand 607 der Stromknoten-Struktur des Speicherkanals dem niedrigen Strom-Zustand, in den der Speicherkanal abgeschaltet wurde und nicht aktiv verwendet wird. In diesem Strom-Zustand kann die Verwendung von Taktsignalen, Impuls- und/oder Aktualisierungs-Signalen bei den DIMM-Karten auf dem Speicherkanal, außer Kraft gesetzt sein. Die bei den DIMM-Karten auf dem Kanal angewendeten Netzanschluss-Spannungen können ebenfalls reduziert werden, als Teil der niedrigen Strom-Zustands-Merkmale.
  • Wenn der Speicherkanal, nach einer Abschaltung, wieder aktiviert wird, wird sich die aktuelle Strom-Zustands-Einstellung 607 der Stromknoten-Struktur-Ausführungen des Speicherkanals ändern auf einen anderen Strom-Zustand, der dem des aktiven Speicherkanals entspricht. In diesem Fall werden jegliche deaktivierten Signale oder Netzspannungen wieder aktiviert.
  • Für die oben genannten Strom-Zustands-Übergänge kann Treibersoftware, die in ein Betriebssystem eingebettet ist, das mit einem Speicherkanal verbunden ist, das Deaktivieren der verschiedenen Signale und Netzspannungen, sowohl beim Eintritt in einen niedrigen Strom-Zustand als auch das Neu-Aktivieren verschiedener Signale und Netzspannungen, beim Eintritt in einen höheren Strom-Zustand, überwachen.
  • In einer Ausführungsform, enthält die aktuelle Strom-Zustands-Einstellung 607 eine Anzeige 610, die den spezifischen Strom-Zustand innerhalb der Strom-Zustände 604_1 bis 604_Y anzeigt, die von Tabelle 600 unterstützt wird, in der sich die Stromknoten-Struktur 603_1 aktuell befindet. In einer Ausführungsform, bestimmt jede der Strom-Zustands-Definitionen 604_1 bis 604_Y den durchschnittlichen Stromverbrauch (und/oder die maximalen – minimalen Verbrauchsmengen) wenn sich eine Systemspeicher-Komponente in diesem Strom-Zustand befindet. In einer weiteren Ausführungsform enthält jede Strom-Zustands-Definition auch eine Bestimmung des Zeitaufwands beim Wechsel in oder aus dem Strom-Zustand (z. B. eine Ausgangs-Latenzzeit).
  • Beachten Sie, dass, obwohl sich die obige Erörterung hauptsächlich um die Abschaltung eines gesamten, einzelnen Kanals dreht, die obigen Lehren sowohl auf gröbere als auch auf feinere Granularitäten angewendet werden kann. Im Besonderen könnten die obigen Lehren bei einer Sequenz angewendet werden, in der mehr als ein Kanal abgeschaltet wird, als Teil einer Sequenz zur Änderung des gleichen Strom-Zustands (z. B. in Fällen, bei denen Verschachtelung zwischen den Kanälen besteht), oder bei einer Sequenz, in der weniger als ein ganzer Speicherkanal abgeschaltet wird (wie der Abschaltung nur eines DRAM-Chips).
  • zeigt eine Software-Auslegung, die eine Strom-Verwaltungs-Software 710, eine Strom-Verwaltungs-Tabelle 700, wie oben erörtert, und eine Komponente 711 einer Speicher-Verwaltungs-Software 712 enthält, die die Verbrauchsmengen der virtuellen Adressen eines Programms überwacht und die TE-Daten bewegter Zwischenspeicher-Zeilen aktualisiert.
  • Die Strom-Verwaltungs-Softwarefunktion 710 (wie ACPI) entscheidet, dass ein niedrigerer Strom-Zustand notwendig ist. Mit vorheriger Kenntnis, durch die Verfügbarkeit der Strom-Verwaltungs-Tabelle 700, dass der Systemspeicher in verschiedene Stromknoten 703_1 bis 703_N gegliedert ist, die unterschiedliche Strom-Zustände unterstützen, gibt die Strom-Verwaltungs-Software 701 einen Befehl 702 zur Kennzeichnung eines solchen Stromknotens 703_2 und eines neuen, niedrigeren Strom-Zustands, in den dieser Knoten eintreten soll.
  • Hier entspricht jeder der Stromknoten 703_1 bis 703_N einem unterschiedlichen DRAM(und möglicherweise PCMS-)Speicherkanal, der sich im Computer-System befindet, wobei in jeden davon mehrere DIMM-Karten eingesteckt sind. In diesem Beispiel, entspricht Stromknoten 703_2 einem DRAM-Speicherkanal. Speicher-Verwaltungs-Software 712, für die zugrundeliegenden Speicherkanäle des Computer-Systems, wird angerufen 713, als Antwort auf den Befehl 712, und erkennt den bestimmten DRAM-Speicherkanal, der abgeschaltet werden soll.
  • Die Speicher-Verwaltungs-Software 712 enthält eine Tracking-Komponente 711, die nachverfolgt, welche dem DRAM zugewiesenen virtuellen Adressen häufiger verwendet werden und welche dem DRAM zugewiesenen virtuellen Adressen weniger häufig verwendet werden. Wenn man den beim Abschalten des DRAM Speicherkanals entstandenen Verlust an DRAM-Speicherkapazität abzieht, erhält man eine neue, niedrigere DRAM-Kapazität für das System. Die am häufigsten verwendeten, virtuellen DRAM-Adressen (und/oder virtuelle Adressen mit ”zeitkritischem Zugriff” werden markiert), die dieser Kapazität entsprechen, werden gekennzeichnet, zur Aufbewahrung im DRAM-Speicher. Der Rest entspricht einer Ansammlung weniger verwendeter virtueller DRAM-Adresen, deren Inhaltsumfang äquivalent zur Kapazität des Speicherkanals ist, der abgeschaltet werden soll.
  • Eine Migrationskontroll-Komponente 714 steuert die angemessene Zwischenspeicher-Zeilen-Verschiebung, wie oben erörtert. Hier wiederum, enthält die Bewegung das Lesen der Zwischenspeicher-Zeilen, die im Zusammenhang mit weniger verwendeten virtuellen Adressen aus dem DRAM stehen (die auf dem abzuschaltenden Speicherkanal und die auf einem anderen DRAM-Speicherkanal), sowie diese in dafür reservierte Räume im PCMS-Speicher zu schreiben. Die Zwischenspeicher-Zeilen, in Zusammenhang mit häufig verwendeten virtuellen Adressen, die sich auf dem abzuschaltenden Speicherkanal befinden, werden auf Plätze in den verbleibenden, aktiven Speicherkanälen verschoben, die wirksam freigemacht wurden, durch die Verschiebung in PCMS-Speicherraum. Die TEs im TE-Speicher der virtuellen Adressen die, aufgrund von Verschiebung, eine neue physische Adresse haben, werden aktualisiert 715 und alle betroffenen TEs in einem TLB ungültig gemacht.
  • Die Adressbereich-Daten der Stromknoten in der Strom-Tabelle 700, die die verbleibenden, aktiven DRAM-Speicherkanäle darstellen, werden dann aktualisiert 716, um ihre neuen virtuellen Adressbereiche wiederzugeben. Dies kann die Erzeugung oder Löschung von Stromknoten-Ausführungen enthalten, die als Teil des selben Stromknotens gekennzeichnet sind.
  • Der Stromkanal wird dan abgeschaltet, z. B. durch Gerätetreiber-Software 717 für den Speicherkanal, der verschiedene Takt- oder Impuls-Signale auf dem Kanal stoppen oder verlangsamen kann (und möglicherweise eine Netzspannug auf dem Speicherkanal weiter reduzieren kann).
  • Der Stromkanal kann, mit einem ähnlichen Ablauf, neu aktiviert werden, außer, wohin die Migrationskontroll-Komponente 714 die zuvor im PCMS gespeicherten Zwischenspeicher-Zeilen, hin verschiebt.
  • Obwohl die oben genannten Methodiken als hauptsächlich, wenn nicht gänzlich, in der Software ausgeführt, dargestellt wurden, kann jeder der unterschiedlichen, oben erörterten Schritte, an der Hardware oder als Kombination von Hardware und Software ausgeführt werden.

Claims (28)

  1. Ein Verfahren, das umfasst: die Ausführung des Folgenden, in Erwiderung auf den Wunsch, in einen niedrigeren Leistungszustand einzutreten: Verschiebung der Zwischenspeicher-Zeilen, die auf einem DRAM-Speicherkanal gespeichert sind, auf andere DRAM-Speicherkanäle und PCMS-Speicher, wobei diese genannten Zwischenspeicher-Zeilen, im Zusammenhang mit häufiger verwendeten virtuellen Adressen, in besagte andere DRAM-Speicherkanäle verschoben werden und die von besagten Zwischenspeicher-Zeilen, im Zusammenhang mit weniger häufig verwendeten virtuellen Adressen, in besagten PCMS-Speicher verschoben werden; sowie Abschaltung des besagten DRAM-Speicherkanals.
  2. Die Methode von Anspruch 1, worin besagte Zwischenspeicher-Zeilen, die in den PCMS-Speicher verschoben wurden, in einen Speicherraum des besagten PCMS-Speichers verschoben werden, der zuvor für Zwischenspeicher-Zeilen reserviert war, die aus DRAM-Speicherung, aufgrund eines DRAM-Speicherkanal-Abschalte-Prozesses, kommen.
  3. Die Methode von Anspruch 2, worin besagte Methode weitere, folgende Leistung enthält, als Erwiderung auf einen Wunsch, in einen höheren Leistungs-Zustand einzutreten: Die Neu-Aktiviertung besagten DRAM-Speicherkanals; Verschieben der besagten Zwischenspeicher-Zeilen, die zuvor in PCMS-Speicher verschoben wurden, auf besagten DRAM-Speicherkanal.
  4. Die Methode von Anspruch 1 enthält weiter: Aktualisierung virtueller auf physische Adress-Umwandlungen für besagte Zwischenspeicher-Zeilen.
  5. Die Methode aus Anspruch 4, worin besagte Umwandlungen virtueller in physische Adressen im Speicherraum des besagten, anderen DRAM-Speicherkanals gespeichert werden.
  6. Die Methode von Anspruch 5 enthält weiter: Das Ungültigmachen jeglicher virtueller zu physischer Adress-Umwandlungen für besagte Zwischenspeicher-Zeilen, die in einem Umwandlungs-Nebenspeicher gefunden werden.
  7. Ein Verfahren, das umfasst: Die Nachverfolgung der Verwendung virtueller Adressen eines Programms; und die Ausführung des Folgenden, in Erwiderung auf den Wunsch, in einen niedrigeren Leistungszustand einzutreten: Auslesen der Zwischenspeicher-Zeilen aus DRAM-Speicherkanälen in Zusammenhang mit weniger verwendeten virtuellen Adressen des besagten Programms; Schreiben besagter Zwischenspeicher-Zeilen in PCMS-Speicher; Schreiben von Zwischenspeicher-Zeilen im Zusammenhang mit häufiger verwendeten virtuellen Adressen von einem der besagten Speicherkanäle auf Plätze des/der verbleibenden DRAM-Kanals/Kanäle, an besagten Plätzen wurden zuvor zumindest einige der besagten, in PCMS-Speicher geschriebenen Zwischenspeicher-Zeilen; und Abschalten des einen, besagten DRAM-Speicherkanals.
  8. Die Methode von Anspruch 7, worin besagte, in PCMS-Speicher geschriebene, Zwischenspeicher-Zeilen in Speicherraum des besagten PCMS-Speichers geschrieben werden, der zuvor für die Speicherung von Zwischenspeicher-Zeilen, die aus dem DRAM-Speicherraum verschoben werden, reserviert war.
  9. Die Methode von Anspruch 8 enthält weitere Leistungen des Folgenden, als Antwort auf einen Wunsch, in einen höheren Leistungs-Zustand einzutreten. Die Neu-Aktiviertung des einzelnen, besagten DRAM-Speicherkanals; Verschieben der besagten, in PCMS-Speicher geschriebener, Zwischenspeicher-Zeilen auf besagten DRAM-Speicherkanal.
  10. Die Methode von Anspruch 7 enthält ferner: Aktualisierung virtueller in physische Adress-Umwandlungen für besagte Zwischenspeicher-Zeilen, im Zusammenhang mit weniger verwendeten virtuellen Adressen und besagter Zwischenspeicher-Zeilen, im Zusammenhang mit häufiger verwendeten virtuellen Adressen.
  11. Die Methode von Anspruch 11 enthält ferner: Ungültigmachen jeglicher virtueller zu physischer Adress-Umwandlungen, die in einem Nebenspeicher gefunden werden, für besagte Zwischenspeicher-Zeilen, im Zusammenhang mit weniger verwendeten virtuellen Adressen und besagter Zwischenspeicher-Zeilen, im Zusammenhang mit häufiger verwendeten virtuellen Adressen.
  12. Ein Verfahren, das umfasst: Entscheidung, in einen niedrigeren Strom-Zustand einzutreten; und als Antwort darauf, das Abschalten eines Speicherkanals in einem Computer-System, wobei danach andere Speicherkanäle in besagtem Computer-System aktiv bleiben, damit der Computer funktionsfähig bleibt, während der besagte Speicherkanal abgeschaltet ist.
  13. Verfahren nach Anspruch 10, wobei das Verfahren weiter umfasst: Änderung einer Stromknoten-Struktur einer Speicherstrom-Zustands-Tabelle, um gesagten Speicherkanal abzuschalten, wobei die besagte Stromknoten-Struktur den besagten Speicherkanal darstellt.
  14. Die Methode von Anspruch 13, worin besagte Stromknoten-Struktureinen Bereich virtueller Adressen kennzeichnet, deren entsprechende Zwischenspeicher-Zeilen auf besagtem Speicherkanal gespeichert sind.
  15. Die Methode von Anspruch 14, worin mehrere Ausführungen besagter Stromknoten-Strukturen erzeugt werden, um besagten Speicherkanal darzustellen. Jede einzelne Ausführung besitzt einen unterschiedlichen Satz virtueller Adressen, deren entsprechende Zwischenspeicher-Zeilen in besagtem Speicherkanal gespeichert sind.
  16. Die Methode von Anspruch 13, worin besagte Stromknoten-Struktur ein Feld hat, um den aktuellen Strom-Zustand des besagten Speicherkanals darzustellen.
  17. Die Methode von Anspruch 13, worin besagte Speicherstrom-Zustands-Tabelle mehrere Stromknoten-Strukturen enthält, um mehrere jeweilige Speicherkanäle darzustellen.
  18. Die Methode von Anspruch 18, worin besagte Speicherstrom-Tabelle Eigenschaften der unterschiedlichen Strom-Zustände der besagten jeweiligen Speicherkanäle enthält.
  19. Ein maschinenlesbares Medium, das einen Programmcode enthält, der bei Verarbeitung durch eine CPU eines Computer-Systems, eine Ausführungsmethode erzeugt. Besagte Methode umfasst: Die Ausführung des Folgenden, in Erwiderung auf den Wunsch, in einen niedrigeren Leistungszustand einzutreten: Verschiebung der Zwischenspeicher-Zeilen, die auf einem DRAM-Speicherkanal gespeichert sind, auf andere DRAM-Speicherkanäle und PCMS-Speicher, wobei diese genannten Zwischenspeicher-Zeilen, im Zusammenhang mit häufiger verwendeten virtuellen Adressen, in besagte andere DRAM-Speicherkanäle verschoben werden und die von besagten Zwischenspeicher-Zeilen, im Zusammenhang mit weniger häufig verwendeten virtuellen Adressen, in besagten PCMS-Speicher verschoben werden; sowie Abschaltung des besagten DRAM-Speicherkanals.
  20. Das maschinenlesbare Medium aus Anspruch 19, worin besagte Zwischenspeicher-Zeilen, die in PCMS-Speicher verschoben wurden, nun in Speicherraum des besagten PCMS-Speichers verschoben werden, für Zwischenspeicher-Zeilen, die aus dem DRAM-Speicher verschoben werden, als Antwort auf eine DRAM-Speicherkanal-Abschaltung.
  21. Das maschinenlesbare Medium aus Anspruch 20, worin besagte Methode weiter die Ausführung des Folgenden, als Antwort auf einen Wunsch, in einen höheren Leistungs-Zustand einzutreten, enthält: Die Neu-Aktiviertung besagten DRAM-Speicherkanals; Verschieben der besagten Zwischenspeicher-Zeilen, die zuvor in PCMS-Speicher verschoben wurden, auf besagten DRAM-Speicherkanal.
  22. Das maschinenlesbare Medium aus Anspruch 19, worin besagte Methode weiter die Aktualisierung virtueller in physische Adress-Umwandlungen für besagte Zwischenspeicher-Zeilen, enthält.
  23. Das maschinenlesbare Medium aus Anspruch 22, worin besagte virtuelle in physische Adress-Umwandlungen in Speicherraum der besagten anderen DRAM-Speicherkanäle gespeichert werden.
  24. Das maschinenlesbare Medium aus Anspruch 23, umfasst weiter: Das Ungültigmachen jeglicher virtueller in physische Adress-Umwandlungen für besagte Zwischenspeicher-Zeilen, die in einem Nebenspeicher vorgefunden werden.
  25. Ein maschinenlesbares Medium, das einen Programmcode enthält, der bei Verarbeitung durch eine CPU eines Computer-Systems, eine Ausführungsmethode erzeugt. Besagte Methode umfasst: Entscheidung, in einen niedrigeren Strom-Zustand einzutreten; und Änderung einer Stromknoten-Struktur einer Speicherstrom-Zustands-Tabelle, um einen Speicherkanal in einem Computer-System abzuschalten.
  26. Das maschinenlesbare Medium aus Anspruch 25, worin besagte Stromknoten-Struktur besagten Speicherkanal darstellt.
  27. Das maschinenlesbare Medium aus Anspruch 26, worin besagte Stromknoten-Struktur einen Bereich virtueller Adressen kennzeichnet, deren entsprechende Zwischenspeicher-Zeilen auf besagtem Speicherkanal gespeichert werden.
  28. Das maschinenlesbare Medium aus Anspruch 27, worin mehrere Ausführungen besagter Stromknoten-Strukturen erzeugt werden, um besagten Speicherkanal darzustellen. Jede einzelne Ausführung besitzt einen unterschiedlichen Satz virtueller Adressen, deren entsprechende Zwischenspeicher-Zeilen in besagtem Speicherkanal gespeichert sind.
DE112011106032.7T 2011-12-22 2011-12-22 Energieeinsparung durch Speicherkanal-Abschaltung Active DE112011106032B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067007 WO2013095559A1 (en) 2011-12-22 2011-12-22 Power conservation by way of memory channel shutdown

Publications (2)

Publication Number Publication Date
DE112011106032T5 true DE112011106032T5 (de) 2014-12-04
DE112011106032B4 DE112011106032B4 (de) 2022-06-15

Family

ID=48669200

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011106032.7T Active DE112011106032B4 (de) 2011-12-22 2011-12-22 Energieeinsparung durch Speicherkanal-Abschaltung

Country Status (8)

Country Link
US (2) US9612649B2 (de)
KR (2) KR101572403B1 (de)
CN (1) CN104115132B (de)
BR (1) BR112014015441B1 (de)
DE (1) DE112011106032B4 (de)
GB (1) GB2513748B (de)
TW (1) TWI614752B (de)
WO (1) WO2013095559A1 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8597360B2 (en) 2004-11-03 2013-12-03 Neuropro Technologies, Inc. Bone fusion device
WO2013023098A1 (en) 2011-08-09 2013-02-14 Neuropro Spinal Jaxx Inc. Bone fusion device, apparatus and method
US9507534B2 (en) * 2011-12-30 2016-11-29 Intel Corporation Home agent multi-level NVM memory architecture
US9532883B2 (en) 2012-04-13 2017-01-03 Neuropro Technologies, Inc. Bone fusion device
US10098757B2 (en) 2013-03-15 2018-10-16 Neuropro Technologies Inc. Bodiless bone fusion device, apparatus and method
EP3060993B1 (de) * 2013-10-21 2023-03-08 FLC Global, Ltd. Cache-system auf höchster stufe und zugehöriges verfahren
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
US9389675B2 (en) * 2013-12-19 2016-07-12 International Business Machines Corporation Power management for in-memory computer systems
US9965384B2 (en) 2014-08-15 2018-05-08 Mediatek Inc. Method for managing multi-channel memory device to have improved channel switch response time and related memory control system
US9858201B2 (en) * 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US9658793B2 (en) * 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
KR102314138B1 (ko) * 2015-03-05 2021-10-18 삼성전자 주식회사 모바일 장치 및 모바일 장치의 데이터 관리 방법
US10127406B2 (en) * 2015-03-23 2018-11-13 Intel Corporation Digital rights management playback glitch avoidance
US20170068304A1 (en) * 2015-09-09 2017-03-09 Mediatek Inc. Low-power memory-access method and associated apparatus
CN105117285B (zh) * 2015-09-09 2019-03-19 重庆大学 一种基于移动虚拟化系统的非易失性存储器调度优化方法
US9977605B2 (en) * 2015-10-16 2018-05-22 SK Hynix Inc. Memory system
US9990283B2 (en) * 2015-10-16 2018-06-05 SK Hynix Inc. Memory system
US9990143B2 (en) * 2015-10-16 2018-06-05 SK Hynix Inc. Memory system
US9977606B2 (en) * 2015-10-16 2018-05-22 SK Hynix Inc. Memory system
US9977604B2 (en) * 2015-10-16 2018-05-22 SK Hynix Inc. Memory system
US9824419B2 (en) * 2015-11-20 2017-11-21 International Business Machines Corporation Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other
US10303372B2 (en) 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10452539B2 (en) * 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10318428B2 (en) 2016-09-12 2019-06-11 Microsoft Technology Licensing, Llc Power aware hash function for cache memory mapping
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10111760B2 (en) 2017-01-18 2018-10-30 Neuropro Technologies, Inc. Bone fusion system, device and method including a measuring mechanism
US10729560B2 (en) 2017-01-18 2020-08-04 Neuropro Technologies, Inc. Bone fusion system, device and method including an insertion instrument
US10241561B2 (en) 2017-06-13 2019-03-26 Microsoft Technology Licensing, Llc Adaptive power down of intra-chip interconnect
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
EP3695319B1 (de) 2017-09-27 2022-11-23 Telefonaktiebolaget LM Ericsson (publ) Verfahren und neuzuordnungskomponente zur verwaltung der neuzuordnung von informationen von quell-zu-zielspeicher-sled
CN108632152A (zh) * 2018-03-30 2018-10-09 上海康斐信息技术有限公司 一种无线路由器及快速启动的方法
CN112997161A (zh) 2018-06-18 2021-06-18 Flc技术集团股份有限公司 将储存系统用作主存储器的方法和装置
US11163680B2 (en) 2018-11-28 2021-11-02 International Business Machines Corporation Dynamic write-back to non-volatile memory
US10642734B1 (en) 2018-12-03 2020-05-05 Advanced Micro Devices, Inc. Non-power of two memory configuration
US11307779B2 (en) 2019-09-11 2022-04-19 Ceremorphic, Inc. System and method for flash and RAM allocation for reduced power consumption in a processor
US11721379B2 (en) 2021-06-17 2023-08-08 Micron Technology, Inc. Cell disturb on power state transition
CN113886291B (zh) * 2021-08-29 2023-08-18 苏州浪潮智能科技有限公司 一种路径的禁用方法及系统
US20230266899A1 (en) * 2022-02-23 2023-08-24 Nvidia Corporation System level hardware mechanisms for dynamic assist control

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US122011A (en) * 1871-12-19 Improvement in keepers for door-latches
US22008A (en) * 1858-11-09 Hoisting-machine
US711129A (en) * 1901-11-18 1902-10-14 Robert Shedenhelm Animal-shears.
US711207A (en) * 1901-12-14 1902-10-14 Martin V Grogan Circular handsaw.
US5912839A (en) 1998-06-23 1999-06-15 Energy Conversion Devices, Inc. Universal memory element and method of programming same
US7000102B2 (en) 2001-06-29 2006-02-14 Intel Corporation Platform and method for supporting hibernate operations
US6917999B2 (en) 2001-06-29 2005-07-12 Intel Corporation Platform and method for initializing components within hot-plugged nodes
US6732241B2 (en) * 2001-09-07 2004-05-04 Hewlett-Packard Development Company, L.P. Technique for migrating data between storage devices for reduced power consumption
US7493438B2 (en) 2001-10-03 2009-02-17 Intel Corporation Apparatus and method for enumeration of processors during hot-plug of a compute node
US7117311B1 (en) 2001-12-19 2006-10-03 Intel Corporation Hot plug cache coherent interface method and apparatus
US7673090B2 (en) 2001-12-19 2010-03-02 Intel Corporation Hot plug interface control method and apparatus
US7003658B2 (en) 2002-02-21 2006-02-21 Inventec Corporation Method for user setup of memory throttling register in north bridge via BIOS to save power
US20040028066A1 (en) * 2002-08-06 2004-02-12 Chris Quanbeck Receiver architectures with dynamic symbol memory allocation and methods therefor
TW200410255A (en) 2002-12-10 2004-06-16 Comax Semiconductor Inc A memory device with power-saving mode and an electrics device with the memory device
US7350087B2 (en) 2003-03-31 2008-03-25 Intel Corporation System and method of message-based power management
TW564991U (en) * 2003-04-25 2003-12-01 Sunplus Technology Co Ltd Power-saving static memory control circuit
US7376775B2 (en) 2003-12-29 2008-05-20 Intel Corporation Apparatus, system, and method to enable transparent memory hot plug/remove
US7475174B2 (en) 2004-03-17 2009-01-06 Super Talent Electronics, Inc. Flash / phase-change memory in multi-ring topology using serial-link packet interface
US8046488B2 (en) * 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US7337368B2 (en) 2004-06-07 2008-02-26 Dell Products L.P. System and method for shutdown memory testing
US7480808B2 (en) * 2004-07-16 2009-01-20 Ati Technologies Ulc Method and apparatus for managing power consumption relating to a differential serial communication link
US7562202B2 (en) * 2004-07-30 2009-07-14 United Parcel Service Of America, Inc. Systems, methods, computer readable medium and apparatus for memory management using NVRAM
US7590918B2 (en) 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7246224B2 (en) 2004-09-27 2007-07-17 Intel Corporation System and method to enable platform personality migration
US20070005922A1 (en) 2005-06-30 2007-01-04 Swaminathan Muthukumar P Fully buffered DIMM variable read latency
US8010764B2 (en) * 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
TWM286985U (en) * 2005-08-22 2006-02-01 Regulus Technologies Co Ltd Memory module with smart-type power-saving and fault-tolerance
US7376037B1 (en) * 2005-09-26 2008-05-20 Lattice Semiconductor Corporation Programmable logic device with power-saving architecture
US8145732B2 (en) 2005-11-21 2012-03-27 Intel Corporation Live network configuration within a link based computing system
US7496742B2 (en) * 2006-02-07 2009-02-24 Dell Products L.P. Method and system of supporting multi-plugging in X8 and X16 PCI express slots
US7600078B1 (en) 2006-03-29 2009-10-06 Intel Corporation Speculatively performing read transactions
US7913147B2 (en) 2006-05-08 2011-03-22 Intel Corporation Method and apparatus for scrubbing memory
US7756053B2 (en) 2006-06-30 2010-07-13 Intel Corporation Memory agent with error hardware
US7493439B2 (en) 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
JP4209906B2 (ja) * 2006-08-02 2009-01-14 株式会社日立製作所 低消費電力メモリ管理方法及びその方法を用いた計算機
WO2008040028A2 (en) 2006-09-28 2008-04-03 Virident Systems, Inc. Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
WO2008055270A2 (en) * 2006-11-04 2008-05-08 Virident Systems, Inc. Writing to asymmetric memory
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7908501B2 (en) * 2007-03-23 2011-03-15 Silicon Image, Inc. Progressive power control of a multi-port memory device
US20080270811A1 (en) 2007-04-26 2008-10-30 Super Talent Electronics Inc. Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8347005B2 (en) 2007-07-31 2013-01-01 Hewlett-Packard Development Company, L.P. Memory controller with multi-protocol interface
JP2009211153A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリ装置、情報処理装置及び電力制御方法
US20090313416A1 (en) 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
US8639874B2 (en) 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
US8161304B2 (en) * 2009-01-20 2012-04-17 Microsoft Corporation Power management for large memory subsystems
US8331857B2 (en) 2009-05-13 2012-12-11 Micron Technology, Inc. Wireless interface to program phase-change memories
US8250282B2 (en) 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US8504759B2 (en) 2009-05-26 2013-08-06 Micron Technology, Inc. Method and devices for controlling power loss
US20100306453A1 (en) 2009-06-02 2010-12-02 Edward Doller Method for operating a portion of an executable program in an executable non-volatile memory
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
KR20100133710A (ko) * 2009-06-12 2010-12-22 삼성전자주식회사 메모리 시스템 및 그것의 코드 데이터 로딩 방법
US20110047316A1 (en) * 2009-08-19 2011-02-24 Dell Products L.P. Solid state memory device power optimization
US8578138B2 (en) 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US8296496B2 (en) * 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
US9041720B2 (en) * 2009-12-18 2015-05-26 Advanced Micro Devices, Inc. Static image retiling and power management method and circuit
US8914568B2 (en) * 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US8407516B2 (en) 2009-12-23 2013-03-26 Intel Corporation Controlling memory redundancy in a system
US20110161592A1 (en) 2009-12-31 2011-06-30 Nachimuthu Murugasamy K Dynamic system reconfiguration
US8612809B2 (en) 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
US20110179311A1 (en) * 2009-12-31 2011-07-21 Nachimuthu Murugasamy K Injecting error and/or migrating memory in a computing system
US8621255B2 (en) * 2010-02-18 2013-12-31 Broadcom Corporation System and method for loop timing update of energy efficient physical layer devices using subset communication techniques
US20110208900A1 (en) 2010-02-23 2011-08-25 Ocz Technology Group, Inc. Methods and systems utilizing nonvolatile memory in a computer system main memory
US9015441B2 (en) * 2010-04-30 2015-04-21 Microsoft Technology Licensing, Llc Memory usage scanning
KR20110131781A (ko) 2010-05-31 2011-12-07 삼성전자주식회사 위치정보의 정확도 확인방법 및 장치
US9032398B2 (en) * 2010-07-12 2015-05-12 Vmware, Inc. Online classification of memory pages based on activity level represented by one or more bits
JP2012027655A (ja) * 2010-07-22 2012-02-09 Hitachi Ltd 情報処理装置および省電力メモリ管理方法
US8762760B2 (en) * 2010-09-14 2014-06-24 Xilinx, Inc. Method and apparatus for adaptive power control in a multi-lane communication channel
US8649212B2 (en) 2010-09-24 2014-02-11 Intel Corporation Method, apparatus and system to determine access information for a phase change memory
US8838935B2 (en) * 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
US8612676B2 (en) 2010-12-22 2013-12-17 Intel Corporation Two-level system main memory
US8462577B2 (en) 2011-03-18 2013-06-11 Intel Corporation Single transistor driver for address lines in a phase change memory and switch (PCMS) array
US8462537B2 (en) 2011-03-21 2013-06-11 Intel Corporation Method and apparatus to reset a phase change memory and switch (PCMS) memory cell
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
US8605531B2 (en) 2011-06-20 2013-12-10 Intel Corporation Fast verify for phase change memory with switch
US8671309B2 (en) 2011-07-01 2014-03-11 Intel Corporation Mechanism for advanced server machine check recovery and associated system software enhancements
US8463948B1 (en) 2011-07-01 2013-06-11 Intel Corporation Method, apparatus and system for determining an identifier of a volume of memory
EP3712774B1 (de) * 2011-09-30 2023-02-15 Tahoe Research, Ltd. Vorrichtung und verfahren zur implementierung einer mehrstufigen speicherhierarchie
US9317429B2 (en) 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
CN103946813B (zh) * 2011-09-30 2017-08-25 英特尔公司 基于使用统计量追踪的远存储器访问信号的生成
WO2013048493A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
EP3346386B1 (de) * 2011-09-30 2020-01-22 Intel Corporation Nichtflüchtiger direktzugriffsspeicher (nvram) als ersatz für herkömmlichen massenspeicher
CN107608910B (zh) 2011-09-30 2021-07-02 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US20130275661A1 (en) 2011-09-30 2013-10-17 Vincent J. Zimmer Platform storage hierarchy with non-volatile random access memory with configurable partitions
WO2013048491A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US9378133B2 (en) * 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
EP2761471B1 (de) 2011-09-30 2017-10-25 Intel Corporation Statistischer abnutzungsausgleich für einen nichtflüchtigen systemspeicher
US20130091331A1 (en) * 2011-10-11 2013-04-11 Iulian Moraru Methods, apparatus, and articles of manufacture to manage memory
US8593866B2 (en) * 2011-11-11 2013-11-26 Sandisk Technologies Inc. Systems and methods for operating multi-bank nonvolatile memory
WO2013089685A1 (en) * 2011-12-13 2013-06-20 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
US9336147B2 (en) * 2012-06-12 2016-05-10 Microsoft Technology Licensing, Llc Cache and memory allocation for virtual machines
US9811276B1 (en) * 2015-09-24 2017-11-07 EMC IP Holding Company LLC Archiving memory in memory centric architecture

Also Published As

Publication number Publication date
CN104115132A (zh) 2014-10-22
KR20150138404A (ko) 2015-12-09
BR112014015441B1 (pt) 2021-05-25
KR101572403B1 (ko) 2015-11-26
WO2013095559A1 (en) 2013-06-27
US20140143577A1 (en) 2014-05-22
DE112011106032B4 (de) 2022-06-15
US9612649B2 (en) 2017-04-04
KR101761044B1 (ko) 2017-07-24
TW201331941A (zh) 2013-08-01
US10521003B2 (en) 2019-12-31
BR112014015441A8 (pt) 2017-07-04
GB2513748B (en) 2020-08-19
KR20140098221A (ko) 2014-08-07
GB201411390D0 (en) 2014-08-13
US20170206010A1 (en) 2017-07-20
BR112014015441A2 (pt) 2017-06-13
GB2513748A (en) 2014-11-05
CN104115132B (zh) 2018-02-06
TWI614752B (zh) 2018-02-11

Similar Documents

Publication Publication Date Title
DE112011106032B4 (de) Energieeinsparung durch Speicherkanal-Abschaltung
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE112011106078B4 (de) Verfahren, Vorrichtung und System zur Implementierung eines mehrstufigen Arbeitsspeichers mit Direktzugriff
DE102014003668A1 (de) Befehle zum markieren des anfangs und endes eines nicht- transaktionsorientierten codegebiets, das ein zurückschreiben zu einer persistenten ablage erfordert
DE102011076894B4 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE112011105984T5 (de) Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
DE102017104150A1 (de) Abnutzungsausgleich in Speichervorrichtungen
TWI616749B (zh) 非依電性隨機存取記憶磁碟(二)
DE112011106013T5 (de) System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE112013003255T5 (de) Managementmechanismus für fehlerhafte Blöcke
DE102019105879A1 (de) Verwaltung von kohärenten Verknüpfungen und Mehr-Ebenen-Speicher
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
CN103999161A (zh) 用于相变存储器漂移管理的设备和方法
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung
US20150026392A1 (en) HOST-MANAGED Logical MASS STORAGE DEVICE USING MAGNETIC RANDOM ACCESS MEMORY (MRAM)
DE112016003998T5 (de) Technologien für das management eines reservierten hochleistungsspeicherbereichs eines solid-state-laufwerks
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE112018000842T5 (de) Mehrkern-on-die-speichermikrocontroller
DE102018204931A1 (de) Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE102022119340A1 (de) Auslösen einer auffrischung für einen nichtflüchtigen speicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final