DE112016004243T5 - Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen - Google Patents

Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen Download PDF

Info

Publication number
DE112016004243T5
DE112016004243T5 DE112016004243.4T DE112016004243T DE112016004243T5 DE 112016004243 T5 DE112016004243 T5 DE 112016004243T5 DE 112016004243 T DE112016004243 T DE 112016004243T DE 112016004243 T5 DE112016004243 T5 DE 112016004243T5
Authority
DE
Germany
Prior art keywords
memory
refreshes
refresh
external
storage
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.)
Pending
Application number
DE112016004243.4T
Other languages
English (en)
Inventor
Kuljit Bains
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 DE112016004243T5 publication Critical patent/DE112016004243T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)

Abstract

Ein Speicheruntersystem ermöglicht Erfüllen von Auffrischbedürfnissen für eine Speichervorrichtung mit verborgenen Auffrischungen, durchgeführt durch die Speichervorrichtung in Reaktion auf Aktivierungsbefehle, und externen Auffrischungen, um die Differenz zwischen der Anzahl von verborgenen Auffrischungen und einer Mindestanzahl von während eines Auffrischfensters benötigten Gesamtauffrischungen auszugleichen. Bei einem verborgenen Auffrischen führt die Speichervorrichtung den Aktivierungsbefehl in einem Speicherteil, wie durch den identifizierten Speicherort des Befehls angegeben, aus und führt eine Auffrischung in einem unterschiedlichen Teil, wie etwa einer unterschiedlichen Unterbank, aus. Durch Kombinieren von externen Auffrischungen mit verborgenen Auffrischungen kann das Speicheruntersystem verborgene Auffrischungen ermöglichen, ohne dass die verborgenen Auffrischungen eine Rückzugs- oder Wiederholungsbedingung von der Speichervorrichtung an die Speichersteuerung verursachen.

Description

  • PRIORITÄT
  • Die vorliegende Anmeldung ist eine nichtvorläufige Anmeldung, basierend auf der vorläufigen US-Patentanmeldung Nr. 62/219,763 , eingereicht am 17. September 2015, und beansprucht Priorität vor dieser Anmeldung.
  • TECHNISCHES GEBIET
  • Die Beschreibungen beziehen sich im Allgemeinen auf Speichervorrichtungen, und speziellere Beschreibungen beziehen sich auf Auffrischen von Speichervorrichtungen.
  • URHEBERRECHTSHINWEIS/ERLAUBNIS
  • Teile der Offenbarung dieses Patentdokuments können Material enthalten, das Urheberrechts schutz unterliegt. Der Urheberrechtsinhaber hat keinen Einwand gegen die Reproduktion durch eine beliebige Person des Patentdokuments oder der Patentoffenbarung, wie sie in der Patentanmeldung oder Aufzeichnung des Patent and Trademark Office erscheint, behält sich aber anderweitig alle Urheberrechte jeglicher Art vor. Der Urheberrechtshinweis gilt für alle Daten, wie nachfolgend beschrieben sowie in den hier beigefügten Zeichnungen, sowie für jede nachfolgend beschriebene Software: Copyright © 2015, 2016, Intel Corporation, Alle Rechte vorbehalten.
  • HINTERGRUND
  • Speichervorrichtungen finden ubiquitäre Verwendung in elektronischen Vorrichtungen. Viele elektronische Vorrichtungen setzen flüchtige Speichervorrichtungen ein, die eine relativ große Menge an Speicherplatz für niedrige Kosten bieten, und schnelleren Zugriff auf Daten im Vergleich mit nichtflüchtigen Speicheroptionen mit drehenden Platten bieten. Allerdings erfordert die flüchtige Natur des flüchtigen Speichers Auffrischen der Speichervorrichtungen, um die Daten zu erhalten. Auffrischen von Speichervorrichtungen nimmt weiterhin einen großen prozentualen Anteil der Gesamtspeicherbandbreite oder Bandbreite auf einem Befehlsbus zwischen der Speichersteuerung und den Speichervorrichtungen ein. Beispielsweise kann ein 8-Gigabit(Gb)-LPDDR3-DRAM-Die (LPDDR3 = Niedrigenergie mit doppelter Datenrate, Version 3 (Low Power Dual Data Rate, Version 3); DRAM = dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory)) etwa 5,38 % der Gesamtbandbreite beanspruchen, da ein Auffrischbefehl alle 3,9 Mikrosekunden (µs) gesendet werden muss (tREFI, refresh interval time, Auffrischintervallzeit) und jeder Auffrischbefehl 210 Nanosekunden (ns) (tRFC, refresh cycle time, Auffrischzykluszeit oder Zeit zwischen Auffrischbefehlen) zum Abschließen benötigt (210 ns/3,9 µs = 5,38 %). Bei 16-Gb-Vorrichtungen wird erwartet, dass sich der tRFC-Wert beinahe verdoppelt, was anzeigen würde, dass bei künftigen Speichervorrichtungen die Gefahr besteht, dass beim Auffrischen mehr Gesamtbandbreite verwendet wird (z. B. etwa 10 %). Je mehr Bandbreite eine Speichervorrichtung beim Auffrischen verwendet, desto weniger hat sie für das Verarbeiten von Datenzugriffsbefehlen (Lesen oder Schreiben), wodurch sich die Leistung des Speicheruntersystems verschlechtern kann.
  • Figurenliste
  • Die folgende Beschreibung umfasst Erörterung von Figuren mit Darstellungen, die als Beispiele von Umsetzungen von Ausführungsformen der Erfindung gegeben sind. Die Zeichnungen sind als Beispiel zu verstehen, nicht als Einschränkung. Wie hier verwendet, sind Bezugnahmen auf eine oder mehrere „Ausführungsformen“ als ein(e) bestimmte(s) Merkmal, Struktur und/oder Charakteristik, in mindestens einer Umsetzung der Erfindung enthalten, beschreibend zu verstehen. Daher beschreiben hier auftretende Phrasen wie „in einer Ausführungsform“ oder „in einer alternativen Ausführungsform“ verschiedene Ausführungsformen und Umsetzungen der Erfindung und beziehen sich nicht notwendigerweise alle auf die gleiche Ausführungsform. Allerdings sind sie auch nicht notwendigerweise sich gegenseitig ausschließend.
    • 1 ist ein Blockdiagramm einer Ausführungsform eines Systems mit einer Speichervorrichtung, die ein hybrides Auffrischen unterstützt.
    • 2 ist ein Blockdiagramm einer Ausführungsform eines Systems, bei dem hybrides Auffrischen internes verborgenes Auffrischen mit externem Auffrischen kombiniert.
    • 3 ist ein Blockdiagramm einer Ausführungsform eines Systems, mögliche Signalisierung eines hybriden Auffrischens darstellend.
    • 4A ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Durchführen von hybridem Auffrischen.
    • 4B ist ein Flussdiagramm einer Ausführungsform eines Prozesses für eine Speichersteuerung zum Überwachen von Auffrischungen.
    • 4C ist ein Flussdiagramm einer Ausführungsform eines Prozesses für eine Speichervorrichtung zum Überwachen von Auffrischungen.
    • 5 ist ein Blockdiagramm einer Ausführungsform eines Datenverarbeitungssystems, in dem hybrides Auffrischen umgesetzt werden kann.
    • 6 ist ein Blockdiagramm einer Ausführungsform einer mobilen Vorrichtung, in der hybrides Auffrischen umgesetzt werden kann.
  • Beschreibungen bestimmter Details und Umsetzungen folgen, eine Beschreibung der Figuren, die einige oder alle der nachfolgend beschriebenen Ausführungsformen darstellen können, einschließend, sowie andere potenzielle Ausführungsformen oder Umsetzungen der hier vorgestellten erfindungsgemäßen Konzepte erörternd.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie hier beschrieben, ermöglicht ein Speicheruntersystem Erfüllen von Auffrischbedürfnissen für eine Speichervorrichtung mit verborgenen Auffrischungen, durchgeführt durch die Speichervorrichtung in Reaktion auf Aktivierungsbefehle. Ein verborgenes Auffrischen bezieht sich auf ein Auffrischen, ausgeführt durch die Speichervorrichtung oder DRAM-Vorrichtung (dynamischer Direktzugriffsspeicher, Dynamic Random Access Memory), das nicht direkt in Reaktion auf einen Auffrischbefehl von der Speichersteuerung erfolgt. Das System ermöglicht, dass externe Auffrischungen eine Differenz zwischen der Anzahl von verborgenen Auffrischungen und einer während eines Auffrischfensters benötigten Mindestanzahl von Gesamtauffrischungen ausgleichen. Das Auffrischfenster bezieht sich auf eine Auffrischzeit oder Auffrischperiode (z. B. tREF), die die maximale oder empfohlene Zeit von einem Auffrischen einer Zeile bis zu einem anderen Auffrischen der Zeile ist. Das Auffrischfenster hängt von der Technologie und Architektur der Speichervorrichtung ab, wobei einige DRAM-Vorrichtungen mit doppelter Datenrate (DDR, Dual Data Rate) eine tREF gleich 64 Millisekunden (ms) oder 32 ms haben. Die tREF ist im Allgemeinen für ein System angegeben, und Verzögern von Auffrischen einer Zeile über tREF hinaus kann die Determiniertheit von Daten in der Zeile von Daten beeinflussen. Daher frischt ein System typischerweise alle Zeilen innerhalb des Auffrischfensters auf. Die erforderliche Anzahl von Auffrischungen hängt von der Zeit des Auffrischfensters, der Auffrischarchitektur (z. B. wie viele Zeilen werden in Reaktion auf einen einzelnen Auffrischbefehl aufgefrischt) und der Gesamtgröße des Speicherarrays oder davon, wie viele Zeilen während des Auffrischfensters aufgefrischt werden müssen, ab.
  • Mit einer Kombination aus verborgenen Auffrischungen und expliziten Auffrischbefehlen kann das System ermöglichen, dass interne Auffrischungen durch die Speichervorrichtung zumindest einen Teil der Auffrischbedürfnisse erfüllen (ohne dass Bandbreite für einen expliziten Auffrischbefehl verwendet wird), und es kann ermöglichen, dass externe Auffrischungen in Reaktion auf spezifische Auffrischbefehle von der Speichersteuerung die verbleibenden Auffrischbedürfnisse erfüllen. Daher können alle Auffrischungen, die abgeschlossen werden müssen, innerhalb des Auffrischfensters beendet werden durch eine Kombination von verborgenen internen Auffrischungen und externen Auffrischbefehlen, wobei externe Auffrischbefehle nicht für alle Auffrischvorgänge benötigt werden müssen. In einer Ausführungsform, mit einem verborgenen Auffrischen, führt die Speichervorrichtung in Reaktion auf einen Aktivierungsbefehl von der Speichersteuerung das Aktivieren in einer Unterbank aus, wie durch den identifizierten Speicherort des Befehls angezeigt, und führt ein Auffrischen in einer unterschiedlichen Unterbank aus. Durch Kombinieren von externen Auffrischungen mit verborgenen Auffrischungen kann das Speicheruntersystem verborgene Auffrischungen ermöglichen, ohne dass die verborgenen Auffrischungen eine Rückzugs- oder Wiederholungsbedingung von der Speichervorrichtung an die Speichersteuerung verursachen.
  • Bestehende Vorschläge für verborgenes Auffrischen erfordern, dass die Speichersteuerung eine Transaktion wiederholt, wenn die Speichervorrichtung mit dem Durchführen interner Auffrischungen beschäftigt ist. Wiederholen von Transaktionen fügt der Speichersteuerung viel Komplexität im Hinblick auf Pipeline-Koordinierungsbefehle und beim erneuten Durchlaufen von Transaktionen hinzu. Es kompensiert auch einige der Bandbreiteneinsparungen durch Bewirken, dass Befehle erneut gesendet werden. Zusätzlich versteht es sich, dass jede mit der Speichersteuerung gekoppelte Speichervorrichtung internes Auffrischen basierend auf ihrem eigenen Oszillator durchführt, anstatt basierend auf einem Systemzeitsignal von der Speichersteuerung. Speichervorrichtungsoszillatoren können über die Zeit erheblich variieren, insbesondere zueinander. Wenn jede Speichervorrichtung aufgrund Durchführens eines internen Auffrischens separat eine Wiederholung anfordern kann und es mehrere Speichervorrichtungen auf einem Rang gibt, die mit der Speichersteuerung gekoppelt sind, erhöht sich die Wahrscheinlichkeit eines Wiederholens.
  • Hybrides Auffrischen kann sich auf die Kombination von internen Auffrischungen, die während der Verzögerungsperiode (z. B. tRC oder Zeilenzykluszeit, Row Cycle Time) eines Aktivierungsbefehls verborgen sind, und externen Auffrischungen durch die Speichersteuerung beziehen. In einer Ausführungsform führt eine Speichervorrichtung oder ein DRAM verborgenes Auffrischen durch Verwenden eines AKT (Aktivierungsbefehl) als ein Auslöser zum Auffrischen einer oder mehrere Unterbänke im tRC-Fenster oder in der tRC-Periode durch. Die tRC-Periode ist für gewisse Speichervorrichtungsstandards, wie etwa die auf einer Technologie mit doppelter Datenrate (DDR, Dual Data Rate (z. B. DDR4, DDR5, LPDDR4, LPDDR5 oder Erweiterungen, oder anderen) basierenden, eine erforderliche Verzögerung, nachdem ein AKT-Befehl an eine DRAM-Bank ausgegeben wurde. Es versteht sich, dass sich Bezugnahmen auf ein „Auffrischfenster“ im Allgemeinen auf die Periode von Zeit zwischen Auffrischungen (z. B. tREF) beziehen und dass sich das Zyklenzeitfenster auf eine Verzögerung bezieht, die zwischen Zugriffen auf dieselbe Zeile eingebracht wird (z. B. tRC). Wenn der DRAM mehr Auffrischungen innerhalb des Auffrischfensters benötigt, die durch verborgenes Auffrischen durchgeführt werden können, kann die Speichersteuerung oder Hoststeuerung die zusätzlichen Auffrischbedürfnisse über externe Auffrischbefehle bereitstellen. In einer Ausführungsform zeichnet der DRAM die erforderlichen Auffrischungen oder zusätzliche Auffrischerfordernisse auf und zeigt diese der Hoststeuerung an. In einer Ausführungsform zeichnet die Speichersteuerung zusätzliche Auffrischerfordernisse auf. Dadurch, dass die Speichersteuerung externe Auffrischungen bereitstellt, um die zusätzlichen Auffrischerfordernisse zu erfüllen, kann das System das Verwenden von Wiederholungen auf der Speichersteuerung verhindern. Wie hier beschrieben, bauen die Speichervorrichtungen nicht nur auf internes verborgenes Auffrischen auf, so dass die Speichervorrichtungen keine Beschäftigt-Signale an die Speichersteuerung ausgeben in Folge von Auffrischen, wenn die Speichersteuerung versucht, einen Zugriffsbefehl zu senden.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines Speicheruntersystems, in dem eine zusätzliche Speichersteuerung Kennzeichnungen hoher Komprimierbarkeit einsetzt. System 100 umfasst einen Prozessor und Elemente eines Speicheruntersystems in einer Datenverarbeitungsvorrichtung. Prozessor 110 stellt eine Verarbeitungseinheit einer Computerplattform dar, die ein Betriebssystem (BS) und Anwendungen ausführen kann, was zusammen als der „Host“ bezeichnet werden kann, der der Benutzer des Speichers ist. Das BS und die Anwendungen führen Vorgänge aus, die Speicherzugriffe bewirken. Prozessor 110 kann einen oder mehrere separate Prozessoren umfassen. Jeder separate Prozessor kann eine einzelne Verarbeitungseinheit, eine Mehrkern-Verarbeitungseinheit oder eine Kombination umfassen. Die Verarbeitungseinheit kann ein primärer Prozessor, wie etwa eine CPU (zentrale Verarbeitungseinheit, Central Processing Unit), ein peripherer Prozessor, wie etwa eine GPU (Grafikverarbeitungseinheit, Graphics Processing Unit) oder eine Kombination sein. Speicherzugriffe können durch Vorrichtungen, wie etwa eine Netzwerksteuerung oder eine Festplattensteuerung initiiert werden. Solche Vorrichtungen können in einigen Systemen in den Prozessor integriert sein oder über einen Bus (z. B. PCI Express) mit dem Prozessor verbunden sein, oder eine Kombination davon. System 100 kann als SOC (System-on-a-Chip) umgesetzt sein oder kann mit eigenständigen Komponenten umgesetzt sein.
  • Bezugnahmen auf Speichervorrichtungen können für unterschiedliche Speichertypen gelten. Speichervorrichtungen beziehen sich oft auf flüchtige Speichertechnologien. Flüchtiger Speicher ist Speicher, dessen Zustand (und daher die darauf gespeicherten Daten) nicht determiniert ist, wenn die Leistungsversorgung zur Vorrichtung unterbrochen ist. Nichtflüchtiger Speicher bezieht sich auf Speicher, dessen Zustand selbst dann determiniert ist, wenn die Leistungsversorgung zur Vorrichtung unterbrochen ist. Dynamischer flüchtiger Speicher erfordert Auffrischen der in der Vorrichtung gespeicherten Daten, um den Zustand aufrechtzuerhalten. Ein Beispiel eines dynamischen flüchtigen Speichers umfasst DRAM (dynamischer Direktzugriffsspeicher, Dynamic Random Access Memory) oder eine Variante davon, wie etwa synchroner DRAM (SDRAM). Ein Speicheruntersystem, wie hier beschrieben, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie etwa DDR3 (doppelte Datenrate Version 3, Dual Data Rate version 3, Originalversion von JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007, aktuelle Version 21), DDR4 (DDR Version 4, ursprüngliche Spezifikation im September 2012 JEDEC veröffentlicht), DDR4E (DDR Version 4, erweitert, DDR Version 4, Extended, aktuell in Diskussion durch JEDEC), LPDDR3 (Niedrigenergie-DDR Version 3, low power DDR Version 3, JESD209-3B, Aug. 2013 durch JEDEC), LPDDR4 (Niedrigenergie mit doppelter Datenrate, Low Power Double Data Rate (LPDDR) version 4, JESD209-4, ursprünglich veröffentlicht durch JEDEC im August 2014), WIO2 (Wide I/O 2 (WideIO2), JESD229-2, ursprünglich veröffentlicht durch JEDEC im August 2014), HBM (DRAM-Speicher mit hoher Bandbreite, High Bandwidth Memory DRAM, JESD235, ursprünglich veröffentlicht durch JEDEC im Oktober 2013), DDR5 (DDR Version 5, aktuell in Diskussion durch JEDEC), LPDDR5 (aktuell in Diskussion durch JEDEC), HBM2 (HBM Version 2), aktuell in Diskussion durch JEDEC), oder anderen oder Kombinationen aus Speichertechnologien, und Technologien basierend auf Ableitungen oder Erweiterungen solcher Spezifikationen.
  • Zusätzlich oder alternativ zu flüchtigem Speicher kann sich, in einer Ausführungsform, Bezugnahme auf Speichervorrichtungen auf eine nichtflüchtige Speichervorrichtung beziehen, deren Zustand selbst dann determiniert ist, wenn die Leistungsversorgung zur Vorrichtung unterbrochen ist. In einer Ausführungsform ist die nichtflüchtige Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie etwa NAND- oder NOR-Technologie. Daher kann eine Speichervorrichtung auch nichtflüchtige Speichervorrichtungen einer künftigen Generation umfassen, wie etwa eine dreidimensionale Crosspoint-Speichervorrichtung (3DXP), andere byteadressierbare nichtflüchtige Speichervorrichtungen oder Speichervorrichtungen, die chalkogenides Phasenwechselmaterial (z. B. chalkogenides Glas) verwenden. In einer Ausführungsform kann die Speichervorrichtung ein NAND-Flash-Speicher mit mehreren Schwellenniveaus, ein NOR-Flash-Speicher, ein Phasenwechselspeicher (PCM) mit einem oder mehreren Niveaus oder ein Phasenwechselspeicher mit einem Switch (PCMS), ein resistiver Speicher, Nanodrahtspeicher, ein ferroelektrischer Transistor-Direktzugriffsspeicher (FeTRAM Ferroelectric Transistor Random Access Memory), ein magnetoresistiver Direktzugriffsspeicher (MRAM, Magnetoresistive Random Access Memory), Speicher, der Memristor-Technologie enthält, oder (STT)-MRAM (Spin-Transfer Torque) oder eine Kombination aus den genannten oder ein anderer Speicher sein oder einen solchen umfassen.
  • Beschreibungen, die sich hier auf einen „DRAM“ oder eine „DRAM-Vorrichtung“ beziehen, können für jede Speichervorrichtung gelten, die Direktzugriff ermöglicht, sei sie flüchtig oder nichtflüchtig. Die Speichervorrichtung oder der DRAM kann sich auf den Die selbst, auf ein in einem Gehäuse befindliches Speicherprodukt, das einen oder mehrere Dies umfasst, oder auf beides beziehen. Nichtflüchtiger Speicher kann im selben System enthalten sein wie flüchtiger Speicher, der aufgefrischt werden muss.
  • Speichersteuerung 120 stellt eine oder mehrere Speichersteuerungsschaltungen oder - vorrichtungen für System 100 dar. Speichersteuerung 120 stellt Steuerlogik dar, die in Reaktion auf die Ausführung von Vorgängen durch Prozessor 110 Speicherzugriffsbefehle erzeugt. Speichersteuerung 120 greift auf eine oder mehrere Speichervorrichtungen 140 zu. Speichervorrichtungen 140 können DRAM-Vorrichtungen in Übereinstimmung mit jeder der oben genannten sein. In einer Ausführungsform werden Speichervorrichtungen 140 als unterschiedliche Kanäle organisiert und verwaltet, wobei jeder Kanal mit Bussen und Signalleitungen gekoppelt ist, die mit mehreren Speichervorrichtungen parallel gekoppelt sind. Jeder Kanal ist unabhängig betreibbar. Daher ist jeder Kanal unabhängig zugänglich und gesteuert, und die Zeitsteuerung, Datentransfer, Befehls- und Adressänderungen sowie andere Vorgänge sind für jeden Kanal separat. Wie hier verwendet, kann sich Kopplung auf eine elektrische Kopplung, eine kommunikative Kopplung, eine physische Kopplung oder eine Kombination aus diesen beziehen. Physische Kopplung kann direkten Kontakt umfassen. Elektrische Kopplung umfasst eine Schnittstelle oder eine Zwischenverbindung, die einen elektrischen Fluss zwischen Komponenten ermöglicht oder Signalisierung zwischen Komponenten ermöglicht oder beides. Kommunikative Kopplung umfasst Verbindungen, einschließlich kabelgebunden oder kabellos, die Komponenten ermöglichen, Daten auszutauschen.
  • In einer Ausführungsform werden Einstellungen für jeden Kanal durch separate Modusregister oder andere Registereinstellungen gesteuert. In einer Ausführungsform verwaltet jede Speichersteuerung 120 einen separaten Speicherkanal, obwohl System 100 dazu ausgelegt sein kann, mehrere Kanäle, gesteuert von einer einzelnen Steuerung, zu haben, oder mehrere Steuerungen auf einem einzelnen Kanal zu haben. In einer Ausführungsform ist Speichersteuerung 120 Teil von Hostprozessor 110, wie etwa Logik, die auf demselben Die umgesetzt ist oder die im selben Gehäuseraum wie der Prozessor umgesetzt ist.
  • Speichersteuerung 120 umfasst E/A-Schnittstellenlogik 122 zum Koppeln mit einem Speicherbus, wie etwa einem Speicherkanal, wie oben benannt. E/A-Schnittstellenlogik 122 (wie auch E/A-Schnittstellenlogik 142 von Speichervorrichtung 140) kann Kontaktstifte, Kontaktflächen, Verbinder, Signalleitungen, Bahnen oder Drähte oder andere Hardware zum Verbinden der Vorrichtungen oder eine Kombination aus diesen umfassen. E/A-Schnittstellenlogik 122 kann eine Hardwareschnittstelle umfassen. Wie dargestellt, umfasst E/A-Schnittstellenlogik 122 zumindest Treiber/Sende-/Empfangsvorrichtungen für Signalleitungen. Üblicherweise sind Drähte innerhalb einer integrierten Schaltungsschnittstelle mit einer Kontaktfläche, einem Kontaktstift oder Verbinder gekoppelt, um Signalleitungen oder Bahnen oder andere Drähte zwischen Vorrichtungen zu verbinden. E/A-Schnittstellenlogik 122 kann Treiber, Empfänger, Sende-/Empfangsvorrichtungen oder Terminierung oder andere Schaltungsanordnungen oder Kombinationen von Schaltungsanordnungen zum Austauschen von Signalen auf den Signalleitungen zwischen den Vorrichtungen umfassen. Der Austausch von Signalen umfasst zumindest ein Senden oder Empfangen. Während als E/A 122 von Speichersteuerung 120 zu E/A 142 von Speichervorrichtung 140 koppelnd gezeigt, versteht es sich, dass bei einer Umsetzung von System 100, bei der auf Gruppen von Speichervorrichtungen 140 parallel zugegriffen wird, mehrere Speichervorrichtungen E/A-Schnittstellen mit der gleichen Schnittstelle von Speichersteuerung 120 umfassen können. Bei einer Umsetzung von System 100, ein oder mehrere Speichermodule 170 umfassend, kann E/A 142 Schnittstellenhardware des Speichermoduls zusätzlich zu Schnittstellenhardware auf der Speichervorrichtung selbst umfassen. Andere Speichersteuerungen 120 umfassen separate Schnittstellen mit anderen Speichervorrichtungen 140.
  • Der Bus zwischen Speichersteuerung 120 und Speichervorrichtungen 140 kann als mehrere Signalleitungen, Speichersteuerung 120 mit Speichervorrichtungen 140 koppelnd, umgesetzt sein. Der Bus kann typischerweise zumindest Takt (CLK) 132, Befehl/Adresse (CMD) 134 und Schreib- (DQ) und Lesedaten DQ 136 sowie null oder mehrere andere Signalleitungen 138 umfassen. In einer Ausführungsform kann ein Bus oder eine Verbindung zwischen Speichersteuerung 120 und Speicher als ein Speicherbus bezeichnet werden. Die Signalleitungen für CMD können als „C/A-Bus“ bezeichnet werden (oder als ADD/CMD-Bus, oder mit irgendeiner anderen Bezeichnung, den Transfer von Befehls- (C oder CMD) und Adressinformationen (A oder ADD) anzeigend), und die Signalleitungen zum Schreiben und Lesen von DQ können als „Datenbus“ bezeichnet werden. In einer Ausführungsform haben unabhängige Kanäle unterschiedliche Taktsignale, C/A-Busse, Datenbusse und andere Signalleitungen. Daher kann System 100 als mehrere „Busse“ aufweisend betrachtet werden in dem Sinn, dass ein unabhängiger Schnittstellenpfad als ein separater Bus betrachtet werden kann. Es versteht sich, dass zusätzlich zu den explizit gezeigten Leitungen ein Bus zumindest Abtastsignalisierungsleitungen, Alarmleitungen, Hilfsleitungen oder andere Signalleitungen oder eine Kombination daraus umfassen kann. Es versteht sich außerdem, dass serielle Bustechnologien für die Verbindung zwischen Speichersteuerung 120 und Speichervorrichtungen 140 verwendet werden können. Ein Beispiel einer seriellen Bustechnologie ist 8B lOB-Codierung und Senden von Hochgeschwindigkeitsdaten mit eingebettetem Takt über ein einzelnes differenzielles Paar von Signalen in jeder Richtung.
  • Es versteht sich, dass im Beispiel von System 100 der Bus zwischen Speichersteuerung 120 und Speichervorrichtungen 140 einen untergeordneten Befehlsbus CMD 134 und einen untergeordneten Bus zum Transportieren der Schreib- und Lesedaten, DQ 136, umfasst. In einer Ausführungsform kann der Datenbus bidirektionale Leitungen für Lesedaten und für Schreib-/Befehlsdaten umfassen. In einer weiteren Ausführungsform kann der untergeordnete Bus DQ 136 unidirektionale Schreibsignalleitungen zum Schreiben von Daten vom Host in den Speicher umfassen und kann unidirektionale Leitungen zum Lesen von Daten aus dem Speicher in den Host umfassen. In Übereinstimmung mit der ausgewählten Speichertechnologie und der Systemausgestaltung kann der Bus von anderen Signalen 138 begleitet werden, wie etwa Abtastleitungen DQS. Basierend auf der Ausgestaltung des Systems 100, oder der Umsetzung, falls eine Ausgestaltung mehrere Umsetzungen unterstützt, kann der Datenbus mehr oder weniger Bandbreite pro Speichervorrichtung 140 haben. Beispielsweise kann der Datenbus Speichervorrichtungen unterstützen, die entweder eine x32-Schnittstelle, eine x 16-Schnittstelle, eine x8-Schnittstelle oder eine andere Schnittstelle haben. Die Konvention „xW“, bei der W eine binäre Ganzzahl ist, bezieht sich auf eine Schnittstellengröße oder -breite der Schnittstelle von Speichervorrichtung 140, die eine Anzahl von Signalleitungen zum Austauschen von Daten mit Speichersteuerung 120 darstellt. Die Schnittstellengröße der Speichervorrichtungen ist ein steuernder Faktor dahingehend, wie viele Speichervorrichtungen gleichzeitig pro Kanal in System 100 verwendet oder parallel mit den gleichen Signalleitungen gekoppelt werden können.
  • Speichervorrichtungen 140 stellen Speicherressourcen für System 100 dar. In einer Ausführungsform ist jede Speichervorrichtung 140 ein separater Speicher-Die. In einer Ausführungsform kann jede Speichervorrichtung 140 mit mehreren (z. B. 2) Kanälen pro Vorrichtung oder Die verbunden sein. Jede Speichervorrichtung 140 umfasst E/A-Schnittstellenlogik 142, die eine durch die Umsetzung der Vorrichtung (z. B. x16 oder x8 oder irgendeine andere Schnittstellenbandbreite) bestimmte Bandbreite hat. E/A-Schnittstellenlogik 142 ermöglicht den Speichervorrichtungen, sich mit Speichersteuerung 120 zu verbinden. E/A-Schnittstellenlogik 142 kann eine Hardwareschnittstelle umfassen und kann in Übereinstimmung mit E/A 122 der Speichersteuerung sein, aber auf Seite der Speichervorrichtung. In einer Ausführungsform sind mehrere Speichervorrichtungen 140 parallel mit den gleichen Befehls- und Datenbussen verbunden. In einer weiteren Ausführungsform sind mehrere Speichervorrichtungen 140 parallel mit dem gleichen Befehlsbus verbunden, aber mit unterschiedlichen Datenbussen verbunden. Beispielsweise kann System 100 mit mehreren parallel gekoppelten Speichervorrichtungen 140 ausgelegt sein, wobei jede Speichervorrichtung auf einen Befehl antwortet und auf jeweils interne Speicherressourcen 160 zugreift. Für einen Schreibvorgang kann eine individuelle Speichervorrichtung 140 einen Teil des Gesamtdatenworts schreiben, und für einen Lesevorgang kann eine individuelle Speichervorrichtung 140 einen Teil des Gesamtdatenworts abrufen.
  • In einer Ausführungsform sind Speichervorrichtungen 140 direkt auf einer Hauptplatine oder Hostsystemplattform (z. B. einer PCB (Leiterplatte, Printed Circuit Board), auf der Prozessor 110 angeordnet ist) einer Datenverarbeitungsvorrichtung angeordnet. In einer Ausführungsform können Speichervorrichtungen 140 in Speichermodulen 170 organisiert sein. In einer Ausführungsform stellen Speichermodule 170 doppelreihige Speichermodule (DIMM, Dual Inline Memory Modules) dar. In einer Ausführungsform stellen Speichermodule 170 eine andere Organisation von mehreren Speichervorrichtungen dar, um zumindest einen Teil von Zugriffs- oder Steuerschaltungsanordnungen gemeinsam zu nutzen, die eine separate Schaltung, eine separate Vorrichtung oder eine von der Hostsystemplattform separate Platine sein können. Speichermodule 170 können mehrere Speichervorrichtungen 140 umfassen, und die Speichermodule können Unterstützung für mehrere separate Kanäle zu den enthaltenen, auf ihnen angeordneten Speichervorrichtungen umfassen. In einer weiteren Ausführungsform können Speichervorrichtungen 140 in das gleiche Gehäuse integriert sein wie die Speichersteuerung 120, wie etwa durch Techniken, wie Multi-Chip-Modul (MCM), Gehäuseauf-Gehäuse (Package-on-Package), Silizium-Durchkontaktierung (TSV, Through-Silicon VIA) oder andere Techniken. In ähnlicher Weise können, in einer anderen Ausführungsform, mehrere Speichervorrichtungen 140 in Speichermodule 170 integriert sein, die selbst in das gleiche Gehäuse wie Speichersteuerung 120 integriert sein können. Es versteht sich, dass für diese und andere Ausführungsformen Speichersteuerung 120 Teil von Hostprozessor 110 sein kann.
  • Speichervorrichtungen 140 umfassen jeweils Speicherressourcen 160. Speicherressourcen 160 stellen individuelle Felder von Speicherungsorten oder Speicherplatzpositionen für Daten dar. Typischerweise werden Speicherressourcen 160 als Zeilen von Daten verwaltet, auf die über wortweise (Zeilen) und bitweise (individuelle Bits innerhalb einer Zeile) Steuerung zugegriffen wird. Speicherressourcen 160 können als separate Kanäle, Ränge und Bänke von Speicher organisiert sein. Kanäle können sich auf unabhängige Steuerpfade zu Speicherungsorten innerhalb von Speichervorrichtungen 140 beziehen. Ränge können sich auf gewöhnliche Orte über mehrere Speichervorrichtungen beziehen (z. B. gleiche Zeilenadressen innerhalb von verschiedenen Vorrichtungen). Bänke können sich auf Felder von Speicherorten innerhalb einer Speichervorrichtung 140 beziehen. In einer Ausführungsform sind Bänke von Speicher in Unterbänke mit zumindest einem Teil gemeinsam genutzter Schaltungsanordnungen (z. B. Treiber, Signalleitungen, Steuerlogik) für die Unterbänke unterteilt. Es versteht sich, dass Kanäle, Ränge, Bänke, Unterbänke oder andere Organisationen der Speicherorte und Kombinationen der Organisationen in ihrer Anwendung die physischen Ressourcen überlappen können. Beispielsweise kann auf die gleichen physischen Speicherorte über einen spezifischen Kanal als eine spezifische Bank zugegriffen werden, die auch zu einem Rang gehören kann. Daher versteht sich die Organisation von Speicherressourcen in einer inklusiven, statt in einer exklusiven, Weise.
  • In einer Ausführungsform umfassen Speichervorrichtungen 140 ein oder mehrere Register 144. Register 144 stellt eine oder mehrere Speicherungsvorrichtungen oder Speicherungsorte dar, die Konfiguration oder Einstellungen für den Betrieb der Speichervorrichtung bereitstellen. In einer Ausführungsform kann Register 144 einen Speicherungsort für Speichervorrichtung 140 bereitstellen, um Daten für Zugriff durch Speichersteuerung 120 als Teil eines Steuerungs- oder Verwaltungsvorgangs zu speichern. In einer Ausführungsform umfasst Register 144 ein oder mehrere Modusregister. In einer Ausführungsform umfasst Register 144 ein oder mehrere Mehrzweckregister. Die Konfiguration von Orten innerhalb von Register 144 kann Speichervorrichtung 140 dazu auslegen, in einem unterschiedlichen „Modus“ zu arbeiten, wo Befehlsinformationen unterschiedliche Vorgänge innerhalb von Speichervorrichtung 140 basierend auf dem Modus auslösen können. Zusätzlich oder alternativ dazu können unterschiedliche Modi auch unterschiedliche Vorgänge aus Adressinformationen oder anderen Signalleitungen in Abhängigkeit vom Modus auslösen. Einstellungen von Register 144 können Auslegung für E/A-Einstellungen (z. B. Zeitsteuerung, Terminierung oder ODT (Terminierung auf dem Die, On-Die Termination) 146, Treiberkonfiguration oder andere E/A-Einstellungen) anzeigen.
  • In einer Ausführungsform umfasst Speichervorrichtung 140 ODT 146 als Teil der Schnittstellenhardware in Verbindung mit E/A 142. ODT 146 kann so wie oben beschrieben ausgelegt werden und Einstellungen für Impedanz bereitstellen, die auf die Schnittstelle zu spezifischen Signalleitungen anzuwenden sind. Die ODT-Einstellungen können basierend darauf geändert werden, ob eine Speichervorrichtung ein ausgewähltes Ziel eines Zugriffsvorgangs oder eine Nicht-Zielvorrichtung ist. Einstellungen für ODT 146 können den zeitlichen Ablauf und Reflexionen von Signalisierungen auf den terminierten Leitungen beeinflussen. Sorgfältige Steuerung von ODT 146 kann Betrieb bei höherer Geschwindigkeit mit verbesserter Abstimmung zwischen angewendeter Impedanz und Last ermöglichen. ODT 146 kann auf spezifische Signalleitungen von E/A-Schnittstelle 142, 122 angewendet werden und wird nicht notwendigerweise auf alle Signalleitungen angewendet.
  • Speichervorrichtung 140 umfasst Steuerung 150, die Steuerlogik innerhalb der Speichervorrichtung zum Steuern von internen Vorgängen innerhalb der Speichervorrichtung darstellt. Beispielsweise decodiert Steuerung 150 Befehle, die von Speichersteuerung 120 gesendet wurden, und erzeugt interne Vorgänge zum Ausführen oder Erfüllen der Befehle. Steuerung 150 kann als eine interne Steuerung bezeichnet werden und ist separat von Speichersteuerung 120 des Hosts. Steuerung 150 kann basierend auf Register 144 bestimmen, welcher Modus ausgewählt ist, und die interne Ausführung von Vorgängen für Zugriff auf Speicherressourcen 160 oder andere Vorgänge basierend auf dem ausgewählten Modus auslegen. Steuerung 150 erzeugt Steuersignale zum Steuern der Weiterleitung von Bits innerhalb von Speichervorrichtung 140 zum Bereitstellen einer geeigneten Schnittstelle für den ausgewählten Modus und Richten eines Befehls an die richtigen Speicherorte oder Adressen.
  • Erneut Bezug nehmend auf Speichersteuerung 120, umfasst Speichersteuerung 120 Zeitablaufsteuerung 130, die Logik oder Schaltungsanordnungen zum Erzeugen und Ordnen von Transaktionen darstellt, die an die Speichervorrichtung 140 zu senden sind. Aus einer Perspektive könnte gesagt werden, dass die primäre Funktion von Speichersteuerung 120 darin besteht, Speicherzugriff und andere Transaktionen an Speichervorrichtung 140 zu planen. Eine solche Planung kann Erzeugen der Transaktionen selbst einschließen, um Anforderungen von Daten durch Prozessor 110 umzusetzen und Integrität der Daten aufrechtzuerhalten (z. B. wie bei Befehlen im Zusammenhang mit Auffrischen). Transaktionen können einen oder mehrere Befehle umfassen und führen zum Transfer von Befehlen oder Daten oder beidem über einen oder mehrere Zeitsteuerungszyklen, wie etwa Taktzyklen oder Einheitsintervalle. Transaktionen können für Zugriff sein, wie etwa Lesen oder Schreiben oder verwandte Befehle oder eine Kombination, und andere Transaktionen können Speicherverwaltungsbefehle für Konfiguration, Einstellungen, Datenintegrität oder andere Befehle oder eine Kombination umfassen.
  • Speichersteuerung 120 umfasst Logik, um Auswahl und Ordnen von Transaktionen zu ermöglichen, um Leistung von System 100 zu verbessern. Daher kann Speichersteuerung 120 auswählen, welche der ausstehenden Transaktionen in welcher Reihenfolge an die Speichervorrichtung 140 gesendet werden sollen, was typischerweise mit Logik erreicht wird, die sehr viel komplexer ist als ein einfacher Warteschlangenalgorithmus (First-in First-out). Speichersteuerung 120 verwaltet das Senden der Transaktionen an Speichervorrichtung 140 und verwaltet die Zeitsteuerung im Zusammenhang mit der Transaktion. In einer Ausführungsform haben Transaktionen eine deterministische Zeitsteuerung, die von Speichersteuerung 120 verwaltet und beim Bestimmen, wie die Transaktionen zeitlich zu planen sind, verwendet werden kann.
  • Erneut Bezug nehmend auf Speichersteuerung 120, umfasst Speichersteuerung 120 Befehlslogik (CMD) 124, die Logik oder Schaltungsanordnungen zum Erzeugen von Befehlen darstellt, die an die Speichervorrichtungen 140 zu senden sind. Die Erzeugung der Befehle kann sich auf den Befehl vor der zeitlichen Planung oder auf die Vorbereitung der aufgereihten, sendebereiten Befehle beziehen. Im Allgemeinen umfasst das Signalisieren in Speicheruntersystemen Adressinformationen innerhalb des Befehls oder diesen begleitend, um einen oder mehrere Speicherorte anzuzeigen oder auszuwählen, an denen Speichervorrichtungen den Befehl ausführen sollen. In einer Ausführungsform umfasst Steuerung 150 Befehlslogik 152, um Befehls- und Adressinformationen, die über E/A 142 von Speichersteuerung 120 empfangen wurden, zu empfangen und zu decodieren. Basierend auf den empfangenen Befehls- und Adressinformationen kann Steuerung 150 den zeitlichen Ablauf der Vorgänge der Logik und der Schaltungsanordnungen innerhalb von Speichervorrichtung 140 steuern, um die Befehle auszuführen. Steuerung 150 ist verantwortlich für interne Einhaltung des zeitlichen Ablaufs und der Vorgänge entsprechend Standards und Spezifikationen innerhalb der Speichervorrichtung 140. Speichersteuerung 120 kann Einhaltung von Standards oder Spezifikationen durch Zugriffsplanung und -steuerung umsetzen.
  • In einer Ausführungsform umfasst Speichersteuerung 120 Auffrischlogik (AUFF.LOGIK) 126. Auffrischlogik 126 kann für Speicherressourcen verwendet werden, die flüchtig sind und aufgefrischt werden müssen, um einen deterministischen Zustand aufrechtzuerhalten. In einer Ausführungsform zeigt Auffrischlogik 126 einen Ort für das Auffrischen und einen durchzuführenden Auffrischtyp an. Auffrischlogik 126 kann Selbstauffrischen innerhalb von Speichervorrichtung 140 auslösen und/oder externe Auffrischungen durch Senden von Auffrischbefehlen ausführen. Beispielsweise, in einer Ausführungsform, unterstützt System 100 Auffrischungen für alle Bänke sowie Auffrischungen für einzelne Bänke. Auffrischungen für alle Bänke bewirken das Auffrischen einer ausgewählten Bank innerhalb aller parallel gekoppelten Speichervorrichtungen 140. Auffrischungen für einzelne Bänke bewirken das Auffrischen einer spezifischen Bank innerhalb einer spezifischen Speichervorrichtung 140. In einer Ausführungsform umfasst Steuerung 150 innerhalb von Speichervorrichtung 140 Auffrischlogik 154, um Auffrischen innerhalb von Speichervorrichtung 140 anzuwenden. In einer Ausführungsform erzeugt Auffrischlogik 154 interne Vorgänge, um Auffrischen in Übereinstimmung mit einem von Speichersteuerung 120 empfangenen externen Auffrischen durchzuführen. Auffrischlogik 154 kann bestimmen, ob ein Auffrischen zu Speichervorrichtung 140 geleitet wird und welche Speicherressourcen 160 in Reaktion auf den Befehl aufzufrischen sind.
  • In einer Ausführungsform unterstützt System 100 hybrides Auffrischen. Bei einem hybriden Auffrischen führt Speichervorrichtung 140 interne Auffrischungen durch, die vor Speichersteuerung 120 „verborgen“ sind. Verborgene Auffrischungen sind Auffrischungen, die nicht in Reaktion auf einen externen Auffrischbefehl durchgeführt werden, aber in Reaktion auf einen anderen Befehl. Es versteht sich, dass sogar Selbstauffrischen ein Auffrischbefehl ist, der in Reaktion auf einen externen Auffrischbefehl durchgeführt wird, indem Speichersteuerung 120 Speichervorrichtung 140 in einen Selbstauffrischmodus oder einen Selbstauffrischzustand versetzt. Verborgenes Auffrischen ist ein Auffrischen, das durch Speichervorrichtung 140 in einer Verzögerungsperiode während des Wartens auf ein definiertes Zeitfenster nach Initiieren der Ausführung eines Befehls durchgeführt wird. Beispielsweise haben Aktivierungsbefehle ein definiertes Zeitfenster, in dem die Bank, die den Speicherort enthält, der den Aktivierungsbefehl ausführt, nicht für andere externe Befehle verfügbar ist. In einer Ausführungsform löst Auffrischlogik 154 ein Auffrischen eines Speicherorts einer unterschiedlichen Unterbank aus, wenn auf einen Speicherort einer Unterbank durch Speichersteuerung 120 mit einem Aktivierungsbefehl zugegriffen wird. Daher kann CMD-Logik 124 von Speichersteuerung 120 beispielsweise einen Aktivierungsbefehl erzeugen und an Speichervorrichtung 140 senden. In Reaktion auf den Aktivierungsbefehl kann Steuerung 150 von Speichervorrichtung 140 CMD-Logik 152 veranlassen, die Ausführung des Aktivierungsbefehls auf der angegebenen Bank zu bewirken, und kann Auffrischlogik 154 veranlassen, die Ausführung eines Auffrischbefehls auf einer unterschiedlichen Bank zu bewirken.
  • Alternative verborgene Auffrischvorschläge umfassen Erfordern eines Rücksetz- oder Wiederholungsmechanismus, bei dem eine Speichervorrichtung, ein internes Auffrischen durchführend, der Speichersteuerung anzeigen kann, dass sie nicht verfügbar ist, erfordernd, dass die Speichersteuerung die Transaktion wiederholt. Mit mehreren Speichervorrichtungen auf einem Rang (z. B. 4 oder 8 DRAMs) können die internen Auffrischungen leicht die Synchronisierung verlieren, da jede Speichervorrichtung für das interne Auffrischen auf einen internen Oszillator (nicht spezifisch gezeigt) baut. Wenn irgendeine Speichervorrichtung auf einem Rang eine Wiederholung zu einer beliebigen Zeit anfordern kann, ist die Komplexität für die Speichersteuerung signifikant. Zusätzlich könnten gewisse Speichervorrichtungen den Befehl ausführen, und andere könnten eine Wiederholung anfordern, was die Komplexität erhöht. Hybrides Auffrischen, wie hier beschrieben, ermöglicht Verwenden von verborgenen Auffrischungen, ohne dass eine Wiederholung von Transaktionen ausgelöst wird.
  • Beim verborgenen Auffrischen ist, beispielsweise, eine Bank tRC lang offen, in Reaktion auf jeden Aktivierungsbefehl, und kann während des tRC-Fensters ein Auffrischen auf einer unterschiedlichen Unterbank innerhalb der Bank durchführen. In einer Ausführungsform, bei hybridem Auffrischen, zeichnet System 100 auf, wie viele externe Auffrischungen nötig sind, um die minimalen Auffrischerfordernisse für die Bank zu erfüllen, zusätzlich zu internen, verborgenen Auffrischungen und anderen externen Auffrischungen, die bereits durchgeführt wurden. System 100 kann dann externe Auffrischungen einer Anzahl, die zumindest ausreichend ist, um eine Mindestanzahl von Auffrischungen, die innerhalb einer Auffrischperiode (z. B. tREF) erforderlich sind, zu erfüllen, durchführen. Daher kann System 100 Speichervorrichtungen 140 ermöglichen, verborgene Auffrischungen durchzuführen und die verborgenen Auffrischungen mit externen Auffrischungen zu ergänzen, die ausreichend sind, um die Auffrischerfordernisse zu erfüllen. Beispielsweise kann CMD-Logik 124 Aktivierungsbefehle erzeugen, und anschließend kann Auffrischlogik 126 externe Auffrischbefehle senden, um den Vorgang für welche Speicherressourcen auch immer, die nicht mit verborgenen Auffrischungen aufgefrischt wurden, nachzuholen. Es versteht sich, dass auf Aktivierungsbefehle spezifisch Bezug genommen wird, da sie typischerweise vor den Lese- und Schreibbefehlen ausgegeben werden müssen. Es versteht sich, dass andere Befehle der Auslöser für verborgene Auffrischungen sein können, wie etwa jeder Befehl, der eine Verzögerungsperiode umfasst, die Zugriff auf eine andere Bank oder Unterbank während der Verzögerungsperiode ermöglichen würde.
  • In einer Ausführungsform zeichnet Speichersteuerung 120 die Anzahl von benötigten externen Auffrischungen auf. In einer Ausführungsform umfasst Speichersteuerung 120 einen oder mehrere Zähler 128 zum Aufzeichnen der Anzahl von zusätzlichen benötigten Auffrischungen. Beispielsweise kann Zähler 128 Zähler für einzelne Bänke umfassen, um die Anzahl von Aktivierungsbefehlen aufzuzeichnen, die an spezifische Bänke gesendet werden. In einer Ausführungsform zählt Zähler 128 die Anzahl von externen Auffrischungen, die bereits an die Bank gesendet worden sein könnten. In einer Ausführungsform bestimmt Auffrischlogik 126 oder andere Steuerlogik innerhalb von Speichersteuerung 120, basierend auf einer Anzahl von in Zähler 128 aufgelaufenen Aktivierungsbefehlen und einer Anzahl von in einem unterschiedlichen Zähler aufgelaufenen externen Auffrischungen, wie viele zusätzliche externe Auffrischungen benötigt werden. In einer Ausführungsform sendet Speichersteuerung 120 bis zum Bestimmen, wie viele zusätzliche externe Auffrischungen benötigt werden, keine externen Auffrischungen.
  • In einer Ausführungsform zeichnet Speichervorrichtung 140 die Anzahl von benötigten externen Auffrischungen auf. In einer Ausführungsform umfasst Speichervorrichtung 140 einen oder mehrere Zähler 148 zum Aufzeichnen von Auffrischungen, die intern durchgeführt wurden, um zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform umfasst Speichervorrichtung 140 einen Zähler 148 für jede Bank zum Auflaufen von Auffrischungen für die Bank. Alternativ kann, in einer Ausführungsform, Zähler 148 auf eine Gesamtanzahl von benötigten Auffrischungen innerhalb eines Auffrischfensters zurückgesetzt werden, und Zähler 148 kann bei jedem durchgeführten Auffrischen dekrementiert werden. Daher kann, zu einem angegebenen Zeitpunkt, wie bei einem Zeitplan, Speichervorrichtung 140 die im Zähler 148 verbliebene Anzahl der Speichersteuerung 120 anzeigen, um anzuzeigen, wie viele externe Auffrischungen benötigt werden.
  • In einer Ausführungsform können, wenn Speichervorrichtung 140 die Anzahl von benötigten zusätzlichen Auffrischungen aufzeichnet, Speichervorrichtung 140 und Speichersteuerung 120 einen „Auffrischungshandschlag“ oder einen anderen vergleichbaren Mechanismus durchführen, damit die Speichervorrichtung der Speichersteuerung die externen Auffrischbedürfnisse anzeigen kann. Beispielsweise speichert, in einer Ausführungsform, Speichervorrichtung 140 eine Anzahl von benötigten Auffrischungen in Register 144, und Speichersteuerung kann dazu ausgelegt sein, das Register regelmäßig zu lesen. Es versteht sich, dass für eine Speichervorrichtung mit mehreren Bänken jede Bank während jeder Auffrischperiode bei einem unterschiedlichen Niveau von Auffrischen sein kann. In einer Ausführungsform zeigt Speichervorrichtung 140 die Auffrischbedürfnisse der einzelnen Bänke separat an. In einer Ausführungsform erfüllt Speichersteuerung 120 die Auffrischungserfordernisse durch Auffrischbefehle für einzelne Bänke (AUFFpb), Auffrischbefehle für alle Bänke (AUFF) oder eine Kombination.
  • Speichervorrichtung 140 umfasst mehrere Teile von Speicherressourcen 160. Beispielsweise können Speicherressourcen mehrere Bänke von Speicher mit jeweils mehreren Unterbänken umfassen. Speichervorrichtung 140 kann einen Zugriffsbefehl (z. B. einen Aktivierungsbefehl) empfangen, der an einen angegebenen Speicherort innerhalb eines der Teile von Speicher gerichtet ist, und den Zugriffsbefehl im angegebenen Speicherort ausführen und auch ein verborgenes Auffrischen an einem Speicherort in einem unterschiedlichen Teil (z. B. einer unterschiedlichen Unterbank einer ersten Bank) durchführen. Speichersteuerung 120 kann externe Auffrischbefehle für den Teil bereitstellen, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den Teil während eines Auffrischfensters erfüllen muss.
  • 2 ist ein Blockdiagramm einer Ausführungsform eines Systems, bei dem hybrides Auffrischen internes verborgenes Auffrischen mit externem Auffrischen kombiniert. System 200 bietet ein Beispiel von Elementen eines Speicheruntersystems und kann ein Beispiel von Elementen von System 100 aus 1 sein. Steuerung 210 stellt eine Speichersteuerung oder Hoststeuerung dar. Speicher 240 stellt eine oder mehrere Speichervorrichtungen von System 200 dar und kann, beispielsweise, ein oder mehrere DRAMs oder andere Speichervorrichtungen oder eine Gruppe von Speichervorrichtungen sein.
  • In einer Ausführungsform umfasst Steuerung 210 Befehlslogik 212, um Befehle an Speicher 240 auszugeben. In einer Ausführungsform umfasst Steuerung 210 einen oder mehrere Zähler für einzelne Bänke 222 pro Bank 260 von Speicher 240. In einer Ausführungsform kann Steuerung 210 die Anzahl von externen Auffrischungen, die benötigt wird, um die minimalen Auffrischerfordernisse für jede Bank mit Zählern 222 zu erfüllen, aufzeichnen. In einer Ausführungsform umfasst Steuerung 210 einen globalen Zähler 224, der Logik innerhalb von Steuerung 210 darstellt, um zu bestimmen, wie viele Auffrischungen für alle Bänke auszugeben sind, um die minimalen Auffrischerfordernisse für Bänke 260 von Speicher 240 zu erfüllen. In einer Ausführungsform umfasst Steuerung 210 Auffrischlogik für einzelne Bänke 232, um Auffrischungen für einzelne Bänke an Speicher 240 auszugeben. In einer Ausführungsform umfasst Steuerung 210 Auffrischlogik für alle Bänke 234, um Auffrischungen für alle Bänke an Speicher 240 auszugeben. Steuerung 210 kann Auffrischlogik 232 und/oder Auffrischlogik 234 verwenden, um externe Auffrischungen auszugeben, um zusätzliche Auffrischerfordernisse zu erfüllen, die von verborgenen Auffrischungen innerhalb von Speicher 240 nicht erfüllt wurden.
  • Speicher 240 umfasst Befehlslogik 242, die Logik zum Empfangen und Decodieren von Befehlen von Steuerung 210 darstellt. Befehlslogik 242 kann Teil einer On-Die-Steuerung von Speicher 240 sein. Speicher 240 umfasst ein oder mehrere Register 244, die Speicherungsorte innerhalb von Speicher 240 darstellen, wo er Werte für Zugriff durch die Steuerung 210 speichern kann und/oder wo Steuerung 210 Werte als Konfigurationseinstellungen schreiben kann, um die Vorgänge von Speicher 240 zu steuern. Speicher 240 umfasst Bänke 260, die als separate Bänke verwaltete Speicherressourcen oder Teile oder separat adressierbare Regionen von Speicheradressraum darstellen. In einer Ausführungsform wird jede Bank 260 in mehrere Unterbänke unterteilt. Nur als Beispiel, und nicht als Einschränkung, sind Bänke 260, vier Unterbänke Sub0, Sub1, Sub2 und Sub3 aufweisend, gezeigt. Es versteht sich, dass Bänke 260 eine unterschiedliche Anzahl von Unterbänken haben können, wie etwa 2, 6, 8 oder eine andere Anzahl. Typischerweise ist die Anzahl von Unterbänken eine binäre Zahl, ist aber in dieser Hinsicht nicht notwendigerweise beschränkt.
  • In einer Ausführungsform umfasst Speicher 240 interne Auffrischlogik 252, die es ihr ermöglicht, Auffrischungen intern durchzuführen. Internes Auffrischen kann sich darauf beziehen, dass die Speichervorrichtung einen oder mehrere intern initiierte Auffrischvorgänge durchführt. Die Befehle können in Reaktion auf einen externen Befehl von Steuerung 210 sein, und nicht notwendigerweise auf einen externen Auffrischbefehl. Es versteht sich, dass Speicher 240 interne Auffrischvorgänge in Reaktion auf den externen Auffrischbefehl durchführt. Wie hier beschrieben, mit interner Auffrischlogik 252, führt Speicher 240 Auffrischungen nicht notwendigerweise einzeln basierend auf externen Befehlen durch und kann Auffrischbefehle in Reaktion auf Empfang von einem oder mehreren Nicht-Auffrischbefehlen durchführen. Internes Auffrischen wird durch einen internen Oszillator 256 gesteuert, der unterschiedlich für jede Speichervorrichtung auf einem Rang oder Kanal oder DIMM ist, und es kann nicht garantiert werden, dass die Oszillatoren synchron sind. Externe Auffrischlogik 254 stellt Logik innerhalb von Speicher 240 dar, um Auffrischvorgänge in Reaktion auf externe Auffrischbefehle von Steuerung 210 auszuführen. In einer Ausführungsform umfasst Speicher 240 einen oder mehrere Zähler 258, die Zähler darstellen, um Speicher 240 zu ermöglichen, eine Anzahl von zusätzlichen Auffrischungen aufzuzeichnen, die zum Erfüllen von Auffrischerfordernissen benötigt werden.
  • In einer Ausführungsform löst ein AKT-Befehl ein internes Auffrischen in einem bzw. einer oder mehreren Unterfeldern oder Unterbänken aus. In einer Ausführungsform umfasst jede Bank mehrere Unterfelder. Das interne Auffrischen durch den DRAM oder die Speichervorrichtung kann in tRC oder einer Zeilenzykluszeit durchgeführt werden. Das tRC-Fenster gibt die minimale Zeit von einem AKT zu einem anderen Zugriff auf ein Unterfeld an. In vorherigen Vorschlägen wurden nur interne Auffrischungen als eine Auffrischlösung in Betracht gezogen. Welche Auffrischungen auch immer nicht als Teil der verborgenen Auffrischungen parallel zu AKT-Befehlen erfüllt wurden, wurden durch interne Auffrischungen erfüllt, die den DRAM veranlassen können, für Zugriff durch die Speichersteuerung nicht verfügbar zu werden. Daher könnte es erforderlich sein, dass die Speichersteuerung wartet, bis der DRAM das Durchführen des internen Auffrischens abgeschlossen hat, bevor sie auf die Speichervorrichtung zugreift. Allerdings wird eine solche Nichtverfügbarkeit ein signifikantes Problem, wenn jeder DRAM separat und nicht deterministisch nicht verfügbar ist. Anstatt alle Auffrischungen als interne Auffrischungen durchzuführen, können externe Auffrischungen von der Speichersteuerung mit internen Auffrischungen zu einer hybriden Auffrischtechnik kombiniert werden.
  • In einer Ausführungsform gibt es zwei allgemeine Optionen, die eine Kombination aus DRAM-erzeugten Auffrischungen und von der Steuerung initiierten Auffrischungen, oder hybride Auffrischoptionen, verwenden. Beide Optionen können Auffrischerfordernisse durch hybrides Auffrischen erfüllen, ohne dass Wiederholungs- oder Rücksetzmechanismen erforderlich sind. Im Allgemeinen ist die Gesamtanzahl von Auffrischbefehlen, die in einem Auffrischfenster benötigt werden (z. B. eine feste 64-ms- oder 32-ms-Periode) durch einen Standard definiert, wie etwa eine DDR-Spezifikation oder einen anderen Speicherstandard, auf den oben Bezug genommen wird. In Option 1 zeichnet die Speichersteuerung die Anzahl von benötigten externen Auffrischungen auf. In Option 2 zeichnet die Speichervorrichtung die Anzahl von benötigten externen Auffrischungen auf.
  • In einer Ausführungsform, in Option 1, zählt Steuerung 210 die Anzahl von ausgegebenen AKT-Befehlen und kann externe Auffrischbefehle für die restlichen benötigten Auffrischbefehle ausgeben. In einer Ausführungsform gibt Steuerung 210 die externen Auffrischungen auf einer bankweisen Basis aus. Die Gesamtanzahl von Auffrischbefehlen kann je nach Anbieter basierend auf Anbieteranforderungen auf einem gegebenen Prozessknoten variieren. Die benachbarten Unterfelder können potenziell ausgehungert werden, da Schaltungsanordnungen zwischen benachbarten Unterfeldern gemeinsam genutzt werden. In einer Ausführungsform kann Steuerung 210 die Bedürfnisse aufzeichnen und eine Mindestanzahl an Auffrischbefehlen in einem Auffrischfenster basierend auf der Anzahl von Zeilen in den Unterfeldern garantieren. In einer Ausführungsform kann Steuerung 210 zumindest einen Auffrischbefehl alle 9*tREFI garantieren, um sicherzustellen, dass eine Schaltungsanordnung frei von Rowhammer nicht ausgehungert wird.
  • In einer Ausführungsform, in Option 2, zeichnen die DRAM-Vorrichtungen die Anzahl von benötigten Auffrischungen auf, und die Speichersteuerung ist nicht erforderlich, um die Anzahl von AKT-Befehlen aufzuzeichnen. In einer Ausführungsform kann Speicher 240 die Anzahl von tatsächlichen Auffrischungen aufzeichnen, die er durchführt oder in Reaktion auf AKT-Befehle ausführt, anstatt dass erforderlich ist, dass Steuerung 210 AKT-Befehle aufzeichnet als Vertretung zum Aufzeichnen der Auffrischungen. In einer Ausführungsform sendet Speicher 240 einen Anzeiger an Steuerung 210, dass er zusätzliche Auffrischungen benötigt. Ein solcher Anzeiger kann mit einem externen Signal, wie etwa ALARM, mit einer MR-Lesebefehlsoption (Modusregister) oder einer Kombination gesendet werden. In einer Ausführungsform können die Inhalte des Modusregisters die benötigte Anzahl von Auffrischungen in einem bestimmten gleitenden Fenster angeben. In einer Ausführungsform kann eine Spezifikation vorgeben, wie oft Steuerung 210 ein Register lesen soll, um zu bestimmen, wie viele externe Auffrischungen auszugeben sind. In einer Ausführungsform kann das Modusregister Granularität auf Bank- oder Bankgruppenebene für Systeme abdecken, die ein Auffrischmerkmal für einzelne Bänke verwenden. Option 2 ermöglicht Flexibilität bei der Umsetzung der Speichervorrichtung, indem dem System ermöglicht wird, benötigte externe oder zusätzliche Auffrischungen basierend auf Prozess- und Temperaturbedingungen auszugeben, was zu Variationen von Vorrichtung zu Vorrichtung oder von System zu System oder von beiden führt.
  • Sowohl mit Option 1 oder Option 2 kann Steuerung 210 senden, und, in Reaktion auf das Senden von Speicher 240 empfängt sie eine Anzahl von externen Auffrischungen, die notwendig sind, um die Mindestgesamtanzahl von Auffrischungen für die Auffrischperiode zu erfüllen, und führt diese aus. In einer Ausführungsform kann Steuerung 210 eine oder mehrere Auffrischungen für einzelne Bänke für die externen Auffrischbefehle senden. In einer Ausführungsform kann Steuerung 210 eine oder mehrere Auffrischungen für alle Bänke für die externen Auffrischbefehle senden.
  • 3 ist ein Blockdiagramm einer Ausführungsform eines Systems, mögliche Signalisierung eines hybriden Auffrischens darstellend. System 300 bietet ein Beispiel von Elementen eines Speicheruntersystems und kann in Übereinstimmung mit einer Ausführungsform von System 200 aus 2 und/oder in Übereinstimmung mit einer Ausführungsform von System 100 aus 1 sein. Steuerung 302 stellt eine Hoststeuerung oder eine Speichersteuerung dar. Speicher 304 stellt eine(n) oder mehrere Speichervorrichtungen oder DRAMs dar.
  • In einer Ausführungsform umfasst Steuerung 302 Zugriffslogik 322, die AKT-Befehl 324 für Speicher 304 erzeugt. AKT 324 kann auf einen spezifischen Speicherort gerichtet werden, der innerhalb einer spezifischen Bank und Unterbank von Speicher 304 liegen kann. In einer Ausführungsform empfängt und decodiert On-Die-Steuerung 306 von Speicher 304 AKT 324 und erzeugt einen oder mehrere interne Vorgänge, um den Befehl auszuführen. Wie dargestellt, kann Steuerung 306 die Befehlsvorgänge zur entsprechenden Zielbank 310 leiten. Typischerweise ist nur eine Bank 310 die Zielbank. Die gestrichelten Linien zeigen die Möglichkeit des Sendens von Befehlen an jede der Bänke als die Zielbank, basierend auf der Adresse von AKT 324. In einer Ausführungsform erzeugt, zusätzlich zum Erzeugen interner Vorgänge zum Ausführen von AKT 324, Steuerung 306 auch einen oder mehrere verborgene Auffrischbefehle, AUFF 326, um einen unterschiedlichen Teil von Speicher 304 auszuführen. In einer Ausführungsform ist der unterschiedliche Teil von Speicher 304 eine unterschiedliche Unterbank der Zielbank während des AKT-Verzögerungsfensters. Daher können, in einer Ausführungsform, sowohl AKT 324 als auch AUFF 326 an dieselbe Bank 310 gesendet werden, wobei AKT 324 an eine Unterbank gerichtet wird und AUFF 326 an eine unterschiedliche Unterbank gerichtet wird.
  • In einer Ausführungsform zeichnet Speicher 304 einen internen AUFF-Befehl 326, ausgegeben für jede Bank 310, auf und bestimmt individuell für jede Bank 310, was deren zusätzliche Auffrischerfordernisse sind. Die zusätzlichen Auffrischerfordernisse werden innerhalb jeder Bank 310 als AUFF-Bedürfnisse 332 dargestellt. AUFF-Bedürfnisse 332 können für jede Bank unterschiedlich sein, da beim Betrieb von System 300 eine unterschiedliche Anzahl von AKT-Befehlen an jede Bank ausgegeben wird. In einer Ausführungsform stellt Speicher 304 AUFF-Bedürfnisse 332 für Steuerung 302 bereit, beispielsweise, durch Speichern der Werte in einem oder mehreren Registern (nicht spezifisch gezeigt) für Zugriff durch Steuerung 302. In einer Ausführungsform löst Speicher 304 ein Alarmsignal Alarm 334 aus, um Steuerung 302 anzuzeigen, dass die Werte bereit sind, gelesen und verwendet zu werden.
  • In einer Ausführungsform bestimmt Steuerung 302 AUFF-Bedürfnisse 342 durch Lesen eines Registers in Reaktion auf einen Alarm durch Speicher 304. In einer Ausführungsform bestimmt Steuerung 302 AUFF-Bedürfnisse 342 durch internes Aufzeichnen in der Speichersteuerung, wie viele Auffrischungen durch die einzelnen Bänke 310 benötigt werden. In einer solchen Ausführungsform würde Speicher 304 nicht notwendigerweise AUFF-Bedürfnisse 332 aufzeichnen. Externes Auffrischen (EXT AUFF) 352 stellt Logik innerhalb von Steuerung 302 zum Ausgeben von externen Auffrischungen dar, um AUFF-Bedürfnisse 342 (in Reaktion auf internes Aufzeichnen) oder AUFF-Bedürfnisse 332 (in Reaktion auf Aufzeichnen durch Speicher 304) zu erfüllen. In einer Ausführungsform gibt externe Auffrischlogik 352 eine oder mehrere Auffrischungen für alle Bänke (ALL) 354 oder eine oder mehrere Auffrischungen für einzelne Bänke (PB, Pro Bank) 356 oder beide an Bänke 310 aus. Auffrischungen für alle Bänke 354 veranlassen alle Bänke 310, Auffrischen durchzuführen. Auffrischungen für einzelne Bänke 356 veranlassen eine individuell angegebene Bank 310, ein Auffrischen durchzuführen. Die Kombination aus verborgenen AUFF 326, nebst einer Kombination aus ALL 354 oder PB 356 oder beiden sollte eine minimale Auffrischanforderung für Speicher 304 innerhalb einer Auffrischperiode erfüllen. Daher kann Steuerung 302 eine Kombination von ALL 354 und PB 356 ausgeben, um eine Differenz zwischen AUFF 326 für jede Bank und eine Auffrischanforderung für die Auffrischperiode auszugleichen.
  • 4A ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Durchführen von hybridem Auffrischen. Prozess 400 beschreibt Vorgänge, um Auffrischungen für eine oder mehrere Bänke von Speicher bereitzustellen mit einer Kombination aus verborgenen, internen Auffrischungen und externen Auffrischungen. Prozess 300 kann innerhalb jedes der Systeme 100, 200 oder 300 ausgeführt werden. In einer Ausführungsform führt die Speichervorrichtung intern verborgene Auffrischungen in Reaktion auf einen von der Speichersteuerung gesendeten Aktivierungsbefehl durch. Die Speichersteuerung kann den Aktivierungsbefehl als Teil eines Speicherzugriff- (z. B. Lesen oder Schreiben) oder eines Speicherverwaltungsvorgangs senden, 402. Beim Senden des Aktivierungsbefehls kann die Speichersteuerung den Zielspeicherort für den Befehl identifizieren, 404. In einer Ausführungsform kann, wie nachfolgend im Hinblick auf 4B ausführlicher beschrieben, die Speichersteuerung die für eine Bank benötigten Auffrischungen aufzeichnen, 406, basierend auf der Anzahl von Aktivierungsbefehlen, die sie an jede Bank oder einen anderen Teil des Speichers ausgibt.
  • In einer Ausführungsform decodiert die Speichervorrichtung, in Reaktion auf Empfangen eines Aktivierungsbefehls, den Befehl, einschließlich Identifizieren des Zielspeicherorts für Ausführung des Befehls, 408. Identifizieren des Zielspeicherorts kann Identifizieren einer Bank und Unterbank in Verbindung mit dem Speicherort umfassen. Eine interne Steuerung der Speichervorrichtung erzeugt einen oder mehrere Vorgänge zum Ausführen des Aktivierungsbefehls an dem identifizierten Speicherort, 410. In einer Ausführungsform identifiziert die interne Steuerung auch einen unterschiedlichen Speicherort, wie etwa eine unterschiedliche Unterbank derselben Bank, um ein verborgenes Auffrischen durchzuführen, 412. Daher kann die Speichervorrichtung einen Speicherort identifizieren, der während der Verzögerung im Zusammenhang mit Durchführen des Aktivierungsbefehls im Zielspeicherort in einem unterschiedlichen Teil aufzufrischen ist. Da die spezifische Bank basierend auf dem Aktivierungsbefehl bereits beschäftigt ist, bietet Auffrischen auf eine unterschiedliche Unterbank Effizienz. In einer Ausführungsform erzeugt Logik innerhalb der Speichervorrichtung einen oder mehrere Vorgänge für ein verborgenes Auffrischen an dem unterschiedlichen Speicherort, 414. In einer Ausführungsform kann, wie nachfolgend im Hinblick auf 4C ausführlicher beschrieben, die Speichervorrichtung die für eine Bank benötigten Auffrischungen aufzeichnen, 416, basierend auf der Anzahl von verborgenen Auffrischungen, die sie für jeden Teil von Speicher erzeugt.
  • In einer Ausführungsform bestimmt das Speicheruntersystem, entweder die Speichersteuerung oder die Speichervorrichtung oder beides, ob es Zeit ist, Auffrischungen vor dem Auffrischfenster (z. B. 32 ms oder 64 ms) 418 abzuschließen. In einer Ausführungsform kann Bestimmung, ob es Zeit ist, Auffrischen abzuschließen, eine Bestimmung umfassen, wie viele Auffrischungen noch benötigt werden und wie lang es dauern würde, die Auffrischungen abzuschließen. Daher können, in einer Ausführungsform, die Speichersteuerung oder die Speichervorrichtung oder beides bestimmen, basierend auf der im Auffrischfenster verbliebenen Menge an Zeit und der benötigten Anzahl von Auffrischungen, wann begonnen werden sollte, externe Auffrischungen auszuführen. Wenn es nicht die Zeit ist, Auffrischungen abzuschließen, 420 NEIN-Zweig, kann die Speichersteuerung fortfahren, Speicherzugriff auf die Speichervorrichtung durchzuführen, einschließlich Senden von Aktivierungsbefehlen, 402. Die Anzahl von Aktivierungen und verborgenen Auffrischungen kann bis zu einer Zeit auflaufen, zu der Auffrischungen durchgeführt werden müssen, um die Mindestanforderungen für die Vorrichtung zu erfüllen.
  • Wenn es Zeit ist, die Auffrischungen abzuschließen, 420 JA-Zweig, kann die Speichersteuerung oder Speichervorrichtung, je nachdem, welche die Anzahl der benötigten Auffrischungen aufzeichnet, bestimmen, wie viele externe Auffrischungen an jede Bank gesendet werden müssen, 422. In einer Ausführungsform, je nachdem, ob die Speichersteuerung oder die Speichervorrichtung berechnet, wie viele Auffrischungen für jede Bank benötigt werden, bestimmt die Speichersteuerung, wie viele Auffrischungen benötigt werden, entweder durch ihre eigene Detektion oder durch Empfangen einer Anzeige von der Speichervorrichtung. Die Speichersteuerung bestimmt, welcher Typ und wie viele von jedem Typ von Auffrischungen zu verwenden sind, um die Auffrischungen abzuschließen, 424. In einer Ausführungsform bestimmt die Speichersteuerung, Auffrischungen für einzelne Bänke auszugeben, 426 PB-Zweig, und gibt Auffrischungen für einzelne Bänke für eine Anzahl aus, die erforderlich ist, um die Mindestanzahl für jede Bank zu erfüllen, 428. In einer Ausführungsform bestimmt die Speichersteuerung, Auffrischungen für alle Bänke auszugeben, 428 AB-Zweig, und identifiziert innerhalb der Bänke der Speichervorrichtung eine Bank mit dem höchsten Auffrischbedarf, 430. Die Speichersteuerung kann dann eine Anzahl von Auffrischungen für alle Bänke ausgeben, die ausreicht, um die Mindestanzahl an Auffrischungen für die Bank mit dem höchsten Bedarf zu erfüllen, 432.
  • In einer Ausführungsform kann ein intelligenteres, flexibleres Auffrischen umgesetzt werden, um Mindestanforderungen zu erfüllen. Beispielsweise kann die Speichersteuerung identifizieren, welche Bank die niedrigste benötigte Anzahl von Auffrischungen hat, anstelle der oben erwähnten höchsten Anzahl. In einer Ausführungsform gibt die Speichersteuerung eine Anzahl von Auffrischungen für alle Bänke aus, die notwendig ist, um die Auffrischbedürfnisse der Bank mit dem niedrigsten Bedarf zu erfüllen. Aber erkennend, dass die anderen Bänke mehr Auffrischungen benötigen, kann es eine effiziente Verwendung von Bandbreite sein, alle Bänke mit der niedrigsten Anzahl von Malen aufzufrischen. Die Speichersteuerung kann dann die Bedürfnisse der anderen Bänke erfüllen durch Ausgeben von Auffrischungen für einzelne Bänke an die individuellen Bänke. Andere Kombinationen von Auffrischungen für einzelne Bänke und Auffrischungen für alle Bänke sind möglich.
  • 4B ist ein Flussdiagramm einer Ausführungsform eines Prozesses für eine Speichersteuerung zum Überwachen oder Aufzeichnen von Auffrischbedürfnissen. Prozess 406 beschreibt Vorgänge für eine Ausführungsform der Speichersteuerung, die benötigten Auffrischungen für die Bänke aufzeichnend, als Teil von Prozess 400 aus 4A. In einer Ausführungsform identifiziert die Speichersteuerung eine Bank für den Zielspeicherort eines Aktivierungsbefehls, einschließlich Identifizieren der Unterbank, 440. In einer Ausführungsform umfasst die Speichersteuerung einen oder mehrere Zähler zum Aufzeichnen von Aktivierungsbefehlen. In einer Ausführungsform umfasst die Speichersteuerung zumindest einen Zähler für jede Bank. Daher kann die Speichersteuerung einen Zähler für jeden Aktivierungsbefehl für jede Bank inkrementieren, 442.
  • In einer Ausführungsform berechnet die Speichersteuerung, wie viele externe Auffrischungen an die einzelnen Bänke zu senden sind, basierend zumindest teilweise auf dem bzw. den Zähler(n), 444. In einer Ausführungsform erfüllt die Speichersteuerung Auffrischbedürfnisse durch Auffrischungen für einzelne Bänke. Daher gibt, in einer Ausführungsform, die Speichersteuerung die berechnete Anzahl von Auffrischungen für einzelne Bänke aus, um die einzelnen Bänke aufzufrischen, 446. In einer Ausführungsform erfüllt die Speichersteuerung Auffrischbedürfnisse durch Auffrischungen für alle Bänke. Daher berechnet, in einer Ausführungsform, die Speichersteuerung eine benötigte Anzahl von Auffrischungen für alle Bänke für den höchsten Bedarf an Auffrischungen (bedeutend, dass die niedrigsten Aktivierungsbefehle gezählt wurden) für alle Bänke, 448. In einer Ausführungsform erfüllt die Speichersteuerung Auffrischbedarf durch eine Kombination aus externen Auffrischungen für alle Bänke und Auffrischungen für einzelne Bänke.
  • 4C ist ein Flussdiagramm einer Ausführungsform eines Prozesses für eine Speichervorrichtung zum Überwachen oder Aufzeichnen von Auffrischbedürfnissen. Prozess 416 beschreibt Vorgänge für eine Ausführungsform der Speichervorrichtung, die benötigten Auffrischungen für die Bänke aufzeichnend, als Teil von Prozess 400 aus 4A. In einer Ausführungsform inkrementiert die Speichervorrichtung einen Auffrischzähler für jedes durchgeführte verborgene Auffrischen, 450. In einer Ausführungsform berechnet die Speichervorrichtung basierend auf dem Auffrischzähler für jede Bank, wie viele externe Auffrischungen benötigt werden, 452.
  • In einer Ausführungsform speichert die Speichervorrichtung den Auffrischbedarf als einen Wert in einem Register, 454, wie etwa einem Modusregister oder einem Mehrzweckregister. Das Register kann Werte für jede Bank halten. In einer Ausführungsform erzeugt die Speichervorrichtung einen Alarm oder ein anderes Anzeigesignal für die Speichersteuerung, 456. In einer Ausführungsform greift die Speichersteuerung auf den bzw. die Zähler vom Register zu und erzeugt Auffrischungen, um die Auffrischbedürfnisse der einzelnen Bänke zu erfüllen, 458. In einer Ausführungsform erfüllt die Speichersteuerung die Auffrischbedürfnisse durch Auffrischungen für alle Bänke, durch Auffrischungen für einzelne Bänke oder eine Kombination.
  • 5 ist ein Blockdiagramm einer Ausführungsform eines Datenverarbeitungssystems, in dem hybrides Auffrischen umgesetzt werden kann. System 500 stellt eine Datenverarbeitungsvorrichtung in Übereinstimmung mit jeder hier beschriebenen Ausführungsform dar und kann ein Laptopcomputer, ein Desktopcomputer, ein Tabletcomputer, ein Server, ein Spiel- oder Unterhaltungssteuerungssystem, ein Scanner, Kopierer, Drucker, eine Routing- oder Switching-Vorrichtung, eingebettete Datenverarbeitungsvorrichtung, ein Smartphone, eine tragbare Vorrichtung, eine Internet-der-Dinge-Vorrichtung oder eine andere elektronische Vorrichtung sein.
  • System 500 umfasst Prozessor 510, der Verarbeitung, Vorgangsverwaltung und Ausführung von Befehlen für System 500 bietet. Prozessor 510 kann jeden Typ von Mikroprozessor, zentraler Verarbeitungseinheit (CPU, Central Processing Unit), Grafikverarbeitungseinheit (GPU, Graphics Processing Unit), Verarbeitungskern oder anderer Verarbeitungshardware zum Bereitstellen von Verarbeitung für System 500 oder eine Kombination aus Prozessoren umfassen. Prozessor 510 steuert den Gesamtbetrieb von System 500 und kann ein(e) oder mehrere programmierbare universelle oder spezielle Mikroprozessoren, Digitalsignalprozessoren (DSPs), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs, Application Specific Integrated Circuits), programmierbare Logikvorrichtungen (PLDs, Programmable Logic Devices) oder ähnliches oder eine Kombination von solchen Vorrichtungen sein oder solche umfassen.
  • In einer Ausführungsform umfasst System 500 Schnittstelle 512, gekoppelt mit Prozessor 510, die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten darstellen kann, die Verbindungen mit höherer Bandbreite benötigen, wie etwa Speicheruntersystem 520 oder Grafikschnittstellenkomponenten 540. Schnittstelle 512 kann eine „Northbridge“-Schaltung darstellen, die eine eigenständige Komponente sein oder auf einem Prozessor-Die integriert sein kann. Wo vorhanden, verbindet die Grafikschnittstelle 540 mit Grafikkomponenten zum Bereitstellen einer visuellen Anzeige für einen Benutzer von System 500. In einer Ausführungsform erzeugt Grafikschnittstelle 540 eine Anzeige basierend auf im Speicher 530 gespeicherten Daten oder basierend auf vom Prozessor 510 ausgeführten Vorgängen oder beides.
  • Speicheruntersystem 520 stellt den Hauptspeicher von System 500 dar und bietet Speicherung für Code, der durch Prozessor 510 ausgeführt wird, oder Datenwerte, die beim Ausführen einer Routine zu verwenden sind. Speicheruntersystem 520 kann eine oder mehrere Speichervorrichtungen 530 umfassen, wie etwa Nur-Lese-Speicher (ROM, Read-Only Memory), Flash-Speicher, eine oder mehrere Varianten von Direktzugriffsspeicher (RAM, Random Access Memory), wie etwa DRAM, oder andere Speichervorrichtungen oder eine Kombination von solchen Vorrichtungen. Speicher 530 speichert und hostet, unter anderen Dingen, Betriebssystem (BS) 532, um eine Softwareplattform für Ausführung von Befehlen in System 500 bereitzustellen. Zusätzlich können Anwendungen 534 auf der Softwareplattform von BS 532 vom Speicher 530 ausführen. Anwendungen 534 stellen Programme dar, die ihre eigene Vorgangslogik haben, um Ausführung von einer oder mehreren Funktionen durchzuführen. Prozesse 536 stellen Agenten oder Routinen, die zusätzliche Funktionen für BS 532 bereitstellen, oder eine oder mehrere Anwendungen 534 oder eine Kombination dar. BS 532, Anwendungen 534 und Prozesse 536 bieten Softwarelogik, um Funktionen für System 500 bereitzustellen. In einer Ausführungsform umfasst Speicheruntersystem 520 Speichersteuerung 522, die eine Speichersteuerung ist, um Befehle zu erzeugen und an Speicher 530 auszugeben. Es versteht sich, dass Speichersteuerung 522 ein physischer Teil von Prozessor 510 oder ein physischer Teil von Schnittstelle 512 sein kann. Beispielsweise kann Speichersteuerung 522 eine integrierte Speichersteuerung sein, integriert auf einer Schaltung mit Prozessor 510.
  • Obwohl nicht spezifisch dargestellt, versteht es sich, dass System 500 ein(en) oder mehrere Busse oder Bussysteme zwischen Vorrichtungen umfassen kann, wie etwa einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln, oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder andere Schaltungsanordnungen oder eine Kombination umfassen. Busse können, beispielsweise, einen oder mehrere aus einem Systembus, einem peripheren Komponentenverbindungsbus (PCI, Peripheral Component Interconnect), einem HyperTransport- oder Industriestandardarchitekturbus (ISA, Industry Standard Architecture), einem kleinen Computersystemschnittstellenbus (SCSI, Small Computer System Interface), einem universellen seriellen Bus (USB, Universal Serial Bus) oder einem Bus nach IEEE-Standard 1394 (Institute of Electrical and Electronics Engineers) (häufig als „Firewire“ bezeichnet), umfassen.
  • In einer Ausführungsform umfasst System 500 Schnittstelle 514, die mit Schnittstelle 512 gekoppelt sein kann. Schnittstelle 514 kann eine Schnittstelle mit niedrigerer Geschwindigkeit als Schnittstelle 512 sein. In einer Ausführungsform kann Schnittstelle 514 eine „Southbridge“-Schaltung sein, die eigenständige Komponenten und integrierte Schaltungsanordnungen umfassen kann. In einer Ausführungsform sind mehrere Benutzerschnittstellenkomponenten oder periphere Komponenten oder beides mit Schnittstelle 514 gekoppelt. Netzwerkschnittstelle 550 bietet System 500 die Möglichkeit, mit abgesetzten Vorrichtungen (z. B. Server oder anderen Datenverarbeitungsvorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Netzwerkschnittstelle 550 kann einen Ethernet-Adapter, kabellose Zwischenverbindungskomponenten, Mobilfunknetzwerkzwischenverbindungskomponenten, auf USB- (Universal Serial Bus) oder anderen kabelgebundenen oder kabellosen Standards basierende oder proprietäre Schnittstellen umfassen. Netzwerkschnittstelle 550 kann Daten mit einer abgesetzten Vorrichtung austauschen, was Senden von in Speicher gespeicherten Daten oder Empfangen von in Speicher zu speichernden Daten umfassen kann.
  • In einer Ausführungsform umfasst System 500 eine oder mehrere Eingabe/Ausgabe-Schnittstellen 560 (E/A). E/A-Schnittstelle 560 kann eine oder mehrere Schnittstellenkomponenten umfassen, über die ein Benutzer mit System 500 interagiert (z. B. akustische, alphanumerische, haptische oder andere Verbindung). Periphere Vorrichtungsschnittstelle 570 kann jede oben nicht spezifisch erwähnte Hardwareschnittstelle umfassen. Periphere Vorrichtungen beziehen sich im Allgemeinen auf Vorrichtungen, die abhängig mit System 500 verbunden sind. Eine abhängige Verbindung ist eine, bei der System 500 die Softwareplattform oder die Hardwareplattform oder beide, auf denen der Vorgang ausgeführt wird und mit denen ein Benutzer interagiert, bereitstellt.
  • In einer Ausführungsform umfasst System 500 Speicherungsuntersystem 580 zum Speichern von Daten in einer nichtflüchtigen Weise. In einer Ausführungsform können sich, in bestimmten Systemumsetzungen, zumindest gewisse Komponenten von Speicherung 580 mit Komponenten von Speicheruntersystem 520 überschneiden. Speicherungsuntersystem 580 umfasst Speicherungsvorrichtung(en) 584, die jedes herkömmliche Medium zum Speichern großer Mengen von Daten in einer nichtflüchtigen Weise sein oder umfassen kann bzw. können, wie etwa eine oder mehrere aus magnetischen, Festkörper- oder optisch basierten Platten oder eine Kombination daraus. Speicherung 584 hält Code oder Befehle und Daten 586 in einem persistenten Zustand (d. h. der Wert wird trotz Unterbrechung von Leistungsversorgung zu System 500 aufrechterhalten). Speicherung 584 kann generisch als ein „Speicher“ betrachtet werden, obwohl Speicher 530 typischerweise der ausführende oder operierende Speicher ist, um Prozessor 510 Befehle bereitzustellen. Während Speicherung 584 nichtflüchtig ist, kann Speicher 530 flüchtigen Speicher umfassen (d. h. der Wert oder Zustand der Daten ist nicht determiniert, wenn die Leistungsversorgung zu System 500 unterbrochen wird). In einer Ausführungsform umfasst Speicherungsuntersystem 580 Steuerung 582 zum Verbinden mit Speicherung 584. In einer Ausführungsform ist Steuerung 582 ein physischer Teil von Schnittstelle 514 oder Prozessor 510, oder kann Schaltungen oder Logik in sowohl Prozessor 510 als auch Schnittstelle 514 umfassen.
  • Leistungsquelle 502 stellt Leistung für die Komponenten von System 500 bereit. Insbesondere ist Leistungsquelle 502 typischerweise mit einer oder mehreren Leistungsversorgungen 504 in System 502 verbunden, um Leistung für die Komponenten von System 500 bereitzustellen. In einer Ausführungsform umfasst Leistungsversorgung 504 einen WS-zu-GS-Adapter (Wechselstrom zu Gleichstrom) zum Einstecken in eine Wandsteckdose. Eine solche WS-Leistung kann eine Leistungsquelle 502 mit erneuerbarer Energie (z. B. Solarenergie) sein. In einer Ausführungsform umfasst Leistungsquelle 502 eine GS-Leistungsquelle, wie etwa einen externen WS-zu-GS-Wandler. In einer Ausführungsform umfasst Leistungsquelle 502 oder Leistungsversorgung 504 kabellose Ladehardware zum Laden über die Nähe zu einem Ladefeld. In einer Ausführungsform kann Leistungsquelle 502 eine interne Batterie oder eine Brennstoffzellenquelle umfassen.
  • In einer Ausführungsform umfasst System 500 hybride Auffrischlogik 590, die dem System ermöglicht, Auffrischbedürfnisse innerhalb von Speicher 530 über eine Kombination aus verborgenen Auffrischungen und externen Auffrischungen in Übereinstimmung mit einer beliebigen hier beschriebenen Ausführungsform zu erfüllen. Speicher 530 oder Speichersteuerung 522 oder beide können die Anzahl von verborgenen Auffrischungen, von Speicher 530 in Reaktion auf Aktivierungsbefehle durchgeführt, aufzeichnen. Basierend auf der Anzahl von durchgeführten verborgenen Auffrischungen können Speicher 530 oder Speichersteuerung 522 oder beide bestimmen, wie viele Auffrischungen von jeder Bank benötigt werden, um einen Mindestbedarf innerhalb eines Auffrischfensters zu erfüllen. Speichersteuerung 522 kann externe Auffrischungen ausgeben, um den Mindestbedarf zu erfüllen. Die Speichersteuerung kann Auffrischungen für einzelne Bänke, Auffrischungen für alle Bänke oder beide ausgeben, um die Bänke aufzufrischen.
  • 6 ist ein Blockdiagramm einer Ausführungsform einer mobilen Vorrichtung, in der hybrides Auffrischen umgesetzt werden kann. Vorrichtung 600 stellt eine mobile Datenverarbeitungsvorrichtung dar, wie etwa ein Tabletcomputer, ein Mobiltelefon oder Smartphone, eine zu kabellosem Betrieb fähige E-Lesevorrichtung, eine tragbare Datenverarbeitungsvorrichtung, eine Internet-der-Dinge-Vorrichtung oder eine andere mobile Vorrichtung oder eine eingebettete Datenverarbeitungsvorrichtung. Es versteht sich, dass gewisse Komponenten allgemein gezeigt sind und dass nicht alle Komponenten einer solchen Vorrichtung in Vorrichtung 600 gezeigt sind.
  • Vorrichtung 600 umfasst Prozessor 610, der die primären Verarbeitungsvorgänge von Vorrichtung 600 durchführt. Prozessor 610 kann eine oder mehrere physische Vorrichtungen umfassen, wie etwa Mikroprozessoren, Anwendungsprozessoren, Mikrosteuerungen, programmierbare Logikvorrichtungen oder andere Verarbeitungsmittel. Die von Prozessor 610 durchgeführten Verarbeitungsvorgänge umfassen die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf der bzw. dem Anwendungen und Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsvorgänge umfassen Vorgänge im Zusammenhang mit E/A (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen, Vorgänge im Zusammenhang mit Leistungsverwaltung, Vorgänge im Zusammenhang mit Verbinden von Vorrichtung 600 mit einer anderen Vorrichtung, oder eine Kombination. Die Verarbeitungsvorgänge können auch Vorgänge im Zusammenhang mit Audio-E/A, Anzeige-E/A oder andere Schnittstellen oder eine Kombination umfassen. Prozessor 610 kann im Speicher gespeicherte Daten ausführen. Prozessor 610 kann im Speicher gespeicherte Daten schreiben oder bearbeiten.
  • In einer Ausführungsform umfasst System 600 einen oder mehrere Sensoren 612. Sensoren 612 stellen eingebettete Sensoren oder Schnittstellen mit externen Sensoren oder eine Kombination dar. Sensoren 612 ermöglichen System 600, eine oder mehrere Bedingungen einer Umgebung oder einer Vorrichtung, in der System 600 umgesetzt ist, zu überwachen oder zu detektieren. Sensoren 612 können Umgebungssensoren (wie etwa Temperatursensoren, Bewegungsdetektoren, Lichtdetektoren, Kameras, chemische Sensoren (z. B. Sensoren für Kohlenmonoxid, Kohlendioxid oder andere Chemikalien)), Drucksensoren, Beschleunigungsmesser, Gyroskope, medizinische oder physiologische Sensoren (z. B. Biosensoren, Herzschlagüberwachungen oder andere Sensoren zum Detektieren physiologischer Attribute) oder andere Sensoren oder eine Kombination umfassen. Sensoren 612 können auch Sensoren für biometrische Systeme, wie etwa Fingerabdruckerkennungssysteme, Gesichtsdetektions- oder -erkennungssysteme oder andere Systeme, die Benutzermerkmale detektieren oder erkennen, umfassen. Sensoren 612 sind in einem weiteren Sinne und nicht als die vielen unterschiedlichen Typen von Sensoren, die mit System 600 umgesetzt werden können, einschränkend zu verstehen. In einer Ausführungsform sind ein oder mehrere Sensoren 612 über eine in den Prozessor 610 integrierte Frontendschaltung mit Prozessor 610 gekoppelt. In einer Ausführungsform sind ein oder mehrere Sensoren 612 über eine andere Komponente von System 600 mit Prozessor 610 gekoppelt.
  • In einer Ausführungsform umfasst Vorrichtung 600 Audiountersystem 620, das Hardware- (z. B. Audiohardware und Audioschaltungen) und Softwarekomponenten (z. B. Treiber, Codecs) im Zusammenhang mit Bereitstellen von Audiofunktionen für die Datenverarbeitungsvorrichtung darstellt. Audiofunktionen können Lautsprecher- oder Kopfhörerausgang sowie Mikrofoneingang umfassen. Vorrichtungen für solche Funktionen können in Vorrichtung 600 integriert sein oder mit Vorrichtung 600 verbunden sein. In einer Ausführungsform interagiert ein Benutzer mit Vorrichtung 600 durch Bereitstellen von Audiobefehlen, die durch Prozessor 610 empfangen und verarbeitet werden.
  • Anzeigeuntersystem 630 stellt Hardware- (z. B. Anzeigevorrichtungen) und Softwarekomponenten (z. B. Treiber) dar, die eine visuelle Anzeige zur Darstellung für einen Benutzer bereitstellen. In einer Ausführungsform umfasst die Anzeige haptische Komponenten oder Touchscreenelemente für einen Benutzer zum Interagieren mit der Datenverarbeitungsvorrichtung. Anzeigeuntersystem 630 umfasst Anzeigeschnittstelle 632, die den bestimmten Bildschirm oder die Hardwarevorrichtung umfasst, die verwendet werden, um einem Benutzer eine Anzeige bereitzustellen. In einer Ausführungsform umfasst eine Anzeigeschnittstelle 632 von Prozessor 610 (wie etwa einem Grafikprozessor) separate Logik, um zumindest etwas Verarbeitung im Zusammenhang mit der Anzeige durchzuführen. In einer Ausführungsform umfasst Anzeigeuntersystem 630 eine Touchscreenvorrichtung, die sowohl Ausgabe als auch Eingabe für einen Benutzer bereitstellt. In einer Ausführungsform umfasst Anzeigeuntersystem 630 eine hochauflösende (HD, High Definition) Anzeige, die eine Ausgabe für einen Benutzer bereitstellt. Hochauflösend kann sich auf eine Anzeige mit einer Bildpunktdichte von etwa 100 PPI (Bildpunkte pro Zoll, Pixels Per Inch) oder größer beziehen und kann Formate wie etwa Full HD (z. B. 1080p), Retina-Displays, 4K (ultrahochauflösend oder UHD) oder andere umfassen. In einer Ausführungsform erzeugt Anzeigeuntersystem 630 Anzeigeinformationen basierend auf im Speicher gespeicherten Daten und auf vom Prozessor 610 ausgeführten Vorgängen.
  • E/A-Steuerung 640 stellt Hardwarevorrichtungen und Softwarekomponenten bezüglich Interaktion mit einem Benutzer dar. E/A-Steuerung 640 kann arbeiten, um Hardware zu verwalten, die Teil von Audiountersystem 620 oder Anzeigeuntersystem 630 oder beiden ist. Zusätzlich stellt E/A-Steuerung 640 einen Verbindungspunkt für zusätzliche Vorrichtungen dar, die sich mit Vorrichtung 600 verbinden, durch die ein Benutzer mit dem System interagieren kann. Beispielsweise können Vorrichtungen, die mit Vorrichtung 600 verbunden sind, Mikrofonvorrichtungen, Lautsprecher oder Stereosysteme, Videosysteme oder andere Anzeigevorrichtung, Tastatur- oder Tastenfeldvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit spezifischen Anwendungen, wie etwa Kartenlesevorrichtungen oder andere Vorrichtungen, umfassen.
  • Wie oben erwähnt, kann E/A-Steuerung 640 mit Audiountersystem 620 oder Anzeigeuntersystem 630 oder beiden interagieren. Beispielsweise kann Eingabe über ein Mikrofon oder eine andere Audio Vorrichtung Eingang oder Befehle für eine oder mehrere Anwendungen oder Funktionen von Vorrichtung 600 bereitstellen. Außerdem kann Audioausgabe anstatt oder zusätzlich zu Anzeigeausgabe bereitgestellt sein. In einem weiteren Beispiel wirkt die Anzeigevorrichtung, wenn Anzeigeuntersystem einen Touchscreen umfasst, als eine Eingabevorrichtung, die zumindest teilweise durch E/A-Steuerung 640 verwaltet werden kann. Es kann auch zusätzliche Tasten oder Schalter an Vorrichtung 600 geben, um E/A-Funktionen, die durch E/A-Steuerung 640 verwaltet werden, bereitzustellen.
  • In einer Ausführungsform verwaltet E/A-Steuerung 640 Vorrichtungen, wie etwa Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren, Gyroskope, globales Positionsbestimmungssystem (GPS, Global Positioning System), oder andere Hardware, die in Vorrichtung 600 oder Sensoren 612 eingeschlossen werden kann. Die Eingabe kann Teil von direkter Benutzerinteraktion sein sowie Umgebungseingang für das System bereitstellen, um seinen Betrieb zu beeinflussen (wie etwa Filtern von Geräuschen, Einstellen von Anzeigen für Helligkeitsdetektion, Anwenden eines Blitzlichts für eine Kamera oder andere Merkmale).
  • In einer Ausführungsform umfasst Vorrichtung 600 Leistungsverwaltung 650, die Nutzung der Batterieleistung, Laden der Batterie und Merkmale im Zusammenhang mit leistungssparendem Betrieb verwaltet. Leistungsverwaltung 650 verwaltet Leistung von Leistungsquelle 652, die Leistung für die Komponenten von System 600 bereitstellt. In einer Ausführungsform umfasst Leistungsquelle 652 einen WS-zu-GS-Adapter (Wechselstrom zu Gleichstrom) zum Einstecken in eine Wandsteckdose. Eine solche WS-Leistung kann erneuerbare Energie (z. B. Solarenergie, bewegungsbasierte Leistung) sein. In einer Ausführungsform umfasst Leistungsquelle 652 nur GS-Leistung, die durch eine GS-Leistungsquelle, wie etwa einen externen WS-zu-GS-Wandler, bereitgestellt sein kann. In einer Ausführungsform umfasst Leistungsquelle 652 kabellose Ladehardware zum Laden über die Nähe zu einem Ladefeld. In einer Ausführungsform kann Leistungsquelle 652 eine interne Batterie oder eine Brennstoffzellenquelle umfassen.
  • Speicheruntersystem 660 umfasst Speichervorrichtung(en) 662 zum Speichern von Informationen in Vorrichtung 600. Speicheruntersystem 660 kann nichtflüchtige (Zustand ändert sich nicht, wenn Leistungsversorgung an der Speichervorrichtung unterbrochen wird) oder flüchtige (Zustand ist nicht determiniert, wenn die Leistungsversorgung an der Speichervorrichtung unterbrochen wird) Speichervorrichtungen oder eine Kombination umfassen. Speicher 660 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (seien sie langfristig oder vorübergehend) im Zusammenhang mit der Ausführung der Anwendungen und Funktionen von System 600 speichern. In einer Ausführungsform umfasst Speicheruntersystem 660 Speichersteuerung 664 (die auch als Teil der Steuerung von System 600 angesehen werden kann und potenziell als Teil von Prozessor 610 angesehen werden kann). Speichersteuerung 664 umfasst eine Zeitablaufsteuerung zum Erzeugen und Ausgeben von Befehlen an Speichervorrichtung 662.
  • Konnektivität 670 umfasst Hardwarevorrichtungen (z. B. kabellose oder kabelgebundene Verbinder und Kommunikationshardware oder eine Kombination aus kabelgebundener und kabelloser Hardware) und Softwarekomponenten (z. B. Treiber, Protokollstapel), um einer Vorrichtung 600 zu ermöglichen, mit externen Vorrichtungen zu kommunizieren. Die externe Vorrichtung kann separate Vorrichtungen sein, wie etwa andere Datenverarbeitungsvorrichtungen, kabellose Zugriffspunkte oder Basisstationen sowie periphere Vorrichtungen, wie etwa Headsets, Drucker oder andere Vorrichtungen. In einer Ausführungsform tauscht System 600 Daten mit einer externen Vorrichtung zur Speicherung im Speicher oder zur Anzeige auf einer Anzeigevorrichtung aus. Die ausgetauschten Daten können im Speicher zu speichernde Daten oder bereits im Speicher gespeicherte Daten umfassen, um Daten zu lesen, zu schreiben oder zu bearbeiten.
  • Konnektivität 670 kann mehrere unterschiedliche Typen von Konnektivität umfassen. Zur Verallgemeinerung wird Vorrichtung 600 mit zellularer Konnektivität 672 und kabelloser Konnektivität 674 dargestellt. Zellulare Konnektivität 672 bezieht sich im Allgemeinen auf durch kabellose Träger bereitgestellte zellulare Netzwerkkonnektivität, wie etwa bereitgestellt durch GSM (globales System für mobile Kommunikation) oder Variationen oder Ableitungen, CDMA (Mehrfachzugriff im Codemultiplex, Code Division Multiple Access) oder Variationen oder Ableitungen, TDM (Zeitmultiplex, Time Division Multiplexing) oder Variationen oder Ableitungen, LTE (Long Term Evolution - auch als „4G“ bezeichnet) oder andere zellulare Dienststandards. Kabellose Konnektivität 674 bezieht sich auf kabellose Konnektivität, die nicht zellular ist, und kann persönliche Bereichsnetzwerke (wie etwa Bluetooth), Nahbereichsnetzwerke (wie etwa WiFi) oder Weitbereichsnetzwerke (wie etwa WiMax) oder andere kabellose Kommunikationen oder eine Kombination umfassen. Kabellose Kommunikation bezieht sich auf Transfer von Daten durch die Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht festes Medium. Kabelgebundene Kommunikation erfolgt durch ein festes Kommunikationsmedium.
  • Periphere Verbindungen 680 umfassen Hardwareschnittstellen und Verbinder sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) zum Herstellen von peripheren Verbindungen. Es versteht sich, dass Vorrichtung 600 sowohl eine periphere Vorrichtung („zu“ 682) zu anderen Datenverarbeitungsvorrichtungen sein kann, als auch damit verbundene periphere Vorrichtungen („von“ 684) haben kann. Vorrichtung 600 hat üblicherweise einen „Andockverbinder“ zum Verbinden mit anderen Datenverarbeitungsvorrichtungen zu Zwecken, wie etwa Verwalten (z. B. Herunterladen, Hochladen, Ändern, Synchronisieren) von Inhalt auf der Vorrichtung 600. Zusätzlich kann ein Andockverbinder Vorrichtung 600 ermöglichen, sich mit bestimmten peripheren Vorrichtungen zu verbinden, die Vorrichtung 600 ermöglichen, Inhaltsausgabe beispielsweise zu audiovisuellen oder anderen Systemen zu steuern.
  • Zusätzlich zu einem proprietären Andockverbinder oder einer anderen proprietären Verbindungshardware kann Vorrichtung 600 periphere Verbindungen 680 über gewöhnliche oder auf Standards basierende Verbinder herstellen. Gewöhnliche Typen können einen universellen seriellen Busverbinder (USB, Universal Serial Bus) (der eine beliebige Anzahl von unterschiedlichen Hardwareschnittstellen enthalten kann), DisplayPort, einschließlich MiniDisplayPort (MDP), hochauflösende Multimedia-Schnittstelle (HDMI, High Definition Multimedia Interface), Firewire oder einen anderen Typ umfassen.
  • In einer Ausführungsform umfasst System 600 hybride Auffrischlogik 690, die dem System ermöglicht, Auffrischbedürfnisse innerhalb von Speicher 662 über eine Kombination aus verborgenen Auffrischungen und externen Auffrischungen in Übereinstimmung mit einer beliebigen hier beschriebenen Ausführungsform zu erfüllen. Speicher 662 oder Speichersteuerung 664 oder beide können die Anzahl von verborgenen Auffrischungen, von Speicher 662 in Reaktion auf Aktivierungsbefehle durchgeführt, aufzeichnen. Basierend auf der Anzahl von durchgeführten verborgenen Auffrischungen können Speicher 662 oder Speichersteuerung 664 oder beide bestimmen, wie viele Auffrischungen von jeder Bank benötigt werden, um einen Mindestbedarf innerhalb eines Auffrischfensters zu erfüllen. Speichersteuerung 664 kann externe Auffrischungen ausgeben, um den Mindestbedarf zu erfüllen. Die Speichersteuerung kann Auffrischungen für einzelne Bänke, Auffrischungen für alle Bänke oder beide ausgeben, um die Bänke aufzufrischen.
  • In einem Aspekt umfasst eine Speichervorrichtung zum Verbinden in einem Speicheruntersystem: einen ersten von mehreren Teilen von Speicher; E/A-Hardware (Eingabe/Ausgabe) zum Koppeln mit einer zugehörigen Speichersteuerung und Empfangen von Befehlen von der Speichersteuerung, einschließlich Aktivierungsbefehle, gerichtet an angegebene Speicherorte innerhalb des ersten Teils; und Steuerlogik im Inneren der Speichervorrichtung, in Reaktion auf Empfang eines Aktivierungsbefehls, um den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils auszuführen und um ein verborgenes Auffrischen an einem Speicherort in einem zweiten, vom ersten Teil verschiedenen Teil auszuführen; wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für den ersten Teil ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  • In einer Ausführungsform umfasst das Auffrischfenster eine Auffrischzykluszeit. In einer Ausführungsform dient die E/A-Hardware dazu, eine Anzahl von externen Auffrischungen zu empfangen, die erforderlich ist, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, nach einer Bestimmung, wie viele externe Auffrischungen benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für einzelne Bänke. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für alle Bänke. In einer Ausführungsform dient die Steuerlogik dazu, zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform dient die E/A-Hardware dazu, der Speichersteuerung eine Anzeige der benötigten Anzahl von externen Auffrischungen bereitzustellen. In einer Ausführungsform, ferner ein Register umfassend, wobei die Steuerlogik dazu dient, die Anzahl von externen Auffrischungen im Register für Zugriff durch die Speichersteuerung zu speichern. In einer Ausführungsform dient die Speichersteuerung dazu, zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform dient die Speichersteuerung dazu, eine Anzahl von an entsprechende Teile gesendeten Aktivierungsbefehlen zu detektieren und eine Anzahl von externen Auffrischungen zu bestimmen, die für den ersten Teil benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, basierend auf der Anzahl von Aktivierungen, die an den ersten Teil gesendet wurden. In einer Ausführungsform umfasst der Teil eine Bank, und wobei die Speichersteuerung Zähler für einzelne Bänke umfasst, um eine Anzahl von Aktivierungsbefehlen zu detektieren, die an die jeweiligen Bänke gesendet wurden, und um eine Anzahl von Auffrischungen für alle Bänke zu senden, basierend auf einer niedrigsten Zählung der Zähler für einzelne Bänke. In einer Ausführungsform umfasst der erste Teil eine erste Bank aus mehreren Bänken von Speicher. In einer Ausführungsform umfasst die erste Bank mehrere Unterbänke, und wobei die Steuerlogik dazu dient, das verborgene Auffrischen an einem Speicherort einer von der ersten Bank verschiedenen Unterbank auszuführen. In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Standard basierend auf doppelter Datenrate Version 5 (DDR5, Dual Data Rate version 5). In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Niedrigenergie-Standard basierend auf doppelter Datenrate Version 5 (LPDDR5, Low Power Dual Data Rate version 5).
  • In einem Aspekt umfasst ein System für Speicherverwaltung: eine Speichervorrichtung, umfassend mehrere Bänke, einschließlich eines ersten von mehreren Teilen von Speicher; und Steuerlogik; und eine Speichersteuerung zum Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehle, die an angegebene Speicherorte innerhalb des ersten Teils gerichtet sind; wobei, in Reaktion auf Empfang eines Aktivierungsbefehls, die Steuerlogik der Speichervorrichtung den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils ausführt, und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil ausführt; und wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für den ersten Teil ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  • Das System des vorhergehenden Systems kann jede Ausführungsform der vorhergehenden Speichervorrichtung umfassen. In einer Ausführungsform, ferner umfassend eines oder mehrere von Folgenden: zumindest ein Prozessor, kommunikativ gekoppelt mit der Speichersteuerung und der Speichervorrichtung; eine Anzeige, kommunikativ gekoppelt mit zumindest einem Prozessor; eine Batterie zum Versorgen des Systems; oder eine Netzwerkschnittstelle, kommunikativ gekoppelt mit zumindest einem Prozessor.
  • In einem Aspekt umfasst ein Verfahren zum Auffrischen einer Speichervorrichtung: Empfangen von Aktivierungsbefehlen von einer Speichersteuerung, gerichtet auf angegebene Speicherorte innerhalb eines ersten von mehreren Teilen von Speicher; in Reaktion auf Empfang eines Aktivierungsbefehls, Ausführen des Aktivierungsbefehls an einem angegebenen Speicherort des ersten Teils, und Ausführen eines verborgenen Auffrischens an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil; und Ausführen von externen Auffrischungen von der Speichersteuerung für den ersten Teil, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  • In einer Ausführungsform umfasst das Auffrischfenster eine Auffrischzykluszeit. In einer Ausführungsform umfasst Ausführen der externen Auffrischungen Empfangen einer Anzahl von externen Auffrischungen, die erforderlich ist, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, nach einer Bestimmung, wie viele externe Auffrischungen benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für einzelne Bänke. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für alle Bänke. In einer Ausführungsform, ferner umfassend: Bestimmen an der Speichervorrichtung, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform, ferner umfassend: Bereitstellen einer Anzeige der benötigten Anzahl von externen Auffrischungen für die Speichersteuerung. In einer Ausführungsform umfasst Bereitstellen der Anzeige Speichern der Anzahl von externen Auffrischungen in einem Register auf der Speichervorrichtung für Zugriff durch die Speichersteuerung. In einer Ausführungsform umfasst Ausführen der externen Auffrischungen Ausführen einer Anzahl von externen Auffrischungen, bestimmt durch die Speichersteuerung. In einer Ausführungsform, ferner umfassend die Speichersteuerung: Detektieren einer Anzahl von an entsprechende Teile gesendeten Aktivierungsbefehlen; und Bestimmen einer Anzahl von externen Auffrischungen, die für den ersten Teil benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, basierend auf der Anzahl von Aktivierungen, die an den ersten Teil gesendet wurden. In einer Ausführungsform umfasst der Teil eine Bank, und wobei die Speichersteuerung Zähler für einzelne Bänke umfasst, um eine Anzahl von Aktivierungsbefehlen zu detektieren, die an die jeweiligen Bänke gesendet wurden, wobei die Speichersteuerung dazu dient, eine Anzahl von Auffrischungen für alle Bänke zu senden, basierend auf einer niedrigsten Zählung der Zähler für einzelne Bänke. In einer Ausführungsform umfasst der erste Teil eine erste Bank aus mehreren Bänken von Speicher. In einer Ausführungsform umfasst die erste Bank mehrere Unterbänke, und wobei Ausführen des verborgenen Auffrischens Ausführen des verborgenen Auffrischens an einem Speicherort einer von der ersten Bank verschiedenen Unterbank umfasst. In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Standard basierend auf doppelter Datenrate Version 5 (DDR5, Dual Data Rate version 5). In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Niedrigenergie-Standard basierend auf doppelter Datenrate Version 5 (LPDDR5, Low Power Dual Data Rate version 5).
  • In einem Aspekt ein Fertigungsartikel, ein computerlesbares Speichermedium mit darauf gespeichertem Inhalt umfassend, der, wenn ausgeführt, in der Durchführung von Vorgängen zum Ausführen eines Verfahrens zum Auffrischen einer Speichervorrichtung in Übereinstimmung mit einer beliebigen Ausführungsform des vorhergehenden Verfahrens resultiert. In einem Aspekt, eine Einrichtung, umfassend Mittel zum Durchführen von Vorgängen zum Ausführen eines Verfahrens zum Auffrischen einer Speichervorrichtung in Übereinstimmung mit einer beliebigen Ausführungsform des vorhergehenden Verfahrens.
  • In einem Aspekt umfasst eine Speichersteuerung zum Verbinden mit einer Speichervorrichtung: E/A-Hardware (Eingabe/Ausgabe) zum Koppeln mit der Speichervorrichtung und Ausgeben von Befehlen, einschließlich Aktivierungsbefehlen, auf angegebene Speicherorte innerhalb eines ersten von mehreren Teilen von Speicher gerichtet, wobei in Reaktion auf die Aktivierungsbefehle die Speichervorrichtung dazu dient, den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils auszuführen und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil auszuführen; und Auffrischlogik zum Ausgeben externer Auffrischungen an die Speichervorrichtung für den ersten Teil, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  • In einer Ausführungsform umfasst das Auffrischfenster eine Auffrischzykluszeit. In einer Ausführungsform dient die Auffrischlogik dazu, eine Anzahl von externen Auffrischungen auszugeben, die erforderlich ist, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, nach einer Bestimmung, wie viele externe Auffrischungen benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für einzelne Bänke. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für alle Bänke. In einer Ausführungsform dient die Speichervorrichtung dazu, zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform dient die E/A-Hardware dazu, eine Anzeige der benötigten Anzahl von externen Auffrischungen von der Speichervorrichtung zu empfangen. In einer Ausführungsform, ferner umfassend: die E/A-Hardware zum Zugreifen auf ein Register der Speichervorrichtung, wobei die Speichervorrichtung dazu dient, die Anzahl von externen Auffrischungen im Register zu speichern. In einer Ausführungsform dient die Auffrischlogik dazu, zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform, ferner umfassend: Detektierlogik zum Detektieren einer Anzahl von an entsprechende Teile ausgegebenen Aktivierungsbefehlen und zum Bestimmen einer Anzahl von externen Auffrischungen, die für den ersten Teil benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, basierend auf der Anzahl von Aktivierungen, die an den ersten Teil ausgegeben wurden. In einer Ausführungsform umfasst der Teil eine Bank, und wobei die Detektierlogik Zähler für einzelne Bänke umfasst, um eine Anzahl von Aktivierungsbefehlen zu detektieren, die an die jeweiligen Bänke gesendet wurden, wobei die Auffrischlogik dazu dient, eine Anzahl von Auffrischungen für alle Bänke auszugeben, basierend auf einer niedrigsten Zählung der Zähler für einzelne Bänke. In einer Ausführungsform umfasst der erste Teil eine erste Bank aus mehreren Bänken von Speicher. In einer Ausführungsform umfasst die erste Bank mehrere Unterbänke, und wobei die Speichervorrichtung dazu dient, das verborgene Auffrischen an einem Speicherort einer von der ersten Bank verschiedenen Unterbank auszuführen. In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Standard basierend auf doppelter Datenrate Version 5 (DDR5, Dual Data Rate version 5). In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Niedrigenergie-Standard basierend auf doppelter Datenrate Version 5 (LPDDR5, Low Power Dual Data Rate version 5).
  • In einem Aspekt umfasst ein System für Speicherverwaltung: eine Speichervorrichtung, umfassend mehrere Bänke, einschließlich eines ersten von mehreren Teilen von Speicher; und Steuerlogik; und eine Speichersteuerung zum Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehle, die an angegebene Speicherorte innerhalb des ersten Teils gerichtet sind; wobei, in Reaktion auf Empfang eines Aktivierungsbefehls, die Steuerlogik der Speichervorrichtung den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils ausführt, und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil ausführt; und wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für den ersten Teil ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  • Das System des vorhergehenden Systems kann jegliche Ausführungsform der vorhergehenden Speichersteuerung umfassen. In einer Ausführungsform, ferner umfassend eines oder mehrere von Folgenden: zumindest ein Prozessor, kommunikativ gekoppelt mit der Speichersteuerung und der Speichervorrichtung; eine Anzeige, kommunikativ gekoppelt mit zumindest einem Prozessor; eine Batterie zum Versorgen des Systems; oder eine Netzwerkschnittstelle, kommunikativ gekoppelt mit zumindest einem Prozessor.
  • In einem Aspekt, ein Verfahren zum Verbinden mit einer Speichervorrichtung, Folgendes umfassend: Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehlen, auf angegebene Speicherorte innerhalb eines ersten von mehreren Teilen von Speicher gerichtet, wobei in Reaktion auf die Aktivierungsbefehle die Speichervorrichtung dazu dient, den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils auszuführen und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil auszuführen; und Ausgeben externer Auffrischungen an die Speichervorrichtung für den ersten Teil, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  • In einer Ausführungsform umfasst das Auffrischfenster eine Auffrischzykluszeit. In einer Ausführungsform dient die Auffrischlogik dazu, eine Anzahl von externen Auffrischungen auszugeben, die erforderlich ist, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, nach einer Bestimmung, wie viele externe Auffrischungen benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für einzelne Bänke. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für alle Bänke. In einer Ausführungsform umfasst Ausgeben der externen Auffrischungen Ausgeben einer Anzahl von externen Auffrischungen, wie durch die Speichervorrichtung bestimmt. In einer Ausführungsform, ferner umfassend: Empfangen einer Anzeige der benötigten Anzahl von externen Auffrischungen von der Speichervorrichtung. In einer Ausführungsform, ferner umfassend: Zugreifen auf ein Register der Speichervorrichtung, wobei die Speichervorrichtung dazu dient, die Anzahl von externen Auffrischungen im Register zu speichern.
  • In einer Ausführungsform, ferner umfassend: Bestimmen an der Speichersteuerung, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform umfasst Bestimmen an der Speichersteuerung Folgendes: Detektieren einer Anzahl von an entsprechende Teile ausgegebenen Aktivierungsbefehlen; und Bestimmen einer Anzahl von externen Auffrischungen, die für den ersten Teil benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, basierend auf der Anzahl von Aktivierungen, die an den ersten Teil ausgegeben wurden. In einer Ausführungsform umfasst der Teil eine Bank, und wobei Detektieren der Anzahl von an entsprechende Teile ausgegebenen Aktivierungsbefehlen Detektieren mit Zählern für einzelne Bänke der Speichersteuerung einer Anzahl von an entsprechende Bänke gesendeten Aktivierungsbefehlen umfasst, wobei Ausgeben der externen Auffrischungen Ausgeben einer Anzahl von Auffrischungen für alle Bänke basierend auf einer niedrigsten Zählung der Zähler für einzelne Bänke umfasst. In einer Ausführungsform umfasst der erste Teil eine erste Bank aus mehreren Bänken von Speicher. In einer Ausführungsform umfasst die erste Bank mehrere Unterbänke, und wobei die Speichervorrichtung dazu dient, das verborgene Auffrischen an einem Speicherort einer von der ersten Bank verschiedenen Unterbank auszuführen. In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Standard basierend auf doppelter Datenrate Version 5 (DDR5, Dual Data Rate version 5). In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Niedrigenergie-Standard basierend auf doppelter Datenrate Version 5 (LPDDR5, Low Power Dual Data Rate version 5).
  • In einem Aspekt ein Fertigungsartikel, ein computerlesbares Speichermedium mit darauf gespeichertem Inhalt umfassend, der, wenn ausgeführt, in der Durchführung von Vorgängen zum Ausführen eines Verfahrens zum Auffrischen einer Speichervorrichtung in Übereinstimmung mit einer beliebigen Ausführungsform des vorhergehenden Verfahrens resultiert. In einem Aspekt, eine Einrichtung, umfassend Mittel zum Durchführen von Vorgängen zum Ausführen eines Verfahrens zum Auffrischen einer Speichervorrichtung in Übereinstimmung mit einer beliebigen Ausführungsform des vorhergehenden Verfahrens.
  • In einem Aspekt umfasst ein System für Speicherverwaltung: eine Speichervorrichtung, umfassend mehrere Bänke, einschließlich einer ersten Bank mit mehreren Unterbänken; und Steuerlogik; und eine Speichersteuerung zum Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehle, die an angegebene Speicherorte innerhalb der ersten Bank gerichtet sind; wobei, in Reaktion auf Empfang eines Aktivierungsbefehls, die Steuerlogik der Speichervorrichtung den Aktivierungsbefehl an einem angegebenen Speicherort der ersten Bank ausführt, und ein verborgenes Auffrischen an einem Speicherort in einer unterschiedlichen Unterbank der ersten Bank ausführt; und wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für die erste Bank ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für die erste Bank während eines Auffrischfensters erfüllen muss.
  • In einer Ausführungsform umfasst das Auffrischfenster eine Auffrischzykluszeit. In einer Ausführungsform dient die Speichersteuerung dazu, eine Anzahl von externen Auffrischungen für die erste Bank auszugeben, die erforderlich ist, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, nach einer Bestimmung, wie viele externe Auffrischungen benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für einzelne Bänke. In einer Ausführungsform umfassen die externen Auffrischungen Auffrischungen für alle Bänke. In einer Ausführungsform dient die Steuerlogik der Speichervorrichtung dazu, zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform dient die Speichervorrichtung dazu, der Speichersteuerung eine Anzeige der benötigten Anzahl von externen Auffrischungen bereitzustellen. In einer Ausführungsform, die Speichervorrichtung ferner umfassend: ein Register, wobei die Steuerlogik dazu dient, die Anzahl von externen Auffrischungen im Register für Zugriff durch die Speichersteuerung zu speichern. In einer Ausführungsform dient die Speichersteuerung dazu, zu bestimmen, wie viele externe Auffrischungen benötigt werden. In einer Ausführungsform dient die Speichersteuerung dazu, eine Anzahl von an entsprechende Bänke gesendeten Aktivierungsbefehlen zu detektieren und eine Anzahl von externen Auffrischungen zu bestimmen, die für die erste Bank benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, basierend auf der Anzahl von Aktivierungen, die an die erste Bank gesendet wurden. In einer Ausführungsform umfasst die Speichersteuerung Zähler für einzelne Bänke, um eine Anzahl von Aktivierungsbefehlen zu detektieren, die an die jeweiligen Bänke gesendet wurden, und um eine Anzahl von Auffrischungen für alle Bänke zu senden, basierend auf einer niedrigsten Zählung der Zähler für einzelne Bänke. In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Standard basierend auf doppelter Datenrate Version 5 (DDR5, Dual Data Rate version 5). In einer Ausführungsform umfasst die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM, Synchronous Dynamic Random Access Memory), kompatibel mit einem Niedrigenergie-Standard basierend auf doppelter Datenrate Version 5 (LPDDR5, Low Power Dual Data Rate version 5). In einer Ausführungsform, ferner umfassend eines oder mehrere von Folgenden: zumindest ein Prozessor, kommunikativ gekoppelt mit der Speichersteuerung und der Speichervorrichtung; eine Anzeige, kommunikativ gekoppelt mit zumindest einem Prozessor; eine Batterie zum Versorgen des Systems; oder eine Netzwerkschnittstelle, kommunikativ gekoppelt mit zumindest einem Prozessor.
  • Flussdiagramme, wie hier dargestellt, bieten Beispiele für Abfolgen von verschiedenen Prozessaktionen. Die Flussdiagramme können Vorgänge, die durch eine Software- oder Firmwareroutine auszuführen sind, sowie physische Vorgänge anzeigen. In einer Ausführungsform kann ein Flussdiagramm den Zustand eines endlichen Automaten (FSM, Finite State Machine) darstellen, der in Hardware, Software oder einer Kombination umgesetzt sein kann. Obwohl in einer bestimmten Abfolge oder Reihenfolge gezeigt, kann, sofern nicht anderweitig angegeben, die Reihenfolge der Aktionen modifiziert werden. Daher sind die dargestellten Ausführungsformen nur als ein Beispiel zu verstehen, und der Prozess kann in einer unterschiedlichen Reihenfolge durchgeführt werden, und einige Aktionen können parallel durchgeführt werden. Zusätzlich können in verschiedenen Ausführungsformen eine oder mehrere Aktionen ausgelassen sein; daher sind nicht alle Aktionen in jeder Ausführungsform erforderlich. Andere Prozessflüsse sind möglich.
  • In dem Maße, in dem verschiedene Vorgänge oder Funktionen hier beschrieben sind, können sie als Softwarecode, Befehle, Konfiguration, Daten oder eine Kombination beschrieben oder definiert werden. Der Inhalt kann direkt ausführbar („Objekt“- oder „ausführbare“ Form), Quellcode oder anderer Code („Delta“- oder „Patch“-Code) sein. Der Softwareinhalt der hier beschriebenen Ausführungsformen kann über einen Fertigungsartikel mit darauf gespeichertem Inhalt oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle, um die Daten über die Kommunikationsschnittstelle zu senden, bereitgestellt sein. Ein maschinenlesbares Speichermedium kann eine Maschine veranlassen, die beschriebenen Funktionen oder Vorgänge durchzuführen, und umfasst jeden Mechanismus, der Informationen in einer für eine Maschine zugänglichen Form speichert (z. B. Datenverarbeitungsvorrichtung, elektronisches System usw.), wie etwa aufzeichenbare/nicht aufzeichenbare Medien (z. B. Nur-Lese-Speicher (ROM; Read Only Memory), Direktzugriffsspeicher (RAM, Random Access Memory), magnetische Plattenspeichermedien, optische Speichermedien, Flash-Speichervorrichtungen usw.). Eine Kommunikationsschnittstelle umfasst jeden Mechanismus, der eine Verbindung mit einem beliebigen kabelgebundenen, kabellosen, optischen usw. Medium ermöglicht, um mit einer anderen Vorrichtung, wie etwa einer Speicherbusschnittstelle, einer Prozessorbusschnittstelle, einer Internetverbindung, einer Plattensteuerung usw., zu kommunizieren. Die Kommunikationsschnittstelle kann konfiguriert werden durch Bereitstellen von Konfigurationsparametern oder durch Senden von Signalen oder durch beides, um die Kommunikationsschnittstelle vorzubereiten, ein den Softwareinhalt beschreibendes Datensignal bereitzustellen. Auf die Kommunikationsschnittstelle kann über ein(en) oder mehrere Befehle oder Signale, die an die Kommunikationsschnittstelle gesendet werden, zugegriffen werden.
  • Verschiedene hier beschriebene Komponenten können ein Mittel zum Durchführen der beschriebenen Vorgänge oder Funktionen sein. Jede hier beschriebene Komponente umfasst Software, Hardware oder eine Kombination aus diesen. Die Komponenten können als Softwaremodule, Hardwaremodule, spezielle Hardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs, Application Specific Integrated Circuits), Digitalsignalprozessoren (DSPs) usw.), eingebettete Steuerungen, festverdrahtete Schaltungsanordnungen usw. umgesetzt sein.
  • Neben dem hier Beschriebenen können verschiedene Modifikationen an den offenbarten Ausführungsformen und Umsetzungen der Erfindung vorgenommen werden, ohne von ihrem Schutzumfang abzuweichen. Daher sollten die Darstellungen und Beispiele hier in einem darstellenden und nicht in einem einschränkenden Sinn verstanden werden. Der Schutzumfang der Erfindung soll einzig durch die folgenden Ansprüche gemessen werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62219763 [0001]

Claims (24)

  1. Es wird beansprucht:
  2. Speichervorrichtung zum Verbinden in einem Speicheruntersystem, Folgendes umfassend: einen ersten von mehreren Teilen von Speicher; E/A-Hardware (Eingabe/Ausgabe) zum Koppeln mit einer zugehörigen Speichersteuerung und Empfangen von Befehlen von der Speichersteuerung, einschließlich Aktivierungsbefehlen, die auf angegebene Speicherorte innerhalb des ersten Teils gerichtet ist; und Steuerlogik im Inneren der Speichervorrichtung, in Reaktion auf Empfang eines Aktivierungsbefehls, um den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils auszuführen und um ein verborgenes Auffrischen an einem Speicherort in einem zweiten, vom ersten Teil verschiedenen Teil auszuführen; wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für den ersten Teil ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  3. Speichervorrichtung nach Anspruch 1, wobei die E/A-Hardware dazu dient, eine Anzahl von externen Auffrischungen zu empfangen, die erforderlich ist, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, nach einer Bestimmung, wie viele externe Auffrischungen benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen.
  4. Speichervorrichtung nach Anspruch 2, wobei die externen Auffrischungen Auffrischungen für einzelne Bänke oder Auffrischungen für alle Bänke oder beides umfassen.
  5. Speichervorrichtung nach Anspruch 2, wobei die Steuerlogik dazu dient, zu bestimmen, wie viele externe Auffrischungen benötigt werden.
  6. Speichervorrichtung nach Anspruch 4, wobei die E/A-Hardware dazu dient, der Speichersteuerung eine Anzeige der benötigten Anzahl von externen Auffrischungen bereitzustellen.
  7. Speichervorrichtung nach Anspruch 4, die ferner Folgendes umfasst: ein Register, wobei die Steuerlogik dazu dient, die Anzahl von externen Auffrischungen im Register für Zugriff durch die Speichersteuerung zu speichern.
  8. Speichervorrichtung nach Anspruch 2, wobei die Speichersteuerung dazu dient, zu bestimmen, wie viele externe Auffrischungen benötigt werden.
  9. Speichervorrichtung nach Anspruch 7, wobei die Speichersteuerung dazu dient, eine Anzahl von an entsprechende Teile gesendeten Aktivierungsbefehlen zu detektieren und eine Anzahl von externen Auffrischungen zu bestimmen, die für den ersten Teil benötigt werden, um die Mindestanzahl von Gesamtauffrischungen zu erfüllen, basierend auf der Anzahl von Aktivierungen, die an den ersten Teil gesendet wurden.
  10. Speichervorrichtung nach Anspruch 7, wobei der Teil eine Bank umfasst und wobei die Speichersteuerung Zähler für einzelne Bänke umfasst, um eine Anzahl von Aktivierungsbefehlen zu detektieren, die an die jeweiligen Bänke gesendet wurden, und um eine Anzahl von Auffrischungen für alle Bänke zu senden, basierend auf einer niedrigsten Zählung der Zähler für einzelne Bänke.
  11. Speichervorrichtung nach einem der Ansprüche 1 bis 9, wobei der erste Teil eine erste Bank aus mehreren Bänken von Speicher umfasst.
  12. Speichervorrichtung nach Anspruch 10, wobei die erste Bank mehrere Unterbänke umfasst, und wobei die Steuerlogik dazu dient, das verborgene Auffrischen an einem Speicherort einer von der ersten Bank verschiedenen Unterbank auszuführen.
  13. Speichervorrichtung nach einem der Ansprüche 1 bis 11, wobei die Speichervorrichtung eine synchrone dynamische Direktzugriffsspeichervorrichtung (SDRAM) umfasst, die entweder mit einem Standard basierend auf doppelter Datenrate Version 5 (DDR5) oder mit einem Niedrigenergie-Standard basierend auf doppelter Datenrate Version 5 (LPDDR5) kompatibel ist.
  14. Speichervorrichtung nach einem der Ansprüche 1 bis 12, wobei das Auffrischfenster eine Auffrischzykluszeit umfasst.
  15. System für Speicherverwaltung, das Folgendes umfasst: eine Speichervorrichtung, umfassend mehrere Bänke, einschließlich eines ersten aus mehreren Teilen von Speicher; und Steuerlogik; und eine Speichersteuerung zum Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehlen, die auf angegebene Speicherorte innerhalb des ersten Teils gerichtet sind; wobei, in Reaktion auf Empfang eines Aktivierungsbefehls, die Steuerlogik der Speichervorrichtung den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils ausführt und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, vom ersten Teil verschiedenen Teil ausführt; und wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für den ersten Teil ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  16. System nach Anspruch 14, ferner umfassend eines oder mehrere von: zumindest einem Prozessor, kommunikativ gekoppelt mit der Speichersteuerung und der Speichervorrichtung; einer Anzeige, kommunikativ gekoppelt mit zumindest einem Prozessor; einer Batterie zum Versorgen des Systems; oder einer Netzwerkschnittstelle, kommunikativ gekoppelt mit zumindest einem Prozessor.
  17. Verfahren zum Auffrischen einer Speichervorrichtung, das Folgendes umfasst: Empfangen von Aktivierungsbefehlen von einer Speichersteuerung, gerichtet auf angegebene Speicherorte innerhalb eines ersten aus mehreren Teilen von Speicher; in Reaktion auf Empfang eines Aktivierungsbefehls, Ausführen des Aktivierungsbefehls bei einem angegebenen Speicherort des ersten Teils, und Ausführen eines verborgenen Auffrischens an einem Speicherort in einem zweiten, vom ersten Teil verschiedenen Teil; und Ausführen externer Auffrischungen von der Speichersteuerung für den ersten Teil, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  18. Fertigungsartikel, ein computerlesbares Speichermedium mit darauf gespeichertem Inhalt umfassend, der, wenn ausgeführt, in der Durchführung von Vorgängen zum Ausführen eines Verfahrens zum Auffrischen einer Speichervorrichtung in Übereinstimmung mit Anspruch 16 resultiert.
  19. Einrichtung, umfassend Mittel zum Durchführen von Vorgängen zum Ausführen eines Verfahrens zum Auffrischen einer Speichervorrichtung in Übereinstimmung mit Anspruch 16.
  20. Speichersteuerung zum Verbinden mit einer Speichervorrichtung, Folgendes umfassend: E/A-Hardware (Eingabe/Ausgabe) zum Koppeln mit der Speichervorrichtung und Ausgeben von Befehlen, einschließlich Aktivierungsbefehlen, auf angegebene Speicherorte innerhalb eines ersten von mehreren Teilen von Speicher gerichtet, wobei in Reaktion auf die Aktivierungsbefehle die Speichervorrichtung dazu dient, den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils auszuführen und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil auszuführen; und Auffrischlogik zum Ausgeben externer Auffrischungen an die Speichervorrichtung für den ersten Teil, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  21. Verfahren zum Verbinden mit einer Speichervorrichtung, das Folgendes umfasst: Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehlen, auf angegebene Speicherorte innerhalb eines ersten von mehreren Teilen von Speicher gerichtet, wobei in Reaktion auf die Aktivierungsbefehle die Speichervorrichtung dazu dient, den Aktivierungsbefehl an einem angegebenen Speicherort des ersten Teils auszuführen und ein verborgenes Auffrischen an einem Speicherort in einem zweiten, von dem ersten Teil verschiedenen Teil auszuführen; und Ausgeben externer Auffrischungen an die Speichervorrichtung für den ersten Teil, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für den ersten Teil während eines Auffrischfensters erfüllen muss.
  22. Fertigungsartikel, ein computerlesbares Speichermedium mit darauf gespeichertem Inhalt umfassend, der, wenn ausgeführt, in der Durchführung von Vorgängen zum Ausführen eines Verfahrens zum Verbinden mit einer Speichervorrichtung in Übereinstimmung mit Anspruch 20 resultiert.
  23. Einrichtung, umfassend Mittel zum Durchführen von Vorgängen zum Ausführen eines Verfahrens zum Verbinden mit einer Speichervorrichtung in Übereinstimmung mit Anspruch 20.
  24. System für Speicherverwaltung, das Folgendes umfasst: eine Speichervorrichtung, umfassend mehrere Bänke, einschließlich einer ersten Bank mit mehreren Unterbänken; und Steuerlogik; und eine Speichersteuerung zum Ausgeben von Befehlen an die Speichervorrichtung, einschließlich Aktivierungsbefehlen, die auf angegebene Speicherorte innerhalb der ersten Bank gerichtet sind; wobei, in Reaktion auf Empfang eines Aktivierungsbefehls, die Steuerlogik der Speichervorrichtung den Aktivierungsbefehl an einem angegebenen Speicherort der ersten Bank ausführt und ein verborgenes Auffrischen an einem Speicherort in einer unterschiedlichen Unterbank der ersten Bank ausführt; und wobei die Steuerlogik ferner externe Auffrischungen von der Speichersteuerung für die erste Bank ausführt, wobei eine Gesamtanzahl von verborgenen Auffrischungen und externen Auffrischungen eine Mindestanzahl von Gesamtauffrischungen für die erste Bank während eines Auffrischfensters erfüllen muss.
DE112016004243.4T 2015-09-17 2016-08-16 Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen Pending DE112016004243T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562219763P 2015-09-17 2015-09-17
US62/219,763 2015-09-17
US15/232,745 2016-08-09
US15/232,745 US20170110178A1 (en) 2015-09-17 2016-08-09 Hybrid refresh with hidden refreshes and external refreshes
PCT/US2016/047222 WO2017048441A1 (en) 2015-09-17 2016-08-16 Hybrid refresh with hidden refreshes and external refreshes

Publications (1)

Publication Number Publication Date
DE112016004243T5 true DE112016004243T5 (de) 2018-09-13

Family

ID=58289669

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016004243.4T Pending DE112016004243T5 (de) 2015-09-17 2016-08-16 Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen

Country Status (5)

Country Link
US (1) US20170110178A1 (de)
CN (1) CN107924697A (de)
DE (1) DE112016004243T5 (de)
TW (1) TWI721003B (de)
WO (1) WO2017048441A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102468728B1 (ko) * 2016-08-23 2022-11-21 에스케이하이닉스 주식회사 리프레쉬 제어 회로, 반도체 메모리 장치 및 그의 동작 방법
KR102471160B1 (ko) * 2017-05-16 2022-11-25 삼성전자주식회사 온-다이-터미네이션 회로를 포함하는 비휘발성 메모리 및 상기 비휘발성 메모리를 포함하는 스토리지 장치
US10340022B2 (en) * 2017-05-16 2019-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory including on-die-termination circuit and storage device including the nonvolatile memory
FR3066842B1 (fr) 2017-05-24 2019-11-08 Upmem Logique de correction de row hammer pour dram avec processeur integre
KR102553266B1 (ko) 2017-11-03 2023-07-07 삼성전자 주식회사 온-다이-터미네이션 회로를 포함하는 메모리 장치
US10635327B2 (en) 2018-01-31 2020-04-28 Western Digital Technologies, Inc. Data availability during memory inaccessibility
US10629533B2 (en) 2018-03-13 2020-04-21 Toshiba Memory Corporation Power island segmentation for selective bond-out
US11977770B2 (en) * 2018-06-04 2024-05-07 Lodestar Licensing Group Llc Methods for generating notifications for updated information from mode registers of a memory device to a host and memory devices and systems employing the same
US10489316B1 (en) 2018-06-04 2019-11-26 Micron Technology, Inc. Methods for performing multiple memory operations in response to a single command and memory devices and systems employing the same
CN112534502B (zh) 2018-08-03 2024-04-09 美光科技公司 用于行锤击缓解的方法及采用所述方法的存储器装置及***
US11054995B2 (en) * 2018-09-07 2021-07-06 Micron Technology, Inc. Row hammer protection for a memory device
EP3864654A4 (de) 2018-10-09 2022-06-29 Micron Technology, Inc. Verfahren zur rowhammer-minderung und speichervorrichtungen und -systeme mit verwendung davon
WO2020131457A1 (en) 2018-12-21 2020-06-25 Micron Technology, Inc. Methods for activity-based memory maintenance operations and memory devices and systems employing the same
US10817371B2 (en) 2018-12-31 2020-10-27 Micron Technology, Inc. Error correction in row hammer mitigation and target row refresh
US10998032B2 (en) * 2019-02-06 2021-05-04 Mellanox Technologies, Ltd. EDRAM refresh apparatus and method
US10950288B2 (en) 2019-03-29 2021-03-16 Intel Corporation Refresh command control for host assist of row hammer mitigation
US10991413B2 (en) 2019-07-03 2021-04-27 Micron Technology, Inc. Memory with programmable die refresh stagger
US10937468B2 (en) 2019-07-03 2021-03-02 Micron Technology, Inc. Memory with configurable die powerup delay
CN111145807B (zh) * 2019-12-10 2021-12-31 深圳市国微电子有限公司 一种3d堆叠存储器的温控自刷新方法及温控自刷新电路
US11314589B2 (en) 2020-05-15 2022-04-26 Intel Corporation Read retry to selectively disable on-die ECC
JP6975298B1 (ja) 2020-09-03 2021-12-01 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 半導体記憶装置
KR102412680B1 (ko) 2020-10-20 2022-06-23 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
US11474746B2 (en) * 2020-12-10 2022-10-18 Advanced Micro Devices, Inc. Refresh management for DRAM
CN112612596B (zh) * 2020-12-30 2022-07-08 海光信息技术股份有限公司 命令调度方法、装置、设备和存储介质
JP7143463B2 (ja) 2021-02-26 2022-09-28 華邦電子股▲ふん▼有限公司 半導体記憶装置
KR102453523B1 (ko) 2021-03-10 2022-10-11 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
KR102504489B1 (ko) 2021-04-19 2023-02-27 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
TWI775616B (zh) * 2021-08-30 2022-08-21 大陸商蘇州磐聯集成電路科技股份有限公司 差分包產生方法,差分包產生設備,更新方法,及嵌入式系統
TWI789184B (zh) * 2021-12-28 2023-01-01 新唐科技股份有限公司 微控制器及其記憶體控制方法
US20240126476A1 (en) * 2022-10-13 2024-04-18 Micron Technology, Inc. Activate information on preceding command
KR20240082053A (ko) * 2022-12-01 2024-06-10 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631701A (en) * 1983-10-31 1986-12-23 Ncr Corporation Dynamic random access memory refresh control system
US6046952A (en) * 1998-12-04 2000-04-04 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic refreshing
US6430073B1 (en) * 2000-12-06 2002-08-06 International Business Machines Corporation Dram CAM cell with hidden refresh
JP4743999B2 (ja) * 2001-05-28 2011-08-10 ルネサスエレクトロニクス株式会社 半導体記憶装置
JP2003123470A (ja) * 2001-10-05 2003-04-25 Mitsubishi Electric Corp 半導体記憶装置
US7353329B2 (en) * 2003-09-29 2008-04-01 Intel Corporation Memory buffer device integrating refresh logic
US7532532B2 (en) * 2005-05-31 2009-05-12 Micron Technology, Inc. System and method for hidden-refresh rate modification
US7313047B2 (en) * 2006-02-23 2007-12-25 Hynix Semiconductor Inc. Dynamic semiconductor memory with improved refresh mechanism
JP4912718B2 (ja) * 2006-03-30 2012-04-11 富士通セミコンダクター株式会社 ダイナミック型半導体メモリ
JP4967452B2 (ja) * 2006-05-18 2012-07-04 富士通セミコンダクター株式会社 半導体メモリ
KR100855578B1 (ko) * 2007-04-30 2008-09-01 삼성전자주식회사 반도체 메모리 소자의 리프레시 주기 제어회로 및 리프레시주기 제어방법
US7894290B2 (en) * 2008-10-22 2011-02-22 Qimonda Ag Method and apparatus for performing internal hidden refreshes while latching read/write commands, address and data information for later operation
TWI425508B (zh) * 2009-04-23 2014-02-01 Orise Technology Co Ltd 具隱藏更新及雙埠能力之sram相容嵌入式dram裝置
WO2012074724A1 (en) * 2010-12-03 2012-06-07 Rambus Inc. Memory refresh method and devices
US9007862B2 (en) * 2012-07-12 2015-04-14 Rambus Inc. Reducing memory refresh exit time
KR102021401B1 (ko) * 2012-08-30 2019-11-04 에스케이하이닉스 주식회사 메모리 장치
US9269417B2 (en) * 2013-01-04 2016-02-23 Intel Corporation Memory refresh management

Also Published As

Publication number Publication date
TW201723866A (zh) 2017-07-01
CN107924697A (zh) 2018-04-17
TWI721003B (zh) 2021-03-11
WO2017048441A1 (en) 2017-03-23
US20170110178A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
DE112016004243T5 (de) Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
US10504579B2 (en) Directed per bank refresh command
US10109340B2 (en) Precharging and refreshing banks in memory device with bank group architecture
DE112017004268T5 (de) Befehlsbus mit doppelter datenrate
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
TWI709853B (zh) 特定記憶體裝置之自我更新進入與退出技術
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
US20180096719A1 (en) Staggering initiation of refresh in a group of memory devices
US20190392886A1 (en) Applying chip select for memory device identification and power management control
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE112017004966T5 (de) Erweiterte anwendung eines fehlerprüfungs- und korrekturcodes in einem speicher
DE112015003397T5 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
US10416912B2 (en) Efficiently training memory device chip select control
US11675716B2 (en) Techniques for command bus training to a memory device
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
US10599206B2 (en) Techniques to change a mode of operation for a memory device
DE112012006161T5 (de) Integrierter Selbsttest für Stapelspeicherarchitektur
DE112011106021T5 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE112013003219T5 (de) Flexible Befehlsadressierung für Speicher
DE102021122170A1 (de) Adaptive fehlerbereinigung und fehlerbehandlung für internen speicher
DE102022105932A1 (de) Komprimierter verbindungsstiftmit geschlossenem regelkreis
DE102017106713A1 (de) Rechensystem, nichtflüchtiges Speichermodul und Verfahren zum Betreiben einer Speichervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed