DE102020104367A1 - Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation - Google Patents

Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation Download PDF

Info

Publication number
DE102020104367A1
DE102020104367A1 DE102020104367.8A DE102020104367A DE102020104367A1 DE 102020104367 A1 DE102020104367 A1 DE 102020104367A1 DE 102020104367 A DE102020104367 A DE 102020104367A DE 102020104367 A1 DE102020104367 A1 DE 102020104367A1
Authority
DE
Germany
Prior art keywords
refresh
commands
memory
threshold number
command
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
DE102020104367.8A
Other languages
English (en)
Inventor
Christopher Cox
Bill Nale
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 DE102020104367A1 publication Critical patent/DE102020104367A1/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/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • 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
    • 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/0673Single storage device
    • 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
    • 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

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)
  • Memory System (AREA)

Abstract

Eine Speichervorrichtung mit interner Rowhammer-Mitigation ist mit einer Speichersteuerung gekoppelt. Die Speichersteuerung oder der Host können die Rowhammer-Mitigation unterstützen, indem sie zusätzliche Refresh-Zyklen oder Refresh-Befehle senden. Als Reaktion auf einen zusätzlichen Refresh-Befehl kann die Speichervorrichtung einen Refresh für eine Rowhammer-Mitigation anstelle eines Refresh für eine Standarddatenintegrität durchführen. Die Speichersteuerung kann die Anzahl der an die Speichervorrichtung gesendeten Aktivierungsbefehle verfolgen, und als Reaktion auf eine Schwellenwertanzahl von Aktivierungsbefehlen sendet die Speichersteuerung den zusätzlichen Refresh-Befehl. Mit dem zusätzlichen Refresh-Befehl kann die Speichervorrichtung die potenziellen Opferreihen einer potenziellen Angreiferreihe refreshen, anstatt einfach eine Reihe zu refreshen, auf die eine Zeit lang nicht zugegriffen wurde.

Description

  • GEBIET
  • Beschreibungen betreffen im Allgemeinen Computerspeichersysteme, und speziellere Beschreibungen betreffen die Mitigation von Rowhammer-Ereignissen.
  • HINTERGRUND
  • Während Computervorrichtungen weiter an Größe abnehmen und an Kapazität und Fähigkeit zunehmen, nehmen die minimalen Vorrichtungsgeometrien, die zur Herstellung der Komponenten verwendet werden, weiter ab. Die Abnahme der Geometrien der Speichervorrichtungen ermöglicht eine fortgesetzte Systemskalierung, schafft jedoch das Potenzial für Datenverlust aufgrund von Rowhammer- oder Reihenstörungsereignissen. „Rowhammer“ bezieht sich auf einen Fehler, der durch wiederholten Zugriff auf eine Zielreihe oder eine Angreiferreihe innerhalb eines Zeitraums verursacht wird. Eine wiederholte Aktivierung für den Zugriff auf die Angreiferreihe kann einen Fehler in einer Opferreihe verursachen, die an die Ziel-/Angreiferreihe angrenzt oder sich in deren Nähe befindet, wobei eine wiederholte Aktivierung der Zielreihe eine Migration der Ladung über das Passgate der Opferreihe verursacht, was zu einem nicht-deterministischen Zustand der Opferreihe führt. Rowhammer ist ein bekanntes Problem in DRAM-Vorrichtungen (Dynamic Random Access Memory, dynamischer Direktzugriffsspeicher).
  • Mit den abnehmenden Vorrichtungsgeometrien ist die Anzahl der Aktivierungen für eine bestimmte Reihe, die ein Rowhammer-Ereignis verursachen könnten, von 500K auf 300K gefallen, und es wird nun projiziert, dass sie bei 100K liegt und sogar auf einen Bereich von etwa 30K-50K Aktivierungen abfällt. Bei Rowhammer-Ereignissen, die durch weniger Aktivierungen verursacht werden, könnten mehr Reihen Aggressoren innerhalb des Refresh-Fensters sein, und mehr Rowhammer-Mitigation wird erforderlich sein, um das Risiko eines Datenverlusts zu reduzieren.
  • Die traditionelle Rowhammer-Mitigation, die von der Speichersteuerung verwaltet wird, stellt eine signifikante Belastung für die Speichersteuerung dar, und die Koordination des Managements zwischen der Speichersteuerung und dem DRAM belastet die Speicherbusbandbreite. Die meisten DRAM-Vorrichtungen handhaben jetzt die Rowhammer-Mitigation intern, typischerweise durch „Stehlen“ von Refresh-Zyklen, um ein Rowhammer-Refreshing durchzuführen. Somit bestimmt die DRAM-Vorrichtung selbst, wie viele Refresh-Zyklen, die von der Speichersteuerung ausgegeben werden, zur Rowhammer-Mitigation verwendet werden.
  • Wenn sich jedoch der Rowhammer-Schwellenwert verringert, muss die Speichervorrichtung mehr Auffrischungen stehlen, als vernünftigerweise durchgeführt werden können, ohne die Datenintegrität in der Vorrichtung zu kompromittieren. Eine Option ist, die Refresh-Rate zu erhöhen. Das Erhöhen der Refresh-Rate würde jedoch eine konstante Anforderung an das Speichersubsystem hinsichtlich Strom und Bandbreite stellen, selbst wenn kein Rowhammer-Refreshing erforderlich ist. Somit wäre eine Änderung der Refresh-Rate aufgrund des Risikos von Over-Refreshing ineffizient, wenn keine Rowhammer-Bedingungen vorliegen.
  • Figurenliste
  • Die folgende Beschreibung beinhaltet die Erörterung von Figuren mit Veranschaulichungen, die als Beispiel einer Implementierung gegeben sind. Die Zeichnungen sind beispielhaft zu verstehen, und nicht als Einschränkung. Wie hierin verwendet, sind Verweise auf ein oder mehrere Beispiele als Beschreibungen eines bestimmten Merkmals, einer bestimmten Struktur oder einer bestimmten Eigenschaft zu verstehen, die in wenigstens einer Implementierung der Erfindung eingeschlossen sind. Formulierungen, wie beispielsweise „in einem Beispiel“ oder „in einem alternativen Beispiel“, die hierin erscheinen, stellen Beispiele von Implementierungen der Erfindung bereit und beziehen sich nicht notwendigerweise alle auf die gleiche Implementierung. Sie schließen sich jedoch auch nicht notwendigerweise gegenseitig aus.
    • 1 ist ein Blockschaltbild einer Ausführungsform eines Systems, das eine Rowhammer-Mitigation mit Hostunterstützung durchführt.
    • 2 ist ein Zeitdiagramm eines Beispiels einer Befehlssequenzierung für überschüssige externe Auffrischungen für einen Rowhammer-Mitigation-Refresh.
    • 3 ist ein Blockschaltbild eines Beispiels eines Speichersubsystems, in dem zusätzliche externe Auffrischungen vom Host implementiert werden können, um eine Rowhammer-Mitigation zu unterstützen.
    • 4 ist ein Blockschaltbild eines Beispiels von mehreren Zählern zum Verfolgen von Informationen zur Rowhammer-Mitigation für verschiedene Speicherabschnitte.
    • 5 ist eine Darstellung eines Beispiels ausgewählter Befehle in einer Befehlswahrheitstabelle eines Systems, das eine hostunterstützte Rowhammer-Mitigation unterstützt.
    • 6 ist ein Flussdiagramm eines Beispiels eines Prozesses zur hostunterstützten Rowhammer-Mitigation.
    • 7 ist ein Blockschaltbild eines Beispiels eines Speichersubsystems, in dem eine hostunterstützte Rowhammer-Mitigation implementiert werden kann.
    • 8 ist ein Blockschaltbild eines Beispiels eines Rechensystems, in dem eine hostunterstützte Rowhammer-Mitigation implementiert werden kann.
    • 9 ist ein Blockschaltbild eines Beispiels einer mobilen Vorrichtung, in der eine hostunterstützte Rowhammer-Mitigation implementiert werden kann.
  • Es folgen Beschreibungen bestimmter Details und Implementierungen, einschließlich nicht einschränkender Beschreibungen der Figuren, die einige oder alle Beispiele darstellen können, sowie anderer potenzieller Implementierungen.
  • DETAILLIERTE BESCHREIBUNG
  • Wie hierin beschrieben, wird eine Rowhammer-Mitigation vom Host unterstützt und von der Speichervorrichtung verwaltet. Eine Speichervorrichtung führt eine interne Rowhammer-Mitigation durch, und die Speichersteuerung oder der Host können die Rowhammer-Mitigation unterstützen, indem sie zusätzliche Refresh-Zyklen oder Refresh-Befehle senden. Das System kann die Notwendigkeit verfolgen, zusätzliche Refresh-Zyklen zu senden, um die Verwendung von Strom und Bandbreite für ein unnötiges Refreshing zu verhindern.
  • Beispielsweise kann die Speichersteuerung die Anzahl der Aktivierungsbefehle verfolgen, die an die Speichervorrichtung gesendet werden, und als Reaktion auf eine Schwellenwertanzahl von Aktivierungsbefehlen sendet die Speichersteuerung den zusätzlichen Refresh-Befehl. Als Reaktion auf einen zusätzlichen Refresh-Befehl kann die Speichervorrichtung einen Refresh für eine Rowhammer-Mitigation anstelle eines Refresh für eine Standarddatenintegrität durchführen. Mit dem zusätzlichen Refresh-Befehl kann die Speichervorrichtung die potenziellen Opferreihen einer potenziellen Angreiferreihe auffrischen, anstatt einfach eine Reihe aufzufrischen, auf die eine Zeit lang nicht zugegriffen wurde. In einer derartigen Implementierung stehen der Speichervorrichtung ausreichend Refresh-Zyklen zur Verfügung, um eine Rowhammer-Mitigation durchzuführen, aber die überschüssigen Zyklen können bei Bedarf immer noch effektiv sein, anstatt einfach die Refresh-Rate zu erhöhen. Die zusätzlichen Refresh-Befehle können als überschüssige Refresh-Befehle bezeichnet werden. In einem Beispiel können die zusätzlichen Refresh-Befehle als Refresh-Management(RFM)-Befehle vom Host ausgegeben werden, um Rowhammer-Probleme zu adressieren.
  • Die Hoststeuerung oder die Speichersteuerung sendet zusätzliche Refresh-Befehle an Speichervorrichtungen, beispielsweise Dynamic-Random-Access-Memory-Vorrichtungen (DRAM-Vorrichtungen, dynamischer Direktzugriffsspeicher), um die zusätzlichen Auffrischungen zu kompensieren, die für eine Rowhammer-Mitigation erforderlich sind. Durch das Bereitstellen zusätzlicher Refresh-Zyklen kann die Speichervorrichtung Zyklen stehlen, ohne die Datenintegrität zu kompromittieren, indem immer noch genügend Refresh-Zyklen für eine standardmäßige Refresh-Operation bereitgestellt werden. In einem Beispiel bestimmt die Speichersteuerung die Anzahl der zu sendenden zusätzlichen Refresh-Befehle durch die Anzahl der Aktivierungsbefehle, die an die Speichervorrichtung gesendet wurden. Es besteht eine hohe Korrelation zwischen der Anzahl der an die Speichervorrichtung gesendeten Aktivierungen und der Anzahl der Auffrischungen, die die Speichervorrichtung stehlen muss, um eine Rowhammer-Mitigation durchzuführen.
  • Eine hostunterstützte Rowhammer-Mitigation, wie sie bereitgestellt wird, kann die Notwendigkeit von TRR-Protokollen (Target Row Refresh, Zielreihen-Refresh) in der Hoststeuerung vermeiden. TRR tritt auf, wenn die Steuerung durch ihre eigene Überwachung oder durch Signalisierung von der Speichervorrichtung auf ein potenzielles Rowhammer-Ereignis aufmerksam wird. Mit TRR kann die Steuerung einen speziellen Refresh-Befehl senden, der die Zielreihe anzeigt, und die Speichervorrichtung frischt die Opferreihe oder Opferreihen auf. Eine hostunterstützte Rowhammer-Mitigation erfordert nicht, dass die Steuerung die Zielreihe für einen TRR-Befehl kennt. Zusätzlich kann eine hostunterstützte Rowhammer-Mitigation einfach die Notwendigkeit einer Rowhammer-Mitigation approximieren, indem die Anzahl der Aktivierungen allgemein beobachtet wird, ohne sich darum zu kümmern, ob eine bestimmte Zielreihe Gegenstand einer Schwellenwertanzahl von Aktivierungen ist.
  • Die hostunterstützte Rowhammer-Mitigation überlässt der Steuerung der Speichervorrichtung die Entscheidung, welche Reihen aufgefrischt werden sollen. Es gibt tendenziell einen beträchtlichen Spielraum bei der internen Refresh-Operation, und Hersteller von Speichervorrichtungen kennen die speziellen Fähigkeiten und Anforderungen ihrer eigenen Vorrichtungen, anstatt nur mit Worst-Case-Szenarien zu arbeiten. Eine derartige Fähigkeit ermöglicht es der Speichervorrichtung, eine Rowhammer-Mitigation und eine Refresh-Steuerung auf eine vorrichtungsspezifische oder herstellerspezifische Weise durchzuführen. So wissen DRAM-Hersteller beispielsweise, wie viele Auffrischungen sie sicher stehlen können, ohne die Datenintegrität zu beeinträchtigen, und können eine für ihre speziellen Vorrichtungen sinnvolle Mitigation durchführen.
  • 1 (WAS 1) ist ein Blockschaltbild einer Ausführungsform eines Systems, das eine Rowhammer-Mitigation mit Hostunterstützung durchführt. Das System 100 schließt eine Speichervorrichtung 120 ein, die mit der Speichersteuerung 110 gekoppelt ist, die auch als Hoststeuerung oder einfach als Steuerung bezeichnet werden könnte. Die Speichervorrichtung 120 kann einen beliebigen Typ von Speichertechnologie einschließen, die benachbarte Reihen von Speicherzellen aufweist, bei denen der Zugriff auf Daten über eine Wortleitung oder ein Äquivalent möglich ist. In einem Beispiel schließt die Speichervorrichtung 120 eine DRAM-Technologie ein. Die Reihen der Speichervorrichtung 120 müssen aufgefrischt werden, um einen deterministischen Zustand aufrechtzuerhalten.
  • Die Speichervorrichtung 120 weist das Speicherarray 130 auf, das ein Array von Speicherzellen oder Speicherungszellen repräsentiert. Eine Speicherzelle speichert ein Datenbit oder mehrere Bits für eine Mehrebenenzelle. Das Speicherarray 130 weist eine Repräsentation potenzieller Rowhammer-Situationen auf. Als Beispiel zeigt das Speicherarray 130 die Bank 140 und die Bank 150. Es versteht sich, dass das Speicherarray 130 mehrere Bänke aufweisen kann. Im Allgemeinen schließt eine Bank oder eine Subbank des Speichers Speicherzellen ein, die separat von Speicherzellen einer anderen Bank oder Subbank adressierbar sind und somit parallel zu einem anderen Abschnitt des Speicherarrays 130 zugänglich sind. Das Speicherarray 130 kann Abschnitte einschließen, die nicht im System 100 veranschaulicht sind.
  • Die Speichervorrichtung 120 schließt einen Spaltendecoder (dec) 132 ein, der Schaltungen zum Anlegen einer Ladung an eine Spalte basierend auf einem Zugriffsbefehl repräsentiert. In einem Beispiel wählen die Schaltungen eine Spalte als Reaktion auf einen Spaltenadressen-Strobe-Befehl (CAS, Column Address Strobe) aus. Die Speichervorrichtung 120 schließt einen Reihendecoder (dec) 134 ein, der Schaltungen zum Anlegen von Auswahlspannungen an Reihen basierend auf einem Speicherzugriffsbefehl repräsentiert. In einem Beispiel wählen die Schaltungen eine Spalte als Reaktion auf einen Reihenadressen-Strobe-Befehl (RAS, Row Address Strobe) aus.
  • Die Speichersteuerung 110 weist eine Befehlslogik 112 zum Generieren von Befehlen für die Speichervorrichtung 120 auf. Befehle können Befehle wie Write-Befehle oder Read-Befehle einschließen. Befehle können auch Aktivierungsbefehle, Precharge-Befehle, Refresh-Befehle oder andere Befehle einschließen. In einem Beispiel schließt die Speichersteuerung 110 eine Refresh-Logik 172 ein, die eine Logik zum Steuern vom Refreshing der Speichervorrichtung 120 repräsentiert. Die Refresh-Logik 172 kann einen oder mehrere Zähler aufweisen, um die Notwendigkeit eines Refresh der Speichervorrichtung 120 zu bestimmen, und einen Platz registrieren, um das Senden von Refresh-Befehlen zu verfolgen. Refresh-Befehle können externe Refresh-Befehle (z. B. REF, REFpb) einschließen, bei denen die Speichervorrichtung gemäß einem Taktsignal von der Speichersteuerung 110 weiterarbeitet. Refresh-Befehle können einen Self-Refresh-Befehl (z. B. SRE) einschließen, bei dem die Speichervorrichtung mit einem internen Takt arbeitet, anstatt basierend auf einem Taktsignal von der Speichersteuerung. Ein externer Refresh weist ein spezielles Fenster zum Abschließen des Befehls auf, und ein Self-Refresh ist ein Zustand, in dem sich die Speichervorrichtung eine unspezifische Zeitdauer lang befinden kann.
  • Die Speichersteuerung 110 schließt den Scheduler 116 zum Verwalten der Planung und Senden von Befehlssequenzen an die Speichervorrichtung 120 ein. Der Scheduler 116 schließt eine Logik zum Bestimmen der Reihenfolge von Befehlen sowie Zeitsteuerungsanforderungen für die Befehle ein. Die Speichersteuerung 110 muss bestimmen, welche Befehle gesendet werden. Sie wird auch die Reihenfolge der Befehle bestimmen, um die Einhaltung der Zeitsteuerungsanforderungen sicherzustellen. Der Scheduler 116 kann es der Speichersteuerung 110 ermöglichen, bestimmte Bestimmungen bezüglich der Befehle und der Zeitsteuerung vorzunehmen. In einem Beispiel bestimmt der Scheduler 116, wie viele externe Refresh-Befehle während eines Refresh-Fensters gesendet werden. Der Scheduler 116 kann einen zusätzlichen Refresh-Befehl generieren, um eine Rowhammer-Mitigation zu ermöglichen.
  • In einem Beispiel schließt die Speichersteuerung 110 die Rowhammer(RH)-Logik 174 ein, um der Steuerung die Bestimmung zu ermöglichen, wann eine Schwellenwertanzahl von Aktivierungsbefehlen oder Aktivierungen an die Speichervorrichtung 120 gesendet wurde. Beispielsweise kann die Rowhammer-Logik 174 einen oder mehrere Zähler oder eine andere Logik einschließen, um potenzielle Rowhammer-Bedingungen zu überwachen. In einem Beispiel schließt die Rowhammer-Logik 174 einen Komparator ein, um zu bestimmen, wann ein Aktivierungszähler eine Schwellenwertanzahl erreicht hat. In einem Beispiel ist die Schwellenwertanzahl programmierbar, beispielsweise durch ein Modusregister oder ein anderes Register oder eine andere Konfiguration, wie beispielsweise im Register 122. Die Speichersteuerung 110 kann die Konfiguration lesen und in einem Register oder einer anderen Vorrichtung intern in der Speichersteuerung 110 (nicht speziell gezeigt) speichern.
  • Die Speichersteuerung 110 schließt die E/A-Hardware (Eingabe/Ausgabe-Hardware) 114 ein. Die E/A 114 repräsentiert Transceiver und Signalleitungsschnittstellenhardware, um es der Speichersteuerung 110 zu ermöglichen, über einen oder mehrere Busse eine Verbindung mit der Speichervorrichtung 120 herzustellen. Die E/A 114 ermöglicht es der Speichersteuerung 110, Befehle an die Speichervorrichtung 120 zu senden. Die Speichersteuerung 110 schließt den Puffer 176 ein, der eine Sequenz von Befehlen puffert, die an die Speichervorrichtungen 120 gesendet werden sollen. In einem Beispiel ist der Puffer 176 Teil des Schedulers 116. Der Scheduler 116 bestimmt die Befehle und die Reihenfolge der zu sendenden Befehle, die dann im Puffer 176 zur Übertragung über die E/A 114 in die Warteschlange gestellt werden können.
  • Zur Veranschaulichung einer Rowhammer-Bedingung schließt das Speicherarray 130 die Zielreihe 142 in der Bank 140 ein. Eine physikalisch nahe gelegene Reihe oder eine physikalisch benachbarte Reihe kann unter einer unbeabsichtigten Programmierung leiden oder einen oder mehrere in der Reihe gespeicherte Werte basierend auf einem wiederholten Zugriff auf die Zielreihe 142 innerhalb eines Zeitraums vor einer Refresh-Operation in der Reihe stören. Die Opferreihe 144 repräsentiert eine Reihe, die einem Rowhammer unterliegt, wenn wiederholt auf die Zielreihe 142 zugegriffen wird. Wenn die Opferreihe 144 dem Risiko eines Rowhammer-Ereignisses ausgesetzt ist, kann die Zielreihe 142 als Angreiferreihe bezeichnet werden. Es kann eine andere Reihe in der Bank 140 geben, die eine Opferreihe zur Zielreihe 142 ist.
  • In einem Beispiel schließt die Bank 140 auch die Zielreihe 146 ein. Es sei zu beachten, dass sich die Zielreihe 146 an oder nahe einer Bankgrenze befindet. Es versteht sich, dass die Reihen im Speicherarray 130 einen Abstand aufweisen können, der nicht unterschiedlich ist, selbst wenn sich die Reihen in unterschiedlichen Bänken befinden. Vielmehr kann die Trennung einer Bank zu einer anderen durch Auswahl oder Decodierung von Hardwareelementen definiert sein. Abhängig von der Architektur des physikalischen Layouts der Reihen könnte somit eine Reihe an der Grenze der Bank 150 auch einem Risiko für ein Rowhammer-Ereignis ausgesetzt sein, basierend auf dem Zugriff auf die Zielreihe 146. In einem Beispiel kann ein wiederholter Zugriff auf eine Zielreihe eine Störung mehrerer benachbarter Reihen verursachen. Wie veranschaulicht, kann die Zielreihe 146 zu Rowhammer-Ereignissen sowohl für die Opferreihe 148 der Bank 140 als auch für die Opferreihe 152 der Bank 150 führen.
  • Die Speichervorrichtung 120 schließt die E/A 126 ein, um mit der E/A 114 der Speichersteuerung 110 eine Schnittstelle zu bilden. Die E/A 126 weist entsprechende Signalleitungen zur E/A 114 auf, um Befehle und Adressinformationen zum Empfangen von Aktivierungs- und Refresh-Befehlen zu empfangen, neben anderen Befehlen. In einem Beispiel schließt die E/A 126 eine Schnittstelle zu einem Datenbus auf, um Daten mit der Speichersteuerung 110 auszutauschen.
  • Die Speichervorrichtung 120 schließt das Register 122 ein, das ein oder mehrere Register oder Speicherungsorte repräsentiert, um Konfigurationsinformationen oder Werte zu speichern, die sich auf den Betrieb der Speichervorrichtung 120 beziehen. In einem Beispiel schließt das Register 122 ein oder mehrere Modusregister ein. In einem Beispiel schließt das Register 122 Konfigurationsinformationen zum Steuern der Anwendung eines Refresh intern in der Speichervorrichtung 120 ein. In einem Beispiel schließt das Register 122 Informationen ein, die sich auf eine Rowhammer-Operation beziehen, wie beispielsweise eine Schwellenwertanzahl von Aktivierungen vor einer Rowhammer-Bedingung.
  • Die Speichervorrichtung 120 schließt die Steuerung 180 ein, die eine für die Speichervorrichtung lokale Steuerung repräsentiert. Die Steuerung 180 schließt eine Hardwarelogik zum Ausführen von Operationen als Reaktion auf Befehle ein. Die Steuerung 180 schließt Software- oder Firmwarelogik zum Steuern der Hardwarelogik und Steuern von Operationen und Sequenzen von Operationen in der Speichervorrichtung ein. In einem Beispiel schließt die Steuerung 180 die Refresh-Logik 160 ein. In einem Beispiel schließt die Steuerung 180 den RH-Zähler 124 ein. Die Steuerung 180 verwaltet die E/A 126.
  • In einem Beispiel schließt die Speichervorrichtung 120 die Refresh-Logik 160 ein, die eine Logik innerhalb der Speichervorrichtung 120 repräsentiert, um ein Refreshing des Speicherarrays 130 zu verwalten. In einem Beispiel schließt die Refresh-Logik 160 den Refresh(ref)-Zähler 162 und die Rowhammer(RH)-Logik 164 ein. Der Refresh-Zähler 162 kann eine Adresse einer aufzufrischenden Reihe anzeigen. Der Refresh-Zähler 162 kann mehrere Zähler repräsentieren, da verschiedene Bänke oder Subbänke unterschiedliche Adressen aufweisen können, die für einen Refresh identifiziert werden. Die Rowhammer-Logik 164 ermöglicht es der Speichervorrichtung 120, eine Rowhammer-Mitigation zu verwalten. Die Rowhammer-Logik 164 kann eine(n) oder mehrere Zähler, Listen oder potenzielle Angreiferreihen oder eine andere Logik zum Durchführen einer Rowhammer-Mitigation einschließen. In einem Beispiel tritt eine Rowhammer-Mitigation auf, indem ein Refresh der potenziellen Opferreihen der letzten Reihenadresse durchgeführt wird, um einen Aktivierungsbefehl zu empfangen. Die an einem derartigen Ansatz beteiligte Heuristik erkennt, dass es beim Hämmern einer Reihe höchstwahrscheinlich die Reihe ist, deren Adresse gerade einen Aktivierungsbefehl empfangen hat, bevor ein Refresh-Befehl zur Verwendung für die Rowhammer-Mitigation empfangen wird. Im Durchschnitt sollte ein derartiger Ansatz potenzielle Opferreihen auffrischen, falls genügend Rowhammer-Mitigationsoperationen durchgeführt werden.
  • In einem Beispiel schließt die Speichervorrichtung 120 einen oder mehrere Rowhammer(RH)-Zähler 124 ein. Der Zähler 124 kann eine Rowhammer-Detektionslogik sein oder einschließen. In einem Beispiel detektiert die Speichervorrichtung 120 potenzielle Rowhammer-Bedingungen und führt Operationen aus, um das mit einem Rowhammer-Ereignis assoziierte Risiko zu mitigieren. In einem Beispiel führt der Zähler 124 eine Zählung durch, die mit einer oder mehreren Reihen assoziiert ist, auf die wiederholt zugegriffen wird. Beispielsweise kann der Zähler 124 eine optionale Adressliste (Address(addr)-Liste) von Reihen mit den höchsten Aktivierungszählungen innerhalb eines Refresh-Fensters führen. Die Zählungen könnten nach einem Refresh zurückgesetzt werden.
  • Es versteht sich, dass es unpraktisch wäre, die Anzahl der Aktivierungen pro Reihe zu verfolgen, da in bestimmten Speichervorrichtungen 1 Million Zähler oder mehr pro Bank erforderlich wären. Speichervorrichtungen verwenden typischerweise Heuristik oder arbeiten basierend auf Wahrscheinlichkeiten, um eine Rowhammer-Mitigation anzuwenden. Anstatt die Aktivierungen für alle Reihen zu verfolgen, könnten nur ausgewählte Reihen verfolgt werden. Wenn ein Zähler eine Schwellenwertanzahl erreicht, kann die Refresh-Logik 160 einen Rowhammer-Refresh durchführen. In einer derartigen Implementierung könnte die niedrigste Anzahl jedes Mal ersetzt werden, wenn eine neue Reihe aktiviert wird. In einem Beispiel behält der Zähler 124 die Liste der Reihen mit der höchsten Anzahl von Aktivierungen und führt eine Rowhammer-Mitigation für die Reihe oder Reihen mit der höchsten Anzahl von Aktivierungen durch, wenn ein externer Refresh-Befehl empfangen wird. Als solche wartet die Refresh-Logik 160 nicht notwendigerweise bis zum Erreichen einer Schwellenwertanzahl, bevor eine Rowhammer-Refresh-Mitigation durchgeführt wird.
  • Eine andere heuristische Technik ist, einer zufällig ausgewählten Reihe, die eine Aktivierung empfangen hat, einen Rowhammer-Refresh zufällig zuzuweisen. Eine derartige Implementierung benötigt möglicherweise nur einen Zähler 124, um die Adresse der kürzlich aktivierten Reihe optional zu speichern. Theoretisch hat eine Reihe, die wiederholt aktiviert wird, eine höhere Wahrscheinlichkeit, für einen Rowhammer-Mitigation-Refresh zufällig ausgewählt zu werden. Daher sind die Reihen, die wiederholt gehämmert oder auf die wiederholt zugegriffen wird, probabilistisch gesehen auch die Reihen, die mit größerer Wahrscheinlichkeit für eine Rowhammer-Mitigation ausgewählt werden. Die Logik- und Schaltungsanforderungen eines derartigen Ansatzes sind einfacher als das, was zum Führen einer Liste von Reihen erforderlich ist, jedoch weniger präzise bei einer Rowhammer-Mitigation.
  • Die Refresh-Logik 160 repräsentiert eine Logik innerhalb der Speichervorrichtung 120, um einen Refresh von Reihen innerhalb des Speicherarrays 130 zu steuern. Die Refresh-Logik 160 reagiert auf externe Refresh-Befehle, die von der Refresh-Logik 172 der Speichersteuerung 110 gesendet werden. Die Refresh-Logik 160 steuert die Refresh-Operation während einer Self-Refresh-Operation der Speichervorrichtung 120. Die Refresh-Logik 160 schließt den Refresh(ref)-Zähler 162 ein, um Reihenadressen für geplante Refresh-Operationen zu verfolgen. Geplante Refresh-Operationen schließen einen Refresh von sequenziellen Reihen ein, um sicherzustellen, dass alle Reihen innerhalb der Refresh-Periode aufgefrischt werden. Die Refresh-Logik 160 der Speichersteuerung 110 ist dafür verantwortlich, sicherzustellen, dass ausreichende Refresh-Operationen für die Speichervorrichtung 120 geplant sind, um Refresh-Anforderungen zu erfüllen.
  • In einem Beispiel plant die Refresh-Logik 172 mehr Refresh-Operationen als nötig in einer Refresh-Periode. Wie beschrieben, kann die Rowhammer-Logik 174 zusätzliche oder überschüssige Auffrischungen für die Refresh-Logik 160 zur Verwendung für eine Rowhammer-Mitigation bereitstellen, basierend auf der Anzahl von Aktivierungen, die an die Speichervorrichtung 120 gesendet werden. Es versteht sich, dass mit zusätzlichen Rowhammer-Mitigation-Auffrischungen, die von der Speichersteuerung 110 bereitgestellt werden, selbst heuristische Ansätze die Wahrscheinlichkeit eines Datenverlusts aufgrund von Rowhammering signifikant reduzieren.
  • In einem Beispiel schließt die Refresh-Logik 160 die Rowhammer-Logik 164 ein, um Refresh-Operationen für eine Rowhammer-Mitigation bereitzustellen. Eine Rowhammer-Mitigation bezieht sich auf das Refreshing potenzieller Opferreihen, um eine Reihenstörung zu vermeiden. Im Betrieb kann der Zähler 124 eine Zielreihe der Rowhammer-Logik 164 anzeigen, was ein „Refresh-Stehlen“ durch die Refresh-Logik 160 auslösen kann. Refresh-Stehlen bezieht sich darauf, dass die Refresh-Logik 160 einen Refresh von Opferreihen durchführt, die mit der angezeigten Zielreihe assoziiert sind, anstatt einen Refresh einer Reihe durchzuführen, die im Refresh-Zähler 162 angezeigt ist. Somit sind Rowhammer-Mitigation-Refresh-Operationen in Bezug auf den Refresh-Reihenzeiger oder -zähler außerhalb der Reihenfolge. Eine Rowhammer-Mitigation kann das Stehlen aller Auffrischungen einer gesamten Refresh-Operation oder eines Refresh-Zyklus oder einfach eines oder mehrerer Auffrischungen einer Refresh-Operation einschließen. Bei einem Befehl, der entweder getaggt oder als Rowhammer-Refresh angezeigt ist (nachstehend detaillierter beschrieben), oder wenn die Refresh-Logik 160 bestimmt, dass ein Refresh-Befehl zeitlich mit dem Erreichen eines Aktivierungsschwellenwerts übereinstimmt, kann die Logik bestimmen, dass es sicher ist, alle Zyklen zur Rowhammer-Mitigation zu verwenden.
  • Als Reaktion auf einen externen Refresh-Befehl führt die Speichervorrichtung 120 typischerweise einen Refresh mehrerer Reihen durch. Die Refresh-Operation bezieht sich auf den Refresh aller Reihen, die als Reaktion auf einen einzelnen Refresh-Befehl aufgefrischt werden sollen. Die Refresh-Operation weist eine Zeit tRFC (Reihen-Refresh-Zykluszeit) auf, und es wird ein durchschnittliches Refresh-Intervall von tREFI (Refresh-Intervallzeit) zwischen Refresh-Operationen in der Refresh-Periode oder dem Refresh-Fenster geben. Die Refresh-Periode bezieht sich auf eine Zeit zwischen Auffrischungen einer beliebigen gegebenen Reihe, um einen Datenverlust in der Reihe zu vermeiden. Ein Refresh kann sich auf den Refresh einer einzelnen Reihe aller Reihen beziehen, die als Reaktion auf den Refresh-Befehl aufgefrischt werden sollen, und weist eine Zeit von weniger als tRFC auf, da eine einzelne Refresh-Operation mehrere Auffrischungen einschließt.
  • Es versteht sich, dass es mehrere Zielreihen in derselben Bank geben kann, wie es beispielsweise in der Bank 140 veranschaulicht ist. Wenn die kritische Rowhammer-Anzahl abnimmt, da die Anzahl von Aktivierungen, die erforderlich sind, um eine Reihenstörung zu verursachen, weiter abnimmt, wird die Anzahl von potenziellen Angreiferreihen zunehmen. Somit nimmt die Anzahl der pro Refresh-Periode erforderlichen Rowhammer-Mitigation-Operationen weiter zu. Um mehr Rowhammer-Mitigation-Operationen zuzulassen, sendet die Speichersteuerung 110 mehr externe Refresh-Befehle, basierend speziell auf der Bestimmung, wie viele Aktivierungsbefehle gesendet wurden. Ein Refresh (ob extern oder intern) ist das einzige Mal, dass die Speichersteuerung und die Speichervorrichtung sicherstellen können, dass kein Zugriff auf eine Reihe erfolgt. Es versteht sich, dass verschiedene Bänke zu verschiedenen Zeiten aufgefrischt werden können und somit für den Zugriff zu verschiedenen Zeiten nicht verfügbar sind. Auf Bänke, die nicht aufgefrischt werden, kann zugegriffen werden, und somit verwaltet der Scheduler 116 die Planung von Auffrischungen verschiedener Bänke.
  • Die Rowhammer-Logik 174 der Speichersteuerung 110 kann die Anzahl der Aktivierungsbefehle verfolgen, die an die Speichervorrichtung 120 gesendet werden, um das Senden zusätzlicher Refresh-Befehle auszulösen. Ein derartiger Mechanismus ist viel einfacher, als wenn die Speichervorrichtung 120 die Notwendigkeit zusätzlicher Auffrischungen verfolgt und versucht, der Speichersteuerung zu signalisieren. Wenn die Rowhammer-Logik 174 die Schwellenwerte zum Senden überschüssiger Auffrischungen verfolgt, kann die Operation basierend auf konfigurierbaren Parametern, wie beispielsweise dem Aktivierungsschwellenwert, durchgeführt werden. Ein derartiger Ansatz ermöglicht die Konfigurierbarkeit für verschiedene Betriebsbedingungen, für verschiedene Vorrichtungen oder Hersteller oder andere Variablen, die die Notwendigkeit einer zusätzlichen Rowhammer-Mitigation beeinflussen können.
  • Die Operation der Rowhammer-Logik 174 kann für verschiedene Implementierungen variieren. In einem Beispiel sendet die Rowhammer-Logik 174 jedes Mal, wenn ein programmierbarer Schwellenwert erreicht wurde, einen zusätzlichen Refresh-Befehl, unabhängig vom Zeitfenster. In einem Beispiel sendet die Rowhammer-Logik 174 nur dann einen zusätzlichen Refresh, wenn die Anzahl innerhalb eines bestimmten Zeitsegments erreicht wurde. Beispielsweise kann die Anzahl für jede normale Refresh-Periode zurückgesetzt werden, und die Anzahl löst nur dann einen zusätzlichen externen Refresh aus, falls der Schwellenwert innerhalb des Refresh-Fensters erreicht wird.
  • In einem Beispiel ist der Zeitraum, der für das Senden des zusätzlichen Refresh-Befehls von Interesse ist, ein Schiebefenster. Ein Schiebefenster kann beispielsweise unter Verwendung eines Leaky-Bucket-Ansatzes eingerichtet werden. Bei einem Leaky-Bucket-Ansatz kann die Rowhammer-Logik 174 eine Zählung als Reaktion auf jeden Aktivierungsbefehl dekrementieren (oder abhängig vom Ansatz inkrementieren). Bei einem Dekrementierungsansatz kann das Erreichen von Null bei der Zählung das Senden eines zusätzlichen Refresh auslösen. In einem Beispiel wird die Rowhammer-Logik 174 auf einer Zeitbasis dekrementiert, um eine nominale Aktivierungsrate pro µs (Mikrosekunde) zu erhalten, die keine zusätzlichen Refresh-Zyklen verursacht. Bei einem derartigen Ansatz bewirkt nur die Detektion von Zyklen über der nominalen Rate, dass die Rowhammer-Logik 174 zusätzliche Auffrischungen sendet. Ein derartiger Ansatz kann auf einer Annahme basieren, dass nur eine Rate von Aktivierungen über einen spezifischen Zeitraum ein Rowhammer-Ereignis auslöst und nicht nur die Gesamtzahl von Aktivierungen.
  • Bei einem Counter-up-Ansatz kann der Refresh bei einer Sub-Refresh-Periode erfolgen, die beispielsweise 1/4 oder 1/2 der normalen Refresh-Zeit betragen kann. Somit kann jede Rowhammer-Logik 174 mit fester Periode das Senden eines zusätzlichen Refresh-Befehls auslösen. Wenn man ein Beispiel von 100.000 betrachtet, die eine Reihenstörung verursachen, kann die Rowhammer-Logik 174 das Senden eines zusätzlichen Refresh-Befehls nach 80k Aktivierungen oder 60k Aktivierungen oder einer anderen programmierbaren Anzahl, die niedriger als der Reihenstörungswert ist, auslösen.
  • Die Zeitsteuerung des Sendens zusätzlicher Auffrischungen kann auf verschiedene Weisen angepasst werden. In einem Beispiel wird die Häufigkeit zusätzlicher Auffrischungen durch Programmierbarkeit oder Konfiguration angepasst. In einem Beispiel hängt die Häufigkeit zusätzlicher Auffrischungen von der Art und Weise ab, in der die Überwachung zusätzlicher Auffrischungen durchgeführt wird. Die Häufigkeit kann durch eine Kombination von Überwachungsverfahren sowie Programmierbarkeit angepasst werden. Wie oben beschrieben, hängt das Überwachungsverfahren davon ab, ob ein zusätzliches Refresh als Reaktion auf die Detektion einer Schwellenwertanzahl von Aktivierungen unabhängig vom Zeitfenster oder einer Anzahl von Aktivierungen innerhalb eines festen Zeitfensters oder einer Anzahl von Aktivierungen innerhalb eines Schiebefensters gesendet wird. In einem Beispiel ist die Zeitperiode programmierbar und nicht auf die Refresh-Periode festgelegt. In einem Beispiel ist das Schiebefenster programmierbar. In einem Beispiel eines Leaky-Bucket-Ansatzes ist die Rate, mit der sich der Leaky-Bucket füllt, programmierbar.
  • Die Granularität der Verfolgung einer Rowhammer-Mitigation kann von der Implementierung abhängen. Die Granularität der Verfolgung wird nachstehend detaillierter beschrieben. Im Allgemeinen hängt die Granularität von der Stufe ab, auf der eine Überwachung durchgeführt wird. In einem Beispiel wird die Überwachung auf der Vorrichtungsstufe durchgeführt. In einem Beispiel wird die Überwachung auf der Kanalstufe durchgeführt. In einem Beispiel wird die Überwachung beim Rank durchgeführt. In einem Beispiel wird die Überwachung bei der Bankgruppe durchgeführt. In einem Beispiel wird die Überwachung bei der Bank durchgeführt.
  • 2 ist ein Zeitdiagramm eines Beispiels einer Befehlssequenzierung für überschüssige externe Auffrischungen für einen Rowhammer-Mitigation-Refresh. Das Diagramm 200 repräsentiert ein Zeitdiagramm für das Refreshing mit Rowhammer-Mitigation. Das Diagramm 200 repräsentiert mehrere Zwischenverbindungen zwischen einem Host oder einer Speichersteuerung und assoziierten Speichervorrichtungen sowie bestimmte interne Funktionen innerhalb der Speichervorrichtung. Die Zwischenverbindung wird mittels einer oder mehrerer Signalleitungen bereitgestellt.
  • CLK 210 repräsentiert einen Takt für das System, und sowohl der Takt (CK_t) als auch das Komplement (CK_c) sind veranschaulicht. Im Beispiel des Diagramms 200 ist der Takt das Signal mit durchgezogener Linie mit den Pfeilen, um eine ansteigende Flanke anzuzeigen. Das Komplement ist als gestrichelte Linie veranschaulicht. CA 212 repräsentiert ein Befehls/Adressen(C/A, Command/Address)-Signal, das auf C/A-Signalleitungen gesendet wird, und zeigt eine Befehlscodierung an, wie sie vom Host bereitgestellt wird. CMD 216 repräsentiert eine Decodierung der Befehlscodierung und kann somit ein Signal intern zur Speichervorrichtung für Operationen repräsentieren, die generiert werden, um den Befehl auszuführen. RH CTR 214 repräsentiert einen Rowhammer-Zähler für die Speichersteuerung. Der Refresh 218 repräsentiert die Refresh-Operation innerhalb der Speichervorrichtung.
  • CA 212 veranschaulicht einen REF-Befehl bei 220. Der Refresh-Befehl repräsentiert einen standardmäßigen externen Refresh-Befehl von der Speichersteuerung. Bei 222 interpretiert die Speichervorrichtung den Befehl als externen (EXT-) Refresh-Befehl bei CMD 216 und generiert bei 224 interne Operationen, um den Refresh zu implementieren. Der Refresh 218 veranschaulicht eine Sequenz von Refresh-Befehlen, die REF von CTR0, gefolgt von CTR1 und so weiter einschließen können, bis die Reihen entsprechend dem externen Refresh-Befehl aufgefrischt sind. CTR0 und CTR1 repräsentieren einen Wert, der anzeigt, welche Reihe aufgefrischt werden soll, was ein Zähler oder Zeiger sein kann, um interne Refresh-Operationen zu verfolgen. In einem Beispiel, das nicht speziell veranschaulicht ist, stiehlt die Speichervorrichtung einen oder mehrere Refresh-Zyklen, um ein Rowhammer-Mitigation-Refreshing durchzuführen.
  • Die gestrichelte Linie 226 repräsentiert eine zeitliche Unterbrechung. CA 212 veranschaulicht einen ACT-Befehl bei 228. In einem Beispiel folgt auf den ACT-Befehl der Rowhammer-Zähler 214, der eine Rowhammer-Inkrementierung (RH INCR) bei 230 durchführt. Die Inkrementierung repräsentiert die Verfolgung des Aktivierungsbefehls durch die Speichersteuerung, obwohl es sich versteht, dass die Inkrementierung alternativ eine Dekrementierung sein könnte, abhängig von der Implementierung der Verfolgung der Rowhammer-Mitigation. Dem Aktivierungsbefehl folgen bei CMD 216 auch eine oder mehrere interne Operationen, um den Aktivierungsbefehl bei 232 auszuführen. In einem Beispiel verfolgt die Speichervorrichtung auch die Rowhammer-Implikationen des Aktivierungsbefehls beim Refresh 218 bei 234. Es versteht sich, dass die Rowhammer-Verfolgung zusätzlich zur Ausführung des Aktivierungsbefehls bei der Reihe erfolgt, die durch eine dem Aktivierungsbefehl beigefügte Adresse angezeigt wird. In einem System, das mehrere Zähler zur Rowhammer-Mitigation verfolgt, kann die Rowhammer-Verfolgung das Aktualisieren von Zählerinformationen einschließen.
  • Die gestrichelte Linie 236 repräsentiert eine zeitliche Unterbrechung. CA 212 veranschaulicht einen nachfolgenden ACT-Befehl bei 238. Es wird beobachtet, dass der nachfolgende Aktivierungsbefehl die gleichen Operationen auslösen kann, wie sie durch RH INCR beim Rowhammer-Zähler 214 bei 240, ACT bei CMD 216 bei 242 und RH-Verfolgung beim Refresh 218 bei 244 veranschaulicht sind. Aus diesem Abschnitt ist ersichtlich, dass, wenn die Aktivierungsbefehle empfangen werden, die Speichersteuerung sie verfolgen kann, aber möglicherweise keine Rowhammer-Mitigation auslösen kann, es sei denn, ein Schwellenwert wurde erreicht.
  • Die gestrichelte Linie 246 repräsentiert eine zeitliche Unterbrechung. Nach der zeitlichen Unterbrechung wird, was auch immer bei CA 212 geschehen mag, in einem Beispiel ein Zeitschwellenwert in einem System erreicht, das einen Leaky-Bucket-Ansatz zur Rowhammer-Detektion durchführt. Als Reaktion auf die erreichte Zeit führt die Speichersteuerung in einem Beispiel eine Rowhammer-Dekrementierung (RH DECR) beim Rowhammer-Zähler 214 bei 248 durch.
  • Die gestrichelte Linie 250 repräsentiert eine zeitliche Unterbrechung. CA 212 veranschaulicht einen nachfolgenden ACT-Befehl bei 252. Es wird beobachtet, dass der nachfolgende Aktivierungsbefehl den Schwellenwert für eine Rowhammer-Mitigation auslöst. Wenn somit RH INCR beim Rowhammer-Zähler 254 bei 254 auftritt, bestimmt die Speichersteuerung, einen zusätzlichen Refresh-Befehl auszulösen. Als Reaktion auf ACT bei CA 212 decodiert die Speichervorrichtung die Aktivierungsoperationen, wie bei CMD 216 bei 256 veranschaulicht, und die RH-Verfolgung beim Refresh 218 bei 258 führt eine interne Rowhammer-Verfolgung durch. Als Reaktion auf den Schwellenwert-Aktivierungsbefehl sendet die Speichersteuerung irgendwann nach dem Aktivierungsbefehl bei CA 212 einen Rowhammer-Refresh-Befehl (RH REF) bei 260. Obgleich er neben dem ACT-Befehl veranschaulicht ist, der die Rowhammer-Bedingung ausgelöst hat, kann der Refresh-Befehl direkt neben dem ACT-Befehl gesendet werden oder nicht. In einem Beispiel wird der REF-Befehl neben dem ACT-Befehl gesendet, beispielsweise durch Logik in der Speichersteuerung, die die Bedingung detektiert, den REF-Befehl plant und ihn zum Senden an die Speichervorrichtung puffert.
  • Im Fall, dass der Aktivierungsbefehl eine Rowhammer-Mitigation auslöst, veranschaulicht CMD 216 eine Auswahl einer Rowhammer-Mitigation (RH MIT) durch die Speichervorrichtung bei 262. Eine Auswahl der Rowhammer-Mitigation kann die Speichervorrichtung einschließen, wobei Opferreihen für einen Refresh ausgewählt werden. Als Reaktion auf die Auswahl der Opferreihe oder -reihen kann die Speichervorrichtung einen durch RH REF repräsentierten Rowhammer-Mitigation-Refresh beim Refresh 218 bei 264 durchführen. Ein Refresh ist das einzige Mal, wenn der Speichervorrichtung sichergestellt wird, dass der Host nicht versucht, auf die Speichervorrichtung zuzugreifen, was der Speichervorrichtung erlaubt, ein Refresh des Rowhammer-Opfers anstelle gemäß einem Refresh-Zähler durchzuführen. Somit stellt ein während eines Refresh-Zyklus durchgeführter Rowhammer-Mitigation-Refresh Operationen bereit, die garantiert frei von anderen Operationen durch die Speichervorrichtung oder versuchtem Zugriff durch die Speichersteuerung sind.
  • 3 ist ein Blockschaltbild eines Beispiels eines Speichersubsystems, in dem zusätzliche externe Auffrischungen vom Host implementiert werden können, um eine Rowhammer-Mitigation zu unterstützen. Das System 300 repräsentiert Elemente eines Rechensystems. Das System 300 stellt ein Beispiel eines Systems bereit, das das System 100 einschließen kann. Das System 300 kann als ein Speichersubsystem mit Speichersteuerung 320 und Speicher 330 aufweisend betrachtet werden. Der Host 310 repräsentiert die Hardwareplattform, die das Speichersubsystem steuert. Der Host 310 schließt einen oder mehrere Prozessoren 312 (z. B. eine zentrale Verarbeitungseinheit (CPU, Central Processing Unit) oder eine Grafikverarbeitungseinheit (GPU, Graphics Processing Unit)) ein, die Anforderungen für im Speicher 330 gespeicherte Daten generieren.
  • Der Host 310 schließt eine Speichersteuerung 320 ein, die in eine Prozessorvorrichtung integriert werden kann. Die Speichersteuerung 320 schließt die E/A (Eingabe/Ausgabe) 326 zum Verbinden mit dem Speicher 330 ein. Die E/A schließt Verbinder, Signalleitungen, Treiber und andere Hardware zur Zwischenverbindung der Speichervorrichtungen mit dem Host 310 ein. Die E/A 326 kann eine Befehls-E/A, wie sie durch den Befehls(CMD, Command)-Bus 314 repräsentiert wird, und Daten-E/A, wie sie durch einen DQ-(Daten-) Bus (nicht speziell veranschaulicht) repräsentiert wird, einschließen. Der CMD-Bus 314 schließt Befehlssignalleitungen ein, die es der Speichersteuerung 320 ermöglichen, Befehle an den Speicher 330 zu senden, einschließlich Aktivierungsbefehlen (ACT) und Refresh-Befehlen (REF).
  • Die Speichersteuerung 320 schließt die Befehls(CMD, Command)-Logik 322 zum Generieren von Befehlen für den Speicher als Reaktion auf Operationen des Prozessors 312 ein. Die Befehle können Befehle für einen Datenzugriff (wie beispielsweise Read, Write, Refresh oder andere Befehle) oder Befehle für die Konfiguration (wie beispielsweise Modusregisterbefehle) sein. Die Speichersteuerung 320 schließt den Scheduler 324 ein, um zu planen, wann Befehle in einer Sequenz von Operationen gesendet werden. Der Scheduler 324 kann die Zeitsteuerung für die E/A gemäß einer bekannten Zeitsteuerung steuern, um die Wahrscheinlichkeit zu verbessern, dass die E/A fehlerfrei ist. Die Zeitsteuerung wird durch Training festgelegt.
  • Der Speicher 330 kann einzelne Speichervorrichtungen aufweisen oder ein Speichermodul repräsentieren. Das System 300 veranschaulicht zwei Ranks von Speichervorrichtungen im Speicher 330, Rank[0] und Rank[1]. Ein Rank bezieht sich auf eine Sammlung oder Gruppe von Speichervorrichtungen, die eine ausgewählte Leitung (z. B. eine CS-Signalleitung) gemeinsam nutzen. Somit führen Speichervorrichtungen in einem Rank Operationen parallel aus. Rank[0] und Rank[1] sind so veranschaulicht, dass sie N-DRAM-Vorrichtungen oder DRAMs einschließen. Typischerweise weist ein System mit mehreren Ranks die gleiche Anzahl von DRAMs in jedem der Ranks auf.
  • Es wird gezeigt, dass DRAM[0] von Rank[0] und DRAM[0] von Rank[1] die E/A 332, die Steuerung (CTRL, Control) 336 und die Register (REG) 334 einschließen. Es versteht sich, dass derartige Komponenten auch in den anderen DRAMs eingeschlossen sind. Die E/A 332 repräsentiert eine Verbindungshardware, die mit der E/A 326 der Speichersteuerung 320 vergleichbar ist. Die E/A 332 ermöglicht eine Verbindung von DRAMs mit der Speichersteuerung 320. Das Register 334 repräsentiert ein oder mehrere Register innerhalb des DRAM, die ein oder mehrere Konfigurationsregister, wie beispielsweise Modusregister, einschließen. Das Register 334 kann Konfigurationsinformationen und Informationen speichern, die einen Betriebsmodus durch den DRAM als Reaktion auf Signale auf Befehls- und Datensignalleitungen bestimmen. In einem Beispiel schließen die DRAMs ein Register 334 ein, um einen programmierbaren Wert zu speichern, um einen Rowhammer-Mitigation-Schwellenwert anzuzeigen.
  • Die Steuerlogik 336 repräsentiert Steuerkomponenten innerhalb des DRAM, um die Befehle und Zugriffsoperationen zu decodieren und auszuführen. Die Steuerung 336 bewirkt, dass der DRAM die internen Operationen durchführt, die erforderlich sind, um den von der Speichersteuerung 320 initiierten Zugriff auszuführen. In einem Beispiel schließen die DRAMs die Rowhammer(RH)-Logik 338 ein, die eine Rowhammer-Logik gemäß dem, was hierin beschrieben ist, repräsentiert. In einem Beispiel ist die Rowhammer-Logik 338 Teil der Steuerlogik 336. Die Rowhammer-Logik 338 ermöglicht es den DRAMs, zu bestimmen, wie ein Refresh durchgeführt werden soll, um eine Rowhammer-Mitigation zu verwalten. Beispielsweise kann die Rowhammer-Logik 338 das Refresh-Zyklus-Stehlen steuern, um eine Rowhammer-Mitigation durchzuführen.
  • In einem Beispiel schließt die Speichersteuerung 320 einen oder mehrere Rowhammer-Zähler (RH CTR) 328 ein, um eine Bedingung für eine Rowhammer-Mitigation zu überwachen. In einem Beispiel detektieren die Zähler 328 eine Anzahl von Aktivierungsbefehlen, die an den Speicher 330 gesendet werden. Das Verfolgen der Befehle, die zum Senden an den Speicher 330 geplant sind, kann ein guter Indikator dafür sein, wann zusätzliche Auffrischungen für eine Rowhammer-Mitigation erforderlich sein können.
  • In einem Beispiel schließt die Speichersteuerung 320 eine Anzahl von Zählern 328 ein, die ausreichen, um das im System 300 gewünschte Maß an Verfolgungsgranularität bereitzustellen. Die höchste Granularität ist der Kanal. Das System 300 veranschaulicht keinen zweiten Kanal spezifisch. Ein Kanal bezieht sich auf alle Speichervorrichtungen, die mit demselben Befehlsbus verbunden sind. Der Befehlsbus 314 ist mit allen veranschaulichten DRAM-Vorrichtungen verbunden und wird daher als ein einzelner Kanal angenommen.
  • Die DRAM-Vorrichtungen werden als mehrere Bänke (Bank[0:7]) aufweisend veranschaulicht. Es versteht sich, dass acht Bänke ein Beispiel sind und nicht einschränkend sind. Andere Systeme können 4 Bänke, 16 Bänke, 32 Bänke oder eine andere Anzahl von Bänken einschließen. Eine binäre Anzahl von Bänken ist aus der Perspektive der Adressierung einfacher, aber für Betriebszwecke nicht erforderlich, und es könnte eine beliebige Anzahl von Bänken verwendet werden. Die Bänke 340 können als separate Bänke genutzt werden, die separat nach Banknummer adressierbar sind. In einem Beispiel sind die Bänke 340 in einer Bankgruppe organisiert, wie beispielsweise Bank[0:3] als BG0 (Bankgruppe 0) und Bank[4:7] als BG1. Die Bankgruppen könnten alternativ beispielsweise BG0 mit Bank[0,2,4,6] oder eine andere Gruppierung sein. Auf Bankgruppen kann typischerweise separat zugegriffen werden, und sie können kürzere Zugriffszeiten ermöglichen als beispielsweise Back-to-Back-Zugriffe auf Bänke derselben Bankgruppe.
  • Eine niedrigere Granularitätsstufe kann die Rank-Stufe sein, wobei jeder Rank separat verfolgt werden kann. Ein zusätzlicher Refresh-Befehl würde nur an den Rank gesendet werden, bei dem detektiert wurde, dass er eine Schwellenwertanzahl von Aktivierungsbefehlen aufweist. Eine andere Granularitätsstufe kann eine Package- oder Die-Basis für einen Speichervorrichtungs-Die oder ein Speichervorrichtungs-Package sein. Eine derartige Stufe kann ein Gleichgewicht für das System 300 bereitstellen, da die Verfolgung durch die Speichersteuerung 320 mit der Verfolgung übereinstimmen würde, die von den DRAM-Vorrichtungen durchgeführt wird. Wie zuvor können die zusätzlichen Auffrischungen darauf beschränkt sein, bei Bedarf gesendet zu werden, und nur zu der/den Vorrichtung(en), bei der/denen detektiert wurde, dass sie die zusätzlichen Auffrischungen benötigt/benötigen.
  • Eine niedrigere Granularitätsstufe (feinere Granularität) kann auf der Granularität der Refresh-Befehle der speziellen DRAM-Technologie des Speichers 330 basieren. Beispielsweise können verschiedene DRAM-Technologien einen Refresh basierend auf einem Banksatz, einer Bankgruppe oder auf einer Pro-Bank-Basis durchführen. Eine Bank bezieht sich auf eine Gruppe von Reihen, die zusammen mit Reihen- und Spaltendecodern adressiert werden. Eine Bankgruppe bezieht sich auf eine Gruppe von Bänken, auf die zusammen basierend auf einem Bankgruppendecoder basierend auf einer Bankgruppenadresse zugegriffen werden kann. Ein Banksatz kann sich auf die Identifizierung von Bänken über Bankgruppen hinweg beziehen, die eine gemeinsame Bankadresse in der Bankgruppe aufweisen.
  • Der Vorteil einer feineren Granularität ist, dass die zusätzlichen Refresh-Befehle nur an den betroffenen Bereich gesendet würden, nicht an den gesamten Chip oder Kanal. Der Nachteil einer feineren Granularität ist eine zusätzliche Verfolgungslogik in der Speichersteuerung 320, wie beispielsweise die Zähler 328. Unabhängig davon, welche Granularitätsstufe verwendet wird, werden die zusätzlichen Refresh-Befehle nur an das spezielle Segment gesendet, für das der Aktivierungsschwellenwert detektiert wird.
  • In der gegenwärtigen Implementierung von DRAM-Vorrichtungen, die einen Refresh pro Bank oder einen Banksatz-Refresh erlauben, sind zusätzliche Auffrischungen einer bestimmten Bank oder eines bestimmten Banksatzes normalerweise nicht zulässig, da es einen gemeinsamen Reihenzähler gibt. Eine Implementierung der beschriebenen Rowhammer-Mitigation kann eine Ausnahme von der typischen Regel erfordern, wobei der DRAM einen zusätzlichen Refresh eines bestimmten Banksatzes oder einer bestimmten Bank detektieren und zur Rowhammer-Mitigation verwenden könnte.
  • 4 ist ein Blockschaltbild eines Beispiels von mehreren Zählern zum Verfolgen von Informationen zur Rowhammer-Mitigation für verschiedene Speicherabschnitte. Das System 400 repräsentiert Elemente einer Speichersteuerung gemäß einem beliebigen Beispiel hierin. Das System 400 schließt einen Scheduler 430 zum Planen und Senden von Befehlen an eine Speichervorrichtung ein.
  • In einem Beispiel schließt das System 400 mehrere Rowhammer-Zähler 410 ein. Das System 400 veranschaulicht N Zähler, wobei N ein Wert ist, der eine Anzahl von Elementen repräsentiert, die für Rowhammer-Bedingungen verfolgt werden sollen. Falls beispielsweise die Überwachungsstufe für eine Rowhammer-Mitigation auf der Stufe des Speichervorrichtungs-Dies erfolgt, kann N gleich der Anzahl der mit der Speichersteuerung verbundenen Vorrichtungs-Dies sein.
  • In einem Beispiel schließt das System 400 die Rowhammer-Decodierung 420 ein, die aus den Zählern 410 bestimmen kann, welchem Abschnitt des Speichers ein zusätzlicher Refresh-Befehl gesendet wird. Die Rowhammer-Decodierung 420 kann sicherstellen, dass der Scheduler 430 einen zusätzlichen Refresh für einen Zähler plant, der eine potenzielle Rowhammer-Bedingung anzeigt. Es versteht sich, dass je feiner die Granularität ist, die verfolgt wird, desto mehr Zähler 410 die Speichersteuerung benötigen wird, um Rowhammer-Mitigation-Bedingungen zu identifizieren.
  • 5 ist eine Darstellung eines Beispiels ausgewählter Befehle in einer Befehlswahrheitstabelle eines Systems, das eine hostunterstützte Rowhammer-Mitigation unterstützt. Die Befehlstabelle 700 veranschaulicht ein Beispiel einer Befehlscodierung für eine Speichervorrichtung, die einen Rowhammer-Mitigation-Refresh gemäß einer beliebigen Beschreibung hierin durchführt.
  • Für die Befehlstabelle 500 können die Befehlsbussignale CS für die Chipauswahl (Chip Select) und mehrere CA(Command/Address)-Signale (Befehls-/Adresssignale) einschließen, die als CA[0:13] identifiziert sind. Die Anzahl der CA-Signalleitungen kann mehr oder weniger als das sein, was dargestellt ist. Die Legende für die Signalleitungswerte kann wie folgt sein: BG = Bankgruppenadresse; BA = Bankadresse; R = Reihenadresse; C = Spaltenadresse; BC8 = Burst-Chop 8; MRA = Modusregisteradresse; OP = Opcode; CID = Chipidentifikator; CW = Steuerwort; H = logisch hoch; L = logisch niedrig; X = Egal oder es spielt keine Rolle, welchen Zustand das Signal aufweist, und das Signal kann schwebend sein; und V = gültig, was einen beliebigen gültigen Signalzustand bedeutet oder, genauer gesagt, entweder hoch oder niedrig.
  • ACT repräsentiert einen Aktivierungsbefehl, der beim Speicherarrayzugriff verwendet werden kann. Wie oben angezeigt, kann eine Anzahl von Aktivierungen, die gleich oder über einem Schwellenwert liegen, zu einem Rowhammer-Ereignis führen. In einem Beispiel zählt eine Speichersteuerung die Anzahl von Aktivierungen und sendet einen zusätzlichen Refresh-Befehl, um zusätzliche Refresh-Zyklen für die Speichervorrichtung bereitzustellen, um eine Rowhammer-Mitigation durchführen zu können.
  • Die Befehlstabelle 500 schließt einen Refresh-All-Befehl REF ein, um alle Reihen aufzufrischen. Der REF-Befehl bewirkt, dass die Speichervorrichtung Reihen gemäß einer in einem Refresh-Zähler angezeigten Reihenadresse auffrischt. In einem Beispiel kann die Speichervorrichtung gemäß dem, was oben beschrieben wird, Reihen außerhalb der Reihenfolge vom Refresh-Zähler auffrischen, um einen Refresh der Opferreihen durchzuführen, bei denen das Risiko eines Datenverlusts aufgrund eines Rowhammer-Ereignisses besteht. Die Speichervorrichtung führt eine Randomisierung der ausgewählten Reihe durch.
  • In einem Beispiel schließt die Befehlstabelle 500 einen Refresh-Same-Bank-Befehl REFsb zum Refreshing der gleichen Bank in verschiedenen Gruppen ein. In einem Beispiel kann die Speichervorrichtung einen Rowhammer-Mitigation-Refresh als gestohlene Refresh-Zyklen entweder von REF- oder REFsb-Befehlen durchführen. In einem Beispiel schließt die Befehlstabelle 500 einen Self-Refresh-Entry-Befehl SRE ein, um zu bewirken, dass eine Speichervorrichtung in einen Low-Power-Zustand übergeht und einen Self-Refresh durchführt. Es versteht sich, dass SRE ein von REF oder REFsb separater Befehlstyp ist. Die REF- und REFsb-Befehle können als externe Refresh-Befehle bezeichnet werden.
  • In einem Beispiel werden ein oder mehrere Refresh-Befehle von der Speichersteuerung getaggt, um sie als einen zusätzlichen Refresh- oder einen Rowhammer-Refresh-Befehl zu markieren. Die Speichervorrichtung kann das Bit detektieren und daraus bestimmen, dass der Refresh-Befehl zur Rowhammer-Mitigation beabsichtigt ist. In einem Beispiel kann der Refresh-Befehl mit einem Header oder einem anderen Bit erweitert werden, um die Rowhammer-Mitigation anzuzeigen. Es wird beobachtet, dass es für die Befehlstabelle 500 die Bits CA8 und CA9 gibt, die nur ein gültiges Signal erfordern, um der Befehlscodierung zu entsprechen, wie durch den Bereich 510 designiert. Als solche könnten diese Bits beispielsweise als Tags verwendet werden, wobei die Speichersteuerung den Wert eines der Bits festlegt, um einen Rowhammer-Mitigation-Refresh anzuzeigen, und die Speichervorrichtung den Logikwert des Bits detektiert, um zu bestimmen, ob es sich um einen standardmäßigen Refresh-Befehl oder einen Rowhammer-Refresh-Befehl handelt. In einem Beispiel kann ein Befehl, der so modifiziert ist, dass Informationen in einem Bit zulässig sind, aber nicht unter einer Speichervorrichtungsspezifikation geregelt (wie beispielsweise CA8 und CA9 unter Double-Data-Rate(DDR)-Standards), als ein Refresh-Managementbefehl betrachtet werden.
  • Es versteht sich, dass das veranschaulichte Tagging nur ein mögliches Beispiel ist. Es gibt andere Möglichkeiten, wie der Befehl getaggt werden kann, dass er zur Rowhammer-Mitigation ist.
  • 6 ist ein Flussdiagramm eines Beispiels eines Prozesses zur hostunterstützten Rowhammer-Mitigation. Der Prozess 600 kann durch ein System mit einer hostunterstützten Rowhammer-Mitigation gemäß einem beliebigen Beispiel hierin implementiert werden.
  • In einem Beispiel bestimmt die Speichersteuerung bei 602, ob es einen Aktivierungsbefehl zum Senden an die Speichervorrichtung gibt. Falls es einen Aktivierungsbefehl gibt, die 602-JA-Verzweigung, kann die Speichersteuerung einen Zähler bei 604 inkrementieren. In einem Beispiel, falls ein Aktivierungsbefehl nicht detektiert wird, die 602-NEIN-Verzweigung, inkrementiert die Speichersteuerung den Zähler nicht.
  • Nach dem Überprüfen auf den Aktivierungsbefehl bestimmt die Speichersteuerung in einem Beispiel bei 606, ob es eine Timer-Zeitüberschreitung gibt. In einem Beispiel, falls es eine Timer-Zeitüberschreitung gibt, die 606-JA-Verzweigung, dekrementiert die Speichersteuerung den Zähler. Eine derartige Implementierung kann als eine Leaky-Bucket-Implementierung bezeichnet werden, um ein Schiebefenster zum Überprüfen auf Rowhammer-Bedingungen zu erzeugen. Bei einem Leaky-Bucket-Ansatz inkrementiert die Detektion eines Aktivierungsbefehls den Zähler, und eine Timer-Zeitüberschreitung dekrementiert den Zähler. Die Dekrementierung kann abhängig von der Häufigkeit der Timer-Zeitüberschreitung eine einzelne Dekrementierung sein oder um mehrere Einheiten für einen langsameren Zähler. Falls keine Zeitüberschreitung detektiert wird, die 606-NEIN-Verzweigung, wird der Zähler nicht geändert.
  • In einem Beispiel kann die Speichersteuerung nach Überprüfung auf Aktivierungsbefehle und Timer-Zeitüberschreitungen bei 608 bestimmen, ob der Zähler seinen Grenzwert überschreitet, was anzeigt, dass ein Schwellenwert erreicht wurde. Falls der Schwellenwert erreicht wird, sendet die Speichersteuerung in einem Beispiel bei 610 einen zusätzlichen Refresh-Befehl und setzt den Zähler zurück. In einem Beispiel, falls der Zähler den Schwellenwert nicht erreicht hat, überwacht das Speichersystem weiterhin bei 602 auf Aktivierungsbefehle.
  • 7 ist ein Blockschaltbild eines Beispiels eines Speichersubsystems, in dem eine hostunterstützte Rowhammer-Mitigation implementiert werden kann. Das System 700 schließt einen Prozessor und Elemente eines Speichersubsystems in einer Rechenvorrichtung ein. Das System 700 kann gemäß einem Beispiel des Systems 100 aus 1 sein.
  • In einem Beispiel schließt die Speichervorrichtung 740 die Rowhammer-Logik 780 ein, die eine Rowhammer-Logik repräsentiert, um es der Speichervorrichtung zu ermöglichen, eine Rowhammer-Mitigation intern in der Speichervorrichtung zu verwalten. In einem Beispiel schließt die Speichersteuerung 720 die Rowhammer-Logik 790 ein, um eine hostunterstützte Rowhammer-Mitigation gemäß einem beliebigen hierin bereitgestellten Beispiel bereitzustellen. Die Rowhammer-Logik 790 ermöglicht der Steuerung, zusätzliche Refresh-Befehle zu senden, um der Speichervorrichtung 740 über die Rowhammer-Logik 780 zu ermöglichen, einen Refresh potenzieller Opferreihen durchzuführen.
  • In einem Beispiel repräsentiert das Speichermodul 770 einen DIMM und schließt ein Register (z. B. einen RDIMM oder einen registrierten DIMM) ein. In einem Beispiel schließt das Speichermodul 770 mehrere Puffer ein, die separat adressierbar sind. In einem RDIMM puffert das Register den C/A-Bus, aber die Datenleitungen können gepuffert werden. Die hierin beschriebene befehlsbusspezifische PDA-Operation kann im System 700 mit oder ohne Register oder Puffer oder registrierter Taktvorrichtung genutzt werden.
  • Der Prozessor 710 repräsentiert eine Verarbeitungseinheit einer Rechenplattform, die ein Betriebssystem (BS) und Anwendungen ausführen kann, die zusammen als der Host oder Benutzer des Speichers bezeichnet werden können. Das BS und die Anwendungen führen Operationen aus, die zu Speicherzugriffen führen. Der Prozessor 710 kann einen oder mehrere separate Prozessoren einschließen. Jeder separate Prozessor kann eine einzelne Verarbeitungseinheit, eine Mehrkern-Verarbeitungseinheit oder eine Kombination einschließen. Die Verarbeitungseinheit kann ein primärer Prozessor, wie beispielsweise eine CPU (Central Processing Unit, zentrale Verarbeitungseinheit), oder ein periphärer Prozessor, wie beispielsweise eine GPU (Graphics Processing Unit, Grafikverarbeitungseinheit), oder eine Kombination sein. Speicherzugriffe können auch von Vorrichtungen, wie beispielsweise einer Netzsteuerung oder Festplattensteuerung, initiiert werden. Derartige Vorrichtungen können in einigen Systemen in den Prozessor integriert oder über einen Bus (z. B. PCI Express) an den Prozessor angeschlossen sein, oder eine Kombination. Das System 700 kann als SOC (System-on-a-Chip) oder mit eigenständigen Komponenten implementiert sein.
  • Die Bezugnahme auf Speichervorrichtungen kann für verschiedene Speichertypen gelten. Speichervorrichtungen beziehen sich häufig auf flüchtige Speichertechnologien. Flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die darauf gespeicherten Daten) unbestimmt ist, falls der Strom zur Vorrichtung unterbrochen ist. Nichtflüchtiger Speicher bezieht sich auf einen Speicher, dessen Zustand selbst dann bestimmt ist, falls der Strom zur Vorrichtung unterbrochen ist. Dynamischer flüchtiger Speicher erfordert das Refreshing der in der Vorrichtung gespeicherten Daten, um den Zustand aufrechtzuerhalten. Ein Beispiel eines dynamischen flüchtigen Speichers schließt DRAM (Dynamic Random Access Memory, dynamischer Direktzugriffsspeicher) oder eine Variante wie synchronen DRAM (SDRAM) ein. Ein hierin beschriebenes Speichersubsystem kann mit einer Reihe von Speichertechnologien kompatibel sein, wie beispielsweise DDR4 (DDR-Version 4, JESD79, anfängliche Spezifikation von JEDEC im September 2012 veröffentlicht), LPDDR4 (Low-Power-DDR-Version 4, JESD209-4, ursprünglich von JEDEC im August 2014 veröffentlicht), WIO2 (Wide I/O 2 (WideI02), JESD229-2, ursprünglich von JEDEC im August 2014 veröffentlicht), HBM (DRAM-Speicher mit hoher Bandbreite, JESD235A, ursprünglich von JEDEC im November 2015 veröffentlicht), DDR5 (DDR-Version 5, derzeit von JEDEC diskutiert), LPDDR5 (derzeit von JEDEC diskutiert), HBM2 ((HBM-Version 2), derzeit von JEDEC diskutiert) oder andere oder Kombinationen von Speichertechnologien und Technologien, die auf Ableitungen oder Erweiterungen derartiger Spezifikationen basieren.
  • Zusätzlich zu oder alternativ zu flüchtigem Speicher kann sich in einem Beispiel die Bezugnahme auf Speichervorrichtungen auf eine nichtflüchtige Speichervorrichtung beziehen, deren Zustand selbst dann bestimmt ist, falls der Strom zur Vorrichtung unterbrochen ist. In einem Beispiel ist die nichtflüchtige Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie beispielsweise NAND- oder NOR-Technologien. Somit kann eine Speichervorrichtung auch nichtflüchtige Vorrichtungen einer zukünftigen Generation einschlie-ßen, wie beispielsweise eine dreidimensionale Crosspoint-Speichervorrichtung, andere byteadressierbare nichtflüchtige Speichervorrichtungen oder Speichervorrichtungen, die Chalkogenid-Phasenwechselmaterial (z. B. Chalkogenidglas) verwenden. In einem Beispiel kann die Speichervorrichtung Multi-Threshold-Level-NAND-Flash-Speicher, NOR-Flash-Speicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM, Phase Change Memory) oder Phasenwechselspeicher mit einem Switch (PCMS), Widerstandsspeicher, Nanodrahtspeicher, ferroelektrischer Transistor-Direktzugriffsspeicher (FeTRAM, Ferroelectric Transistor Random Access Memory), magnetoresistiver Direktzugriffsspeicher (MRAM, Magnetoresistive Random Access Memory), der Memristor-Technologie integriert, oder Spin-Transfer-Torque(STT)-MRAM oder eine Kombination aus einem der oben genannten oder ein anderer Speicher sein oder solche einschließen.
  • Beschreibungen, die sich hierin auf einen „RAM“ oder eine „RAM-Vorrichtung“ beziehen, können für eine beliebige Speichervorrichtung gelten, die einen wahlfreien Zugriff ermöglicht, unabhängig davon, ob flüchtig oder nichtflüchtig. Beschreibungen, die sich auf einen „DRAM“ oder eine „DRAM-Vorrichtung“ beziehen, können sich auf eine flüchtige Direktzugriffsspeichervorrichtung beziehen. Die Speichervorrichtung oder der DRAM kann sich auf den Die selbst beziehen, auf ein Speicherprodukt in einem Package, das einen oder mehrere Dies aufweist, oder auf beides. In einem Beispiel kann ein System mit einem flüchtigen Speicher, der aufgefrischt werden muss, auch einen nichtflüchtigen Speicher einschließen.
  • Die Speichersteuerung 720 repräsentiert eine oder mehrere Speichersteuerungsschaltungen oder -vorrichtungen für das System 700. Die Speichersteuerung 720 repräsentiert eine Steuerlogik, die Speicherzugriffsbefehle als Reaktion auf die Ausführung von Operationen durch den Prozessor 710 generiert. Die Speichersteuerung 720 greift auf eine oder mehrere Speichervorrichtungen 740 zu. Die Speichervorrichtungen 740 können DRAM-Vorrichtungen gemäß den oben genannten sein. In einem Beispiel werden Speichervorrichtungen 740 als verschiedene Kanäle organisiert und verwaltet, wobei jeder Kanal mit Bussen und Signalleitungen gekoppelt ist, die parallel mit mehreren Speichervorrichtungen gekoppelt sind. Jeder Kanal ist unabhängig betreibbar. Somit wird auf jeden Kanal unabhängig zugegriffen und jeder Kanal unabhängig gesteuert, und die Zeitsteuerung, die Datenübertragung, der Befehls- und Adressaustausch und andere Operationen sind für jeden Kanal separat. Eine Kopplung kann sich auf eine elektrische Kopplung, eine kommunikative Kopplung, eine physikalische Kopplung oder eine Kombination davon beziehen. Eine physikalische Kopplung kann einen direkten Kontakt einschließen. Eine elektrische Kopplung schließt eine Schnittstelle oder Zwischenverbindung ein, die einen elektrischen Fluss zwischen Komponenten oder eine Signalisierung zwischen Komponenten oder beides ermöglicht. Eine kommunikative Kopplung schließt Verbindungen ein, einschließlich drahtgebundener oder drahtloser, die es Komponenten ermöglichen, Daten auszutauschen.
  • In einem Beispiel werden Einstellungen für jeden Kanal durch separate Modusregister oder andere Registereinstellungen gesteuert. In einem Beispiel verwaltet jede Speichersteuerung 720 einen separaten Speicherkanal, obwohl das System 700 so konfiguriert sein kann, dass mehrere Kanäle von einer einzelnen Steuerung verwaltet werden oder dass mehrere Steuerungen auf einem einzelnen Kanal vorhanden sind. In einem Beispiel ist die Speichersteuerung 720 Teil des Hostprozessors 710, wie beispielsweise eine Logik, die auf demselben Die implementiert ist oder in demselben Packageraum wie der Prozessor implementiert ist.
  • Die Speichersteuerung 720 schließt die E/A-Schnittstellenlogik 722 zum Koppeln mit einem Speicherbus ein, wie beispielsweise einem Speicherkanal, wie oben erwähnt. Die E/A-Schnittstellenlogik 722 (sowie die E/A-Schnittstellenlogik 742 der Speichervorrichtung 740) kann Pins, Pads, Verbinder, Signalleitungen, Leiterbahnen oder Drähte oder andere Hardware zum Verbinden der Vorrichtungen oder eine Kombination von diesen einschließen. Die E/A-Schnittstellenlogik 722 kann eine Hardwareschnittstelle einschließen. Wie veranschaulicht, schließt die E/A-Schnittstellenlogik 722 wenigstens Treiber/Transceiver für Signalleitungen ein. Üblicherweise werden Drähte innerhalb einer integrierten Schaltungsschnittstelle mit einem Pad, Pin oder Verbinder gekoppelt, um Signalleitungen oder Leiterbahnen oder andere Drähte zwischen Vorrichtungen zu verbinden. Die E/A-Schnittstellenlogik 722 kann Treiber, Empfänger, Transceiver oder Terminierung oder andere Schaltungen oder Kombinationen von Schaltungen einschließen, um Signale auf den Signalleitungen zwischen den Vorrichtungen auszutauschen. Der Austausch von Signalen schließt wenigstens eines von Senden oder Empfangen ein. Obgleich als Kopplung der E/A 722 von der Speichersteuerung 720 zur E/A 742 der Speichervorrichtung 740 gezeigt, versteht es sich, dass in einer Implementierung des Systems 700, in der auf Gruppen von Speichervorrichtungen 740 parallel zugegriffen wird, mehrere Speichervorrichtungen E/A-Schnittstellen zu derselben Schnittstelle der Speichersteuerung 720 einschließen können. In einer Implementierung des Systems 700 mit einem oder mehreren Speichermodulen 770 kann die E/A 742 zusätzlich zur Schnittstellenhardware auf der Speichervorrichtung selbst eine Schnittstellenhardware des Speichermoduls einschließen. Andere Speichersteuerungen 720 schließen separate Schnittstellen zu anderen Speichervorrichtungen 740 ein.
  • Der Bus zwischen der Speichersteuerung 720 und den Speichervorrichtungen 740 kann als mehrere Signalleitungen implementiert werden, die die Speichersteuerung 720 mit den Speichervorrichtungen 740 koppeln. Der Bus kann typischerweise wenigstens den Takt (CLK) 732, Befehl/Adresse (CMD) 734 und Schreibdaten (DQ) und Lesedaten (DQ) 736 sowie null oder mehr andere Signalleitungen 738 einschließen. In einem Beispiel kann ein Bus oder eine Verbindung zwischen der Speichersteuerung 720 und dem Speicher als ein Speicherbus bezeichnet werden. Die Signalleitungen für CMD können als ein „C/A-Bus“ bezeichnet werden (oder ADD/CMD-Bus oder eine andere Bezeichnung zum Anzeigen der Übertragung von Befehls(C oder CMD, Command)- und Adress(A oder ADD, Address)-Informationen), und die Signalleitungen für Schreib- und Lese-DQ können als „Datenbus“ bezeichnet werden. In einem Beispiel weisen unabhängige Kanäle unterschiedliche Taktsignale, C/A-Busse, Datenbusse und andere Signalleitungen auf. Somit kann das System 700 als mehrere „Busse“ aufweisend betrachtet werden, in dem Sinne, 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 wenigstens eine von Strobe-Signalleitungen, Alarmleitungen, Hilfsleitungen oder anderen Signalleitungen oder eine Kombination aufweisen kann. Es versteht sich auch, dass serielle Bustechnologien für die Verbindung zwischen der Speichersteuerung 720 und den Speichervorrichtungen 740 verwendet werden können. Ein Beispiel für eine serielle Bustechnologie ist die 8B 10B-Codierung und Übertragung von Hochgeschwindigkeitsdaten mit eingebettetem Takt über ein einzelnes differentielles Signalpaar in jeder Richtung. In einem Beispiel repräsentiert CMD 734 Signalleitungen, die parallel mit mehreren Speichervorrichtungen geteilt werden. In einem Beispiel teilen sich mehrere Speichervorrichtungen Codierungsbefehlssignalleitungen von CMD 734, und jede weist eine separate Chipauswahl(CS _n, Chip Select)-Signalleitung auf, um einzelne Speichervorrichtungen auszuwählen.
  • Es versteht sich, dass im Beispiel des Systems 700 der Bus zwischen der Speichersteuerung 720 und den Speichervorrichtungen 740 einen Nebenbefehlsbus CMD 734 und einen Nebenbus zum Tragen der Schreib- und Lesedaten, DQ 736, einschließt. In einem Beispiel kann der Datenbus bidirektionale Leitungen für Lesedaten und für Schreib-/Befehlsdaten aufweisen. In einem anderen Beispiel kann der Nebenbus DQ 736 unidirektionale Schreibsignalleitungen für Schreibdaten vom Host zum Speicher und unidirektionale Leitungen für Lesedaten vom Speicher zum Host einschließen. In Übereinstimmung mit der gewählten Speichertechnologie und dem gewählten Systemdesign können andere Signale 738 einen Bus oder Subbus begleiten, wie beispielsweise Strobe-Leitungen-DQS. Basierend auf dem Design des Systems 700 oder der Implementierung, falls ein Design mehrere Implementierungen unterstützt, kann der Datenbus mehr oder weniger Bandbreite pro Speichervorrichtung 740 aufweisen. Beispielsweise kann der Datenbus Speichervorrichtungen unterstützen, die entweder eine x32-Schnittstelle, eine x16-Schnittstelle, eine x8-Schnittstelle oder eine andere Schnittstelle aufweisen. Die Konvention ist „xW“, wobei W eine ganze Zahl ist, die sich auf eine Schnittstellengröße oder -breite der Schnittstelle der Speichervorrichtung 740 bezieht, die eine Anzahl von Signalleitungen repräsentiert, um Daten mit der Speichersteuerung 720 auszutauschen. Die Schnittstellengröße der Speichervorrichtungen ist ein steuernder Faktor dafür, wie viele Speichervorrichtungen gleichzeitig pro Kanal im System 700 verwendet oder parallel zu denselben Signalleitungen gekoppelt werden können. In einem Beispiel können Speichervorrichtungen mit hoher Bandbreite, Vorrichtungen mit breiter Schnittstelle oder gestapelte Speicherkonfigurationen oder Kombinationen breitere Schnittstellen ermöglichen, wie beispielsweise eine x128-Schnittstelle, eine x256-Schnittstelle, eine x512-Schnittstelle, eine x1024-Schnittstelle oder eine andere Datenbusschnittstellenbreite.
  • In einem Beispiel tauschen die Speichervorrichtungen 740 und die Speichersteuerung 720 Daten über den Datenbus in einem Burst oder einer Folge aufeinanderfolgender Datenübertragungen aus. Der Burst entspricht einer Anzahl von Übertragungszyklen, die sich auf eine Busfrequenz bezieht. In einem Beispiel kann der Übertragungszyklus ein ganzer Taktzyklus für Übertragungen sein, die auf einer gleichen Takt- oder Strobe-Signalflanke (z. B. auf der ansteigenden Flanke) auftreten. In einem Beispiel ist jeder Taktzyklus, der sich auf einen Zyklus des Systemtakts bezieht, in mehrere Einheitsintervalle (UIs, Unit Intervals) getrennt, wobei jedes UI ein Übertragungszyklus ist. Beispielsweise werden Übertragungen mit doppelter Datenrate an beiden Flanken des Taktsignals ausgelöst (z. B. ansteigend und fallend). Ein Burst kann eine konfigurierte Anzahl von UIs lang dauern, die eine in einem Register gespeicherte Konfiguration sein kann, oder on-the-fly ausgelöst werden. Beispielsweise kann eine Sequenz von acht aufeinanderfolgenden Übertragungsperioden als Burst-Länge 8 (BL8) betrachtet werden, und jede Speichervorrichtung 740 kann Daten auf jeder UI übertragen. Somit kann eine auf BL8 arbeitende x8-Speichervorrichtung 64 Datenbits (8 Datensignalleitungen mal 8 Datenbits, die pro Leitung über den Burst übertragen werden) übertragen. Es versteht sich, dass dieses einfache Beispiel lediglich eine Veranschaulichung und nicht einschränkend ist.
  • Die Speichervorrichtungen 740 repräsentieren Speicherressourcen für das System 700. In einem Beispiel ist jede Speichervorrichtung 740 ein separater Speicher-Die. In einem Beispiel kann jede Speichervorrichtung 740 mit mehreren (z. B. 2) Kanälen pro Vorrichtung oder Die über eine Schnittstelle verbunden sein. Jede Speichervorrichtung 740 schließt die E/A-Schnittstellenlogik 742 ein, die eine Bandbreite aufweist, die durch die Implementierung der Vorrichtung bestimmt wird (z. B. x16 oder x8 oder eine andere Schnittstellenbandbreite). Die E/A-Schnittstellenlogik 742 ermöglicht den Speichervorrichtungen, eine Schnittstelle mit der Speichersteuerung 720 herzustellen. Die E/A-Schnittstellenlogik 742 kann eine Hardwareschnittstelle einschließen und kann gemäß der E/A 722 der Speichersteuerung sein, jedoch am Speichervorrichtungsende. In einem Beispiel sind mehrere Speichervorrichtungen 740 parallel mit denselben Befehls- und Datenbussen verbunden. In einem anderen Beispiel sind mehrere Speichervorrichtungen 740 parallel mit demselben Befehlsbus und mit verschiedenen Datenbussen verbunden. Beispielsweise kann das System 700 mit mehreren parallel gekoppelten Speichervorrichtungen 740 konfiguriert werden, wobei jede Speichervorrichtung auf einen Befehl reagiert und auf die jeweils internen Speicherressourcen 760 zugreift. Für eine Schreiboperation kann eine einzelne Speichervorrichtung 740 einen Teil des gesamten Datenworts schreiben, und für eine Leseoperation kann eine einzelne Speichervorrichtung 740 einen Teil des gesamten Datenworts fetchen. Als nicht einschränkende Beispiele kann eine spezielle Speichervorrichtung jeweils 8 Bits eines 128-Bit-Datenworts für eine Lese- oder Schreibtransaktion oder 8 Bits oder 16 Bits (abhängig von einer x8- oder einer x16-Vorrichtung) eines 256-Bit-Datenworts bereitstellen oder empfangen. Die verbleibenden Bits des Worts werden von anderen Speichervorrichtungen parallel bereitgestellt oder empfangen.
  • In einem Beispiel sind die Speichervorrichtungen 740 direkt auf einer Motherboard- oder Hostsystemplattform (z. B. einer PCB (Printed Circuit Board, gedruckte Leiterplatte), auf der der Prozessor 710 angeordnet ist) einer Rechenvorrichtung angeordnet. In einem Beispiel können die Speichervorrichtungen 740 in die Speichermodule 770 organisiert sein. In einem Beispiel repräsentieren die Speichermodule 770 Dual-Inline-Speichermodule (DIMMs, Dual Inline Memory Modules). In einem Beispiel repräsentieren die Speichermodule 770 eine andere Organisation mehrerer Speichervorrichtungen, um wenigstens einen Teil der Zugriffs- oder Steuerschaltungen gemeinsam zu nutzen, die eine separate Schaltung, eine separate Vorrichtung oder eine separate Platine von der Hostsystemplattform sein können. Die Speichermodule 770 können mehrere Speichervorrichtungen 740 einschließen, und die Speichermodule können Unterstützung für mehrere separate Kanäle zu den auf ihnen angeordneten eingeschlossenen Speichervorrichtungen aufweisen. In einem anderen Beispiel können die Speichervorrichtungen 740 in das gleiche Paket wie die Speichersteuerung 720 integriert sein, wie beispielsweise durch Techniken wie Multi-Chip-Modul (MCM), Package-on-Package, Through-Silicon-Via (TSV) oder andere Techniken oder Kombinationen. In ähnlicher Weise können in einem Beispiel mehrere Speichervorrichtungen 740 in die Speichermodule 770 integriert sein, die selbst in dasselbe Package wie die Speichersteuerung 720 integriert sein können. Es versteht sich, dass die Speichersteuerung 720 für diese und andere Implementierungen Teil des Hostprozessors 710 sein kann.
  • Die Speichervorrichtungen 740 schließen jeweils die Speicherressourcen 760 ein. Die Speicherressourcen 760 repräsentieren einzelne Arrays von Speicherorten oder Speicherungsorten für Daten. Typischerweise werden die Speicherressourcen 760 als Reihen von Daten verwaltet, auf die über die Steuerung der Wortleitung (Reihen) und der Bitleitung (einzelne Bits innerhalb einer Reihe) zugegriffen wird. Die Speicherressourcen 760 können als separate Kanäle, Ranks und Speicherbänke organisiert sein. Kanäle können sich auf unabhängige Steuerpfade zu Speicherungsorten innerhalb von Speichervorrichtungen 740 beziehen. Ranks können sich auf gemeinsame Orte über mehrere Speichervorrichtungen beziehen (z. B. gleiche Reihenadressen innerhalb verschiedener Vorrichtungen). Bänke können sich auf Arrays von Speicherorten innerhalb einer Speichervorrichtung 740 beziehen. In einem Beispiel werden Speicherbänke in Subbänke mit wenigstens einem Teil der gemeinsam genutzten Schaltungen (z. B. Treiber, Signalleitungen, Steuerlogik) für die Subbänke unterteilt, was eine separate Adressierung und einen separaten Zugriff ermöglicht. Es versteht sich, dass sich Kanäle, Ranks, Bänke, Subbänke, Bankgruppen oder andere Organisationen der Speicherorte und Kombinationen der Organisationen in ihrer Anwendung auf physikalische Ressourcen überlappen können. Beispielsweise kann über einen speziellen Kanal auf die gleichen physikalischen Speicherorte wie eine spezielle Bank, die auch zu einem Rank gehören kann, zugegriffen werden. Somit wird die Organisation von Speicherressourcen inklusiv statt exklusiv verstanden.
  • In einem Beispiel schließen die Speichervorrichtungen 740 ein oder mehrere Register 744 ein. Das Register 744 repräsentiert eine oder mehrere Speicherungsvorrichtungen oder Speicherungsorte, die eine Konfiguration oder Einstellungen für den Betrieb der Speichervorrichtung bereitstellen. In einem Beispiel kann das Register 744 einen Speicherungsort für die Speichervorrichtung 740 bereitstellen, um Daten für den Zugriff durch die Speichersteuerung 720 als Teil einer Steuer- oder Managementoperation zu speichern. In einem Beispiel schließt das Register 744 ein oder mehrere Modusregister ein. In einem Beispiel schließt das Register 744 ein oder mehrere Mehrzweckregister ein. Die Konfiguration von Orten innerhalb des Registers 744 kann die Speichervorrichtung 740 so konfigurieren, dass sie in verschiedenen „Modi“ arbeitet, wobei Befehlsinformationen basierend auf dem Modus verschiedene Operationen innerhalb der Speichervorrichtung 740 auslösen können. Zusätzlich oder alternativ können verschiedene Modi abhängig vom Modus auch unterschiedliche Operationen von Adressinformationen oder anderen Signalleitungen auslösen. Einstellungen des Registers 744 können eine Konfiguration für E/A-Einstellungen anzeigen (z. B. Zeitsteuerung, Terminierung oder ODT (On-Die-Terminierung) 746, Treiberkonfiguration oder andere E/A-Einstellungen).
  • In einem Beispiel schließt die Speichervorrichtung 740 die ODT 746 als Teil der Schnittstellenhardware ein, die mit der E/A 742 assoziiert ist. Die ODT 746 kann wie oben erwähnt konfiguriert werden und Einstellungen für die Impedanz bereitstellen, die an die Schnittstelle zu spezifizierten Signalleitungen angelegt werden soll. In einem Beispiel wird die ODT 746 auf DQ-Signalleitungen angewendet. In einem Beispiel wird die ODT 746 auf Befehlssignalleitungen angewendet. In einem Beispiel wird die ODT 746 auf Adresssignalleitungen angewendet. In einem Beispiel kann die ODT 746 auf eine beliebige Kombination der vorhergehenden angewendet werden. Die ODT-Einstellungen können basierend darauf geändert werden, ob eine Speichervorrichtung ein ausgewähltes Ziel einer Zugriffsoperation oder eine Nicht-Zielvorrichtung ist. Die Einstellungen der ODT 746 können die Zeitsteuerung und die Reflexionen der Signalisierung auf den terminierten Leitungen beeinflussen. Eine sorgfältige Steuerung der ODT 746 kann einen Betrieb mit höherer Geschwindigkeit mit einer verbesserten Anpassung der angelegten Impedanz und Last ermöglichen. Die ODT 746 kann auf spezielle Signalleitungen der E/A-Schnittstelle 742, 722 angewendet werden und wird nicht notwendigerweise auf alle Signalleitungen angewendet.
  • Die Speichervorrichtung 740 schließt eine Steuerung 750 ein, die eine Steuerlogik innerhalb der Speichervorrichtung repräsentiert, um interne Operationen innerhalb der Speichervorrichtung zu steuern. Beispielsweise decodiert die Steuerung 750 Befehle, die von der Speichersteuerung 720 gesendet werden, und generiert interne Operationen, um die Befehle auszuführen oder zu erfüllen. Die Steuerung 750 kann als eine interne Steuerung bezeichnet werden und ist von der Speichersteuerung 720 des Hosts getrennt. Die Steuerung 750 kann basierend auf dem Register 744 bestimmen, welcher Modus ausgewählt ist, und die interne Ausführung von Operationen für den Zugriff auf die Speicherressourcen 760 oder anderen Operationen basierend auf dem ausgewählten Modus konfigurieren. Die Steuerung 750 generiert Steuersignale, um das Routing von Bits innerhalb der Speichervorrichtung 740 zu steuern, um eine geeignete Schnittstelle für den ausgewählten Modus bereitzustellen und einen Befehl an die richtigen Speicherorte oder Adressen zu leiten. Die Steuerung 750 schließt die Befehlslogik 752 ein, die die auf Befehls- und Adresssignalleitungen empfangene Befehlscodierung decodieren kann. Somit kann die Befehlslogik 752 ein Befehlsdecoder sein oder diesen einschließen. Mit der Befehlslogik 752 kann die Speichervorrichtung Befehle identifizieren und interne Operationen generieren, um angeforderte Befehle auszuführen.
  • Unter erneuter Bezugnahme auf die Speichersteuerung 720 schließt die Speichersteuerung 720 die Befehls(CMD, Command)-Logik 724 ein, die eine Logik oder Schaltungen zum Generieren von Befehlen zum Senden an die Speichervorrichtungen 740 repräsentiert. Die Generierung der Befehle kann sich auf den Befehl vor der Planung oder auf die Vorbereitung von Befehlen in der Warteschlange beziehen, die zum Senden bereit sind. Im Allgemeinen schließt die Signalisierung in Speichersubsystemen Adressinformationen innerhalb des Befehls ein oder begleitet diesen, um einen oder mehrere Speicherorte anzuzeigen oder auszuwählen, an denen die Speichervorrichtungen den Befehl ausführen sollen. Als Reaktion auf die Planung von Transaktionen für die Speichervorrichtung 740 kann die Speichersteuerung 720 Befehle über die E/A 722 ausgeben, um die Speichervorrichtung 740 zu veranlassen, die Befehle auszuführen. In einem Beispiel empfängt und decodiert die Steuerung 750 der Speichervorrichtung 740 Befehls- und Adressinformationen, die über die E/A 742 von der Speichersteuerung 720 empfangen werden. Basierend auf den empfangenen Befehls- und Adressinformationen kann die Steuerung 750 die Zeitsteuerung von Operationen der Logik und Schaltungen innerhalb der Speichervorrichtung 740 steuern, um die Befehle auszuführen. Die Steuerung 750 ist für die Einhaltung von Standards oder Spezifikationen innerhalb der Speichervorrichtung 740 verantwortlich, wie beispielsweise Zeitsteuerungs- und Signalisierungsanforderungen. Die Speichersteuerung 720 kann die Einhaltung von Standards oder Spezifikationen durch Zugriffsplanung und -steuerung implementieren.
  • Die Speichersteuerung 720 schließt den Scheduler 730 ein, der eine Logik oder Schaltungen zum Generieren und Anordnen von Transaktionen zum Senden an die Speichervorrichtung 740 repräsentiert. Aus einer Perspektive könnte gesagt werden, dass die primäre Funktion der Speichersteuerung 720 darin besteht, den Speicherzugriff und andere Transaktionen zur Speichervorrichtung 740 zu planen. Eine derartige Planung kann das Generieren der Transaktionen selbst einschließen, um die Datenanforderungen durch den Prozessor 710 zu implementieren und die Integrität der Daten aufrechtzuerhalten (wie beispielsweise mit Befehlen, die sich auf einen Refresh beziehen). Transaktionen können einen oder mehrere Befehle einschließen und zur Übertragung von Befehlen oder Daten oder beidem über einen oder mehrere Zeitzyklen, wie beispielsweise Taktzyklen oder Einheitsintervalle, führen. Transaktionen können für den Zugriff wie Read- oder Write- oder verwandte Befehle oder eine Kombination sein, und andere Transaktionen können Speichermanagementbefehle für Konfiguration, Einstellungen, Datenintegrität oder andere Befehle oder eine Kombination einschließen.
  • Die Speichersteuerung 720 schließt typischerweise eine Logik wie den Scheduler 730 ein, um die Auswahl und Anordnung von Transaktionen zu ermöglichen, um die Leistung des Systems 700 zu verbessern. Somit kann die Speichersteuerung 720 auswählen, welche der ausstehenden Transaktionen in welcher Reihenfolge an die Speichervorrichtung 740 gesendet werden sollen, was typischerweise mit einer Logik erreicht wird, die viel komplexer ist als ein einfacher First-In-First-Out-Algorithmus. Die Speichersteuerung 720 verwaltet die Übertragung der Transaktionen zur Speichervorrichtung 740 und verwaltet die mit der Transaktion assoziierte Zeitsteuerung. In einem Beispiel weisen Transaktionen eine deterministische Zeitsteuerung auf, die von der Speichersteuerung 720 verwaltet und zum Bestimmen verwendet werden kann, wie die Transaktionen mit dem Scheduler 730 geplant werden.
  • In einem Beispiel schließt die Speichersteuerung 720 die Refresh(REF)-Logik 726 ein. Die Refresh-Logik 726 kann für Speicherressourcen verwendet werden, die flüchtig sind und aufgefrischt werden müssen, um einen deterministischen Zustand beizubehalten. In einem Beispiel zeigt die Refresh-Logik 726 einen Ort für den Refresh und einen Typ des durchzuführenden Refresh an. Die Refresh-Logik 726 kann einen Self-Refresh innerhalb der Speichervorrichtung 740 auslösen oder externe Auffrischungen ausführen, die als automatische Refresh-Befehle bezeichnet werden können, indem Refresh-Befehle oder eine Kombination gesendet werden. In einem Beispiel unterstützt das System 700 Auffrischungen für alle Bänke sowie Pro-Bank-Auffrischungen. Auffrischungen für alle Bänke veranlassen das Refreshing von Bänken innerhalb aller parallel gekoppelten Speichervorrichtungen 740. Pro-Bank-Auffrischungen veranlassen das Refreshing einer spezifizierten Bank innerhalb einer spezifizierten Speichervorrichtung 740. In einem Beispiel schließt die Steuerung 750 innerhalb der Speichervorrichtung 740 die Refresh-Logik 754 ein, um einen Refresh innerhalb der Speichervorrichtung 740 anzuwenden. In einem Beispiel generiert die Refresh-Logik 754 interne Operationen, um einen Refresh gemäß einem von der Speichersteuerung 720 empfangenen externen Refresh durchzuführen. Die Refresh-Logik 754 kann bestimmen, ob ein Refresh an die Speichervorrichtung 740 gerichtet ist und welche Speicherressourcen 760 als Reaktion auf den Befehl aufgefrischt werden.
  • 8 ist ein Blockschaltbild eines Beispiels eines Rechensystems, in dem eine hostunterstützte Rowhammer-Mitigation implementiert werden kann. Das System 800 repräsentiert eine Rechenvorrichtung gemäß einem beliebigen Beispiel hierin und kann ein Laptop-Computer, ein Desktop-Computer, ein Tablet-Computer, ein Server, ein Gaming- oder Entertainment-Steuersystem, eine eingebettete Rechenvorrichtung oder eine andere elektronische Vorrichtung sein. Das System 800 stellt ein Beispiel eines Systems gemäß dem System 100 bereit.
  • In einem Beispiel schließt das Speichersubsystem 820 die Rowhammer-Logik 890 ein, die eine Rowhammer-Logik repräsentiert, um eine hostunterstützte Rowhammer-Mitigation gemäß einem beliebigen Beispiel hierin zu ermöglichen. Die Rowhammer-Logik kann eine Logik in der Speichervorrichtung einschließen, um eine Rowhammer-Mitigation intern in der Speichervorrichtung zu verwalten. In einem Beispiel schließt die Rowhammer-Logik 890 eine Rowhammer-Logik in der Speichersteuerung 822 ein, um eine hostunterstützte Rowhammer-Mitigation gemäß einem beliebigen hierin bereitgestellten Beispiel bereitzustellen. Die Rowhammer-Logik 890 ermöglicht der Steuerung, zusätzliche Refresh-Befehle zu senden, damit der Speicher 830 einen Refresh potenzieller Opferreihen basierend auf einer Anzahl von Aktivierungsbefehlen durchführen kann.
  • Das System 800 schließt den Prozessor 810 ein, der einen beliebigen Typ von Mikroprozessor, zentraler Verarbeitungseinheit (CPU, Central Processing Unit), Grafikverarbeitungseinheit (GPU, Graphics Processing Unit), Verarbeitungskern oder anderer Verarbeitungshardware oder eine Kombination einschließen kann, um eine Verarbeitung oder Ausführung von Anweisungen für das System 800 bereitzustellen. Der Prozessor 810 steuert den Gesamtbetrieb des Systems 800 und kann ein oder mehrere programmierbare Allzweck- oder Spezialzweckmikroprozessoren, digitale Signalprozessoren (DSPs), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs, Application Specific Integrated Circuits), programmierbare Logikvorrichtungen (PLDs, Programmable Logic Devices) oder eine Kombination derartiger Vorrichtungen sein oder diese einschließen.
  • In einem Beispiel schließt das System 800 die Schnittstelle 812 ein, die mit dem Prozessor 810 gekoppelt ist, die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten repräsentieren kann, die Verbindungen mit höherer Bandbreite benötigen, wie beispielsweise das Speichersubsystem 820 oder die Grafikschnittstellenkomponenten 840. Die Schnittstelle 812 repräsentiert eine Schnittstellenschaltung, die eine eigenständige Komponente sein oder auf einem Prozessor-Die integriert sein kann. Die Schnittstelle 812 kann als eine Schaltung auf dem Prozessor-Die oder als eine Komponente auf einem System-on-a-Chip integriert sein. Wo vorhanden, ist die Grafikschnittstelle 840 mit Grafikkomponenten über eine Schnittstelle verbunden, um einem Benutzer des Systems 800 eine visuelle Anzeige bereitzustellen. Die Grafikschnittstelle 840 kann eine eigenständige Komponente oder auf dem Prozessor-Die oder System-on-a-Chip integriert sein. In einem Beispiel kann die Grafikschnittstelle 840 eine High-Definition(HD)-Anzeige ansteuern, die einem Benutzer eine Ausgabe bereitstellt. In einem Beispiel kann die Anzeige eine Berührungsbildschirmanzeige einschließen. In einem Beispiel generiert die Grafikschnittstelle 840 eine Anzeige basierend auf Daten, die im Speicher 830 gespeichert sind, oder basierend auf Operationen, die vom Prozessor 810 ausgeführt werden, oder beidem.
  • Das Speichersubsystem 820 repräsentiert den Hauptspeicher des Systems 800 und stellt eine Speicherung für Code, der vom Prozessor 810 ausgeführt werden soll, oder Datenwerte, die bei der Ausführung einer Routine verwendet werden sollen, bereit. Das Speichersubsystem 820 kann eine oder mehrere Speichervorrichtungen 830 einschließen, wie beispielsweise Nur-Lese-Speicher (ROM, Read-Only Memory), Flash-Speicher, eine oder mehrere Arten von Direktzugriffsspeicher (RAM, Random Access Memory), wie beispielsweise DRAM, oder andere Speichervorrichtungen oder eine Kombination derartiger Vorrichtungen. Der Speicher 830 speichert und hostet unter anderem das Betriebssystem (BS) 832, um eine Softwareplattform zum Ausführen von Anweisungen im System 800 bereitzustellen. Zusätzlich können die Anwendungen 834 auf der Softwareplattform des BS 832 vom Speicher 830 ausgeführt werden. Die Anwendungen 834 repräsentieren Programme, die ihre eigene Betriebslogik aufweisen, um die Ausführung einer oder mehrerer Funktionen durchzuführen. Die Prozesse 836 repräsentieren Agenten oder Routinen, die dem BS 832 oder einer oder mehreren Anwendungen 834 oder einer Kombination Hilfsfunktionen bereitstellen. Das BS 832, die Anwendungen 834 und die Prozesse 836 stellen Softwarelogik bereit, um Funktionen für das System 800 bereitzustellen. In einem Beispiel schließt das Speichersubsystem 820 die Speichersteuerung 822 ein, die eine Speichersteuerung ist, um Befehle zu generieren und an den Speicher 830 auszugeben. Es versteht sich, dass die Speichersteuerung 822 ein physikalischer Teil des Prozessors 810 oder ein physikalischer Teil der Schnittstelle 812 sein könnte. Beispielsweise kann die Speichersteuerung 822 eine integrierte Speichersteuerung sein, die auf einer Schaltung mit dem Prozessor 810 integriert ist, wie beispielsweise auf dem Prozessor-Die oder einem System-on-a-Chip.
  • Obwohl dies nicht speziell veranschaulicht ist, versteht es sich, dass das System 800 einen oder mehrere Busse oder Bussysteme zwischen Vorrichtungen, wie beispielsweise einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere, einschließen kann. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physikalische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder andere Schaltungen oder eine Kombination einschließen. Busse können beispielsweise einen oder mehrere von einem Systembus, einem Peripheral-Component-Interconnect(PCI)-Bus, einem HyperTransport-oder Industriestandardarchitektur(ISA)-Bus, einem Small-Computer-System-Interface(SCSI)-Bus, einem Universal Serial Bus (USB) oder einem anderen Bus oder eine Kombination einschließen.
  • In einem Beispiel schließt das System 800 die Schnittstelle 814 ein, die mit der Schnittstelle 812 gekoppelt sein kann. Die Schnittstelle 814 kann eine Schnittstelle mit niedrigerer Geschwindigkeit als die Schnittstelle 812 sein. In einem Beispiel repräsentiert die Schnittstelle 814 eine Schnittstellenschaltung, die eigenständige Komponenten und integrierte Schaltungen einschließen kann. In einem Beispiel sind mehrere Benutzerschnittstellenkomponenten oder periphäre Komponenten oder beide mit der Schnittstelle 814 gekoppelt. Die Netzschnittstelle 850 stellt dem System 800 die Fähigkeit bereit, mit entfernten Vorrichtungen (z. B. Servern oder anderen Rechenvorrichtungen) über ein oder mehrere Netze zu kommunizieren. Die Netzschnittstelle 850 kann einen Ethernet-Adapter, drahtlose Zwischenverbindungskomponenten, Zwischenverbindungskomponenten für ein zelluläres Netz, USB (Universal Serial Bus) oder andere drahtgebundene oder drahtlose standardbasierte oder proprietäre Schnittstellen einschließen. Die Netzschnittstelle 850 kann Daten mit einer entfernten Vorrichtung austauschen, was das Senden von im Speicher gespeicherten Daten oder das Empfangen von im Speicher zu speichernden Daten einschließen kann.
  • In einem Beispiel schließt das System 800 eine oder mehrere Eingabe/Ausgabe(E/A)-Schnittstellen 860 ein. Die E/A-Schnittstelle 860 kann eine oder mehrere Schnittstellenkomponenten einschließen, über die ein Benutzer mit dem System 800 interagiert (z. B. Audio-, alphanumerisches, taktiles/berührungssensitives oder anderes Interfacing). Die Peripherieschnittstelle 870 kann eine beliebige Hardwareschnittstelle einschließen, die oben nicht speziell erwähnt wird. Peripheriegeräte beziehen sich im Allgemeinen auf Vorrichtungen, die sich abhängig zum System 800 verbinden. Eine abhängige Verbindung ist eine, bei der das System 800 die Software- oder Hardwareplattform oder beide bereitstellt, auf der eine Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • In einem Beispiel schließt das System 800 das Speicherungssubsystem 880 ein, um Daten auf nichtflüchtige Weise zu speichern. In einem Beispiel können sich in bestimmten Systemimplementierungen wenigstens bestimmte Komponenten der Speicherung 880 mit Komponenten des Speichersubsystems 820 überlappen. Das Speicherungssubsystem 880 schließt die Speicherungsvorrichtung(en) 884 ein, die ein beliebiges herkömmliches Medium zum Speichern großer Datenmengen in einer nichtflüchtigen Weise, wie beispielsweise eine oder mehrere magnetische, Solid-State- oder optische Platten oder eine Kombination, sein oder umfassen kann/können. Die Speicherung 884 hält Code oder Anweisungen und die Daten 886 in einem persistenten Zustand (d. h. der Wert wird trotz Unterbrechung der Stromversorgung zum System 800 beibehalten). Die Speicherung 884 kann generisch als ein „Speicher“ betrachtet werden, obwohl der Speicher 830 typischerweise der Ausführungs- oder Betriebsspeicher ist, um Anweisungen an den Prozessor 810 bereitzustellen. Während die Speicherung 884 nichtflüchtig ist, kann der Speicher 830 flüchtigen Speicher einschließen (d. h. der Wert oder Zustand der Daten ist unbestimmt, falls die Stromversorgung zum System 800 unterbrochen ist). In einem Beispiel schließt das Speicherungssubsystem 880 die Steuerung 882 ein, um eine Schnittstelle mit der Speicherung 884 zu bilden. In einem Beispiel ist die Steuerung 882 ein physikalischer Teil der Schnittstelle 814 oder des Prozessors 810 oder kann Schaltungen oder Logik sowohl im Prozessor 810 als auch in der Schnittstelle 814 einschließen.
  • Die Stromquelle 802 liefert Strom an die Komponenten des Systems 800. Insbesondere ist die Stromquelle 802 typischerweise über eine Schnittstelle mit einer oder mehreren Stromversorgungen 804 im System 800 verbunden, um die Komponenten des Systems 800 mit Strom zu versorgen. In einem Beispiel schließt die Stromversorgung 804 einen Wechselstrom-Gleichstrom-Adapter (AC to DC, Alternating Current to Direct Current) zum Einstecken in eine Wandsteckdose ein. Eine derartige Wechselstromleistung kann die Stromquelle 802 für erneuerbare Energie (z. B. Solarstrom) sein. In einem Beispiel schließt die Stromquelle 802 eine Gleichstromquelle ein, wie beispielsweise einen externen Wechselstrom-Gleichstrom-Wandler. In einem Beispiel schließt die Stromquelle 802 oder die Stromversorgung 804 drahtlose Ladehardware zum Laden über die Nähe zu einem Ladefeld ein. In einem Beispiel kann die Stromquelle 802 eine interne Batterie oder Brennstoffzellenquelle einschließen.
  • 9 ist ein Blockschaltbild eines Beispiels einer mobilen Vorrichtung, in der eine hostunterstützte Rowhammer-Mitigation implementiert werden kann. Das System 900 repräsentiert eine mobile Rechenvorrichtung, wie beispielsweise ein Rechen-Tablet, ein Mobiltelefon oder Smartphone, eine tragbare Rechenvorrichtung oder eine andere mobile Vorrichtung oder eine eingebettete Rechenvorrichtung. Es versteht sich, dass bestimmte der Komponenten allgemein gezeigt werden und nicht alle Komponenten einer derartigen Vorrichtung im System 900 gezeigt sind. Das System 900 stellt ein Beispiel eines Systems gemäß dem System 100 bereit.
  • In einem Beispiel schließt das Speichersubsystem 960 die Rowhammer-Logik 990 ein, die eine Rowhammer-Logik repräsentiert, um eine hostunterstützte Rowhammer-Mitigation gemäß einem beliebigen Beispiel hierin für einen beliebigen Speicher 962 zu ermöglichen, der ein Refreshing erfordert. Die Rowhammer-Logik kann eine Logik in der Speichervorrichtung einschließen, um eine Rowhammer-Mitigation intern in der Speichervorrichtung zu verwalten. In einem Beispiel schließt die Rowhammer-Logik 990 eine Rowhammer-Logik in der Speichersteuerung 964 ein, um eine hostunterstützte Rowhammer-Mitigation gemäß einem beliebigen hierin bereitgestellten Beispiel bereitzustellen. Die Rowhammer-Logik 990 ermöglicht der Steuerung, zusätzliche Refresh-Befehle zu senden, damit der Speicher 962 einen Refresh potenzieller Opferreihen basierend auf einer Anzahl von Aktivierungsbefehlen durchführen kann.
  • Die Vorrichtung 900 schließt den Prozessor 910 ein, der die primären Verarbeitungsoperationen des Systems 900 durchführt. Der Prozessor 910 kann eine oder mehrere physikalische Vorrichtungen, wie beispielsweise Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikvorrichtungen oder andere Verarbeitungsmittel, einschließen. Die Verarbeitungsoperationen, die vom Prozessor 910 durchgeführt werden, schließen das Ausführen einer Betriebsplattform oder eines Betriebssystems ein, auf dem Anwendungen und Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsoperationen schließen Operationen im Zusammenhang mit E/A (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen, Operationen im Zusammenhang mit Power-Management, Operationen im Zusammenhang mit dem Verbinden des Systems 900 mit einer anderen Vorrichtung oder eine Kombination ein. Die Verarbeitungsoperationen können auch Operationen im Zusammenhang mit Audio-E/A, Anzeige-E/A oder anderem Interfacing oder eine Kombination einschließen. Der Prozessor 910 kann im Speicher gespeicherte Daten ausführen. Der Prozessor 910 kann im Speicher gespeicherte Daten schreiben oder lesen.
  • In einem Beispiel schließt das System 900 einen oder mehrere Sensoren 912 ein. Die Sensoren 912 repräsentieren eingebettete Sensoren oder Schnittstellen zu externen Sensoren oder eine Kombination. Die Sensoren 912 ermöglichen dem System 900, einen oder mehrere Bedingungen einer Umgebung oder einer Vorrichtung zu überwachen oder zu detektieren, in dem das System 900 implementiert ist. Die Sensoren 912 können Umgebungssensoren (wie beispielsweise Temperatursensoren, Bewegungsmelder, Lichtdetektoren, Kameras, chemische Sensoren (z. B. Kohlenmonoxid-, Kohlendioxid- oder andere chemische Sensoren)), Drucksensoren, Beschleunigungsmesser, Gyroskope, medizinische oder physiologische Sensoren (z. B. Biosensoren, Herzfrequenzmonitore oder andere Sensoren zum Detektieren physiologischer Attribute) oder andere Sensoren oder eine Kombination einschließen. Die Sensoren 912 können auch Sensoren für biometrische Systeme wie Fingerabdruckerkennungssysteme, Gesichtsdetektions- oder -erkennungssysteme oder andere Systeme einschließen, die Benutzermerkmale detektieren oder erkennen. Die Sensoren 912 sollten im weitesten Sinne verstanden werden und die vielen verschiedenen Typen von Sensoren, die mit dem System 900 implementiert werden könnten, nicht einschränken. In einem Beispiel sind ein oder mehrere Sensoren 912 über eine in den Prozessor 910 integrierte Frontend-Schaltung mit dem Prozessor 910 gekoppelt. In einem Beispiel sind ein oder mehrere Sensoren 912 über eine andere Komponente des Systems 900 mit dem Prozessor 910 gekoppelt.
  • In einem Beispiel schließt das System 900 ein Audiosubsystem 920 ein, das Komponenten der Hardware (z. B. Audiohardware und Audioschaltungen) und Software (z. B. Treiber, Codecs) repräsentiert, die mit dem Bereitstellen von Audiofunktionen an die Rechenvorrichtung assoziiert sind. Audiofunktionen können Lautsprecher- oder Kopfhörerausgabe sowie Mikrofoneingabe einschließen. Vorrichtungen für derartige Funktionen können in das System 900 integriert oder mit dem System 900 verbunden werden. In einem Beispiel interagiert ein Benutzer mit dem System 900, indem Audiobefehle bereitgestellt werden, die vom Prozessor 910 empfangen und verarbeitet werden.
  • Das Anzeigesubsystem 930 repräsentiert Hardware (z. B. Anzeigevorrichtungen) und Softwarekomponenten (z. B. Treiber), die eine visuelle Anzeige zur Präsentation für einen Benutzer bereitstellen. In einem Beispiel schließt die Anzeige taktile Komponenten oder Berührungsbildschirmelemente ein, damit ein Benutzer mit der Rechenvorrichtung interagieren kann. Das Anzeigesubsystem 930 schließt eine Anzeigeschnittstelle 932 ein, die die jeweilige Bildschirm- oder Hardwarevorrichtung einschließt, die verwendet wird, um eine Anzeige an einen Benutzer bereitzustellen. In einem Beispiel schließt die Anzeigeschnittstelle 932 Logik getrennt vom Prozessor 910 ein (z. B. Grafikprozessor), um wenigstens eine gewisse Verarbeitung im Zusammenhang mit der Anzeige durchzuführen. In einem Beispiel schließt das Anzeigesubsystem 930 eine Berührungsbildschirmanzeige ein, die sowohl Ausgabe als auch Eingabe an einen Benutzer bereitstellt. In einem Beispiel schließt das Anzeigesubsystem 930 eine hochauflösende (HD, High Definition) oder ultrahochauflösende (UHD, Ultra-High Definition) Anzeige ein, die einem Benutzer eine Ausgabe liefert. In einem Beispiel schließt das Anzeigesubsystem eine Berührungsbildschirmanzeige ein oder steuert diese an. In einem Beispiel generiert das Anzeigesubsystem 930 Anzeigeinformationen basierend auf Daten, die im Speicher gespeichert sind, oder basierend auf Operationen, die vom Prozessor 910 ausgeführt werden, oder bei dem.
  • Die E/A-Steuerung 940 repräsentiert Hardwarevorrichtungen und Softwarekomponenten im Zusammenhang mit der Interaktion mit einem Benutzer. Die E/A-Steuerung 940 kann arbeiten, um Hardware zu verwalten, die Teil des Audiosubsystems 920 oder Anzeigesubsystems 930 oder beides ist. Zusätzlich veranschaulicht die E/A-Steuerung 940 einen Verbindungspunkt für zusätzliche Vorrichtungen, die sich mit dem System 900 verbinden, über die ein Benutzer mit dem System interagieren könnte. Beispielsweise könnten Vorrichtungen, die an das System 900 angeschlossen werden können, Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Videosysteme oder eine andere Anzeigevorrichtung, Tastatur- oder Tastenfeldvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit speziellen Anwendungen, wie beispielsweise Kartenleser oder andere Vorrichtungen, einschließen.
  • Wie oben erwähnt, kann die E/A-Steuerung 940 mit dem Audiosubsystem 920 oder Anzeigesubsystem 930 oder beidem interagieren. Beispielsweise kann eine Eingabe über ein Mikrofon oder eine andere Audiovorrichtung eine Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen des Systems 900 bereitstellen. Zusätzlich kann Audioausgabe anstelle von oder zusätzlich zur Anzeigeausgabe bereitgestellt werden. In einem anderen Beispiel, falls das Anzeigesubsystem einen Berührungsbildschirm einschließt, fungiert die Anzeigevorrichtung auch als eine Eingabevorrichtung, die wenigstens teilweise von der E/A-Steuerung 940 verwaltet werden kann. Es können auch zusätzliche Tasten oder Schalter auf dem System 900 vorhanden sein, um E/A-Funktionen bereitzustellen, die von der E/A-Steuerung 940 verwaltet werden.
  • In einem Beispiel verwaltet die E/A-Steuerung 940 Vorrichtungen, wie beispielsweise Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren, Gyroskope, ein globales Positionierungssystem (GPS) oder andere Hardware, die im System 900 eingeschlossen sein können, oder die Sensoren 912. Die Eingabe kann Teil der direkten Benutzerinteraktion sowie Bereitstellen von umgebungsspezifischer Eingabe in das System sein, um Operationen (wie beispielsweise Filtern in Bezug auf Rauschen, Anpassen von Anzeigen in Bezug auf Helligkeitsdetektion, Anwenden eines Blitzes bei einer Kamera oder andere Merkmale) zu beeinflussen.
  • In einem Beispiel schließt das System 900 das Power-Management 950 ein, das den Batteriestromverbrauch, Aufladen der Batterie und Merkmale im Zusammenhang mit der Stromsparoperation verwaltet. Das Power-Management 950 verwaltet den Strom von der Stromquelle 952, die die Komponenten des Systems 900 mit Strom versorgt. In einem Beispiel schließt die Stromquelle 952 einen Wechselstrom-Gleichstrom-Adapter (AC to DC, Alternating Current to Direct Current) zum Einstecken in eine Wandsteckdose ein. Eine derartige Wechselstromleistung kann erneuerbare Energie (z. B. Solarstrom, bewegungsbasierter Strom) sein. In einem Beispiel schließt die Stromquelle 952 nur Gleichstromleistung ein, die von einer Gleichstromleistungsquelle bereitgestellt werden kann, wie beispielsweise einem externen Wechselstrom-Gleichstrom-Wandler. In einem Beispiel schließt die Stromquelle 952 drahtlose Ladehardware zum Laden über die Nähe zu einem Ladefeld ein. In einem Beispiel kann die Stromquelle 952 eine interne Batterie oder Brennstoffzellenquelle einschließen.
  • Das Speichersubsystem 960 schließt die Speichervorrichtung(en) 962 zum Speichern von Informationen im System 900 ein. Das Speichersubsystem 960 kann nichtflüchtige (Zustand ändert sich nicht, falls die Stromversorgung zur Speichervorrichtung unterbrochen ist) oder flüchtige (Zustand ist unbestimmt, falls die Stromversorgung zur Speichervorrichtung unterbrochen ist) Speichervorrichtungen oder eine Kombination einschließen. Der Speicher 960 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (ob langfristig oder temporär) im Zusammenhang mit dem Ausführen der Anwendungen und Funktionen des Systems 900 speichern. In einem Beispiel schließt das Speichersubsystem 960 eine Speichersteuerung 964 ein (die auch als Teil der Steuerung des Systems 900 betrachtet werden könnte und potenziell als Teil des Prozessors 910 betrachtet werden könnte). Die Speichersteuerung 964 schließt einen Scheduler ein, um Befehle zu generieren und auszugeben, um den Zugriff auf die Speichervorrichtung 962 zu steuern.
  • Die Konnektivität 970 schließt Hardwarevorrichtungen (z. B. drahtlose oder drahtgebundene Verbinder und Kommunikationshardware oder eine Kombination von drahtloser und drahtgebundener Hardware) und Softwarekomponenten (z. B. Treiber, Protokollstapel) ein, um zu ermöglichen, dass das System 900 mit externen Vorrichtungen kommuniziert. Die externen Vorrichtungen könnten separate Vorrichtungen, wie beispielsweise andere Rechenvorrichtungen, drahtlose Zugangspunkte oder Basisstationen, sowie Peripheriegeräte, wie beispielsweise Headsets, Drucker oder andere Vorrichtungen, sein. In einem Beispiel tauscht das System 900 Daten mit einer externen Vorrichtung zur Speicherung im Speicher oder zur Anzeige auf einer Anzeigevorrichtung aus. Die ausgetauschten Daten können Daten einschließen, die im Speicher gespeichert werden sollen, oder Daten, die bereits im Speicher gespeichert sind, um Daten zu lesen, zu schreiben oder zu bearbeiten.
  • Die Konnektivität 970 kann mehrere verschiedene Typen von Konnektivität einschließen. Verallgemeinernd ist das System 900 mit zellulärer Konnektivität 972 und drahtloser Konnektivität 974 veranschaulicht. Die zelluläre Konnektivität 972 bezieht sich allgemein auf zelluläre Netzkonnektivität, die von drahtlosen Trägern bereitgestellt wird, wie beispielsweise über GSM (Global System for Mobile Communications) oder Varianten oder Ableitungen, CDMA (Code Division Multiple Access) oder Varianten oder Ableitungen, TDM (Time Division Multiplexing) oder Variationen oder Ableitungen, LTE (Long Term Evolution - auch als „4G“ bezeichnet) oder andere zelluläre Servicestandards bereitgestellt wird. Die drahtlose Konnektivität 974 bezieht sich auf drahtlose Konnektivität, die nicht zellulär ist, und kann Personal Area Networks (wie beispielsweise Bluetooth), Local Area Networks (wie beispielsweise WiFi) oder Wide Area Networks (wie beispielsweise WiMax) oder eine andere drahtlose Kommunikation oder eine Kombination einschließen. Die drahtlose Kommunikation bezieht sich auf das Übertragen von Daten durch die Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht-festes Medium. Eine drahtgebundene Kommunikation erfolgt über ein festes Kommunikationsmedium.
  • Die peripheren Verbindungen 980 umfassen Hardwareschnittstellen und Verbinder sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) zum Herstellen von peripheren Verbindungen. Es versteht sich, dass das System 900 sowohl eine Peripherievorrichtung („zu“ 982) zu anderen Rechenvorrichtungen sein kann als auch Peripherievorrichtungen („von“ 984), die mit ihr verbunden sind, aufweisen kann. Die Vorrichtung 900 weist üblicherweise einen „Docking“-Verbinder zum Verbinden mit anderen Rechenvorrichtungen für Zwecke wie beispielsweise Verwalten (z. B. Herunterladen, Hochladen, Ändern, Synchronisieren) von Inhalt auf dem System 900 auf. Zusätzlich kann ein Docking-Verbinder dem System 900 das Verbinden mit bestimmten Peripheriegeräten ermöglichen, die dem System 900 das Steuern von Inhaltsausgabe beispielsweise an audiovisuelle oder andere Systeme ermöglicht.
  • Zusätzlich zu einem proprietären Docking-Verbinder oder anderer proprietärer Verbindungshardware kann das System 900 periphere Verbindungen 980 über verbreitete oder standardbasierte Verbinder herstellen. Verbreitete Typen können einen Universal-Serial-Bus(USB)-Konnektor (der eine beliebige von einer Anzahl von verschiedenen Hardwareschnittstellen einschließen kann), DisplayPort einschließlich MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI) oder einen anderen Typ einschließen.
  • Im Allgemeinen beinhaltet eine Dynamic-Random-Access-Memory-Vorrichtung (DRAM-Vorrichtung, dynamischer Direktzugriffsspeicher) in Bezug auf die Beschreibungen hierin in einem Beispiel: ein Speicherarray mit mehreren Speicherreihen; und Eingabe/Ausgabe(E/A)-Hardware zum Empfangen von Befehlen von einer assoziierten Speichersteuerung, einschließlich mehrerer Aktivierungsbefehle und mehrerer Refresh-Befehle, wobei die Speichersteuerung als Reaktion auf das Empfangen einer Schwellenwertanzahl von Aktivierungsbefehlen einen überschüssigen Refresh-Befehl senden soll, der eine Anzahl von Refresh-Befehlen überschreitet, die zum Refreshing der Reihen innerhalb eines Refresh-Fensters erforderlich sind, wobei die DRAM-Vorrichtung einen Rowhammer-Refresh als Reaktion auf den überschüssigen Refresh-Befehl durchführen soll, um potenzielle Opferreihen einer potenziellen Angreiferreihe aufzufrischen.
  • In einem Beispiel umfasst das Empfangen der Schwellenwertanzahl von Aktivierungen das Empfangen der Schwellenwertanzahl von Aktivierungen innerhalb eines speziellen Zeitfensters. In einem Beispiel umfasst das Empfangen der Schwellenwertanzahl von Aktivierungen innerhalb des speziellen Zeitfensters ein Schiebefenster, wobei jeder Aktivierungsbefehl eine Zählung erhöht und eine Zeitdauer die Zählung verringert. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Kanal oder pro Rank. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Bank oder pro Bankgruppe. In einem Beispiel umfasst der überschüssige Refresh-Befehl einen Refresh-Befehl mit einem Tag, um anzuzeigen, dass er für einen Rowhammer-Refresh ist.
  • Im Allgemeinen beinhaltet eine Speichersteuerung in Bezug auf die Beschreibungen hierin in einem Beispiel: einen Puffer zum Stellen von Befehlen in die Warteschlange zum Senden an eine Speichervorrichtung mit mehreren Speicherreihen; einen Zähler zum Verfolgen einer Anzahl von Aktivierungsbefehlen an die Speichervorrichtung; und Eingabe/Ausgabe(E/A)-Hardware zum Senden der Befehle an die Speichervorrichtung, einschließlich mehrerer Aktivierungsbefehle und mehrerer Refresh-Befehle, wobei die E/A-Hardware als Reaktion auf das Detektieren einer Schwellenwertanzahl von Aktivierungsbefehlen einen überschüssigen Refresh-Befehl senden soll, der eine Anzahl von Refresh-Befehlen überschreitet, die zum Refreshing der Reihen innerhalb eines Refresh-Fensters erforderlich sind, wobei der überschüssige Refresh-Befehl auslösen soll, dass die Speichervorrichtung einen Rowhammer-Refresh durchführt, um potenzielle Opferreihen einer potenziellen Angreiferreihe aufzufrischen.
  • In einem Beispiel umfasst das Detektieren der Schwellenwertanzahl von Aktivierungen das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb eines speziellen Zeitfensters. In einem Beispiel umfasst das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb des speziellen Zeitfensters ein Schiebefenster, wobei jeder Aktivierungsbefehl den Zähler erhöht und eine Zeitdauer den Zähler verringert. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Kanal oder pro Rank mehrerer Speichervorrichtungen einschließlich der Speichervorrichtung. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Bank oder pro Bankgruppe der Speichervorrichtung. In einem Beispiel umfasst der überschüssige Refresh-Befehl einen Refresh-Befehl mit einem Tag, um anzuzeigen, dass er für einen Rowhammer-Refresh ist.
  • Im Allgemeinen beinhaltet ein System in Bezug auf die Beschreibungen hierin in einem Beispiel: mehrere Dynamic-Random-Access-Memory-Vorrichtungen (DRAM-Vorrichtungen, dynamischer Direktzugriffsspeicher) mit mehreren Speicherreihen; eine Speichersteuerung, die mit den mehreren DRAM-Vorrichtungen gekoppelt ist, wobei die Speichersteuerung einen Zähler einschließt, um eine Anzahl von Aktivierungsbefehlen an die Speichervorrichtungen zu verfolgen; und Eingabe/Ausgabe(E/A)-Hardware zum Senden mehrerer Befehle an die Speichervorrichtungen, einschließlich mehrerer Aktivierungsbefehle und mehrerer Refresh-Befehle, wobei die E/A-Hardware als Reaktion auf das Detektieren einer Schwellenwertanzahl von Aktivierungsbefehlen einen überschüssigen Refresh-Befehl senden soll, der eine Anzahl von Refresh-Befehlen überschreitet, die zum Refreshing der Reihen innerhalb eines Refresh-Fensters erforderlich sind, wobei der überschüssige Refresh-Befehl auslösen soll, dass eine DRAM-Vorrichtung einen Rowhammer-Refresh durchführt, um potenzielle Opferreihen einer potenziellen Angreiferreihe aufzufrischen.
  • In einem Beispiel umfasst das Detektieren der Schwellenwertanzahl von Aktivierungen das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb eines speziellen Zeitfensters. In einem Beispiel umfasst das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb des speziellen Zeitfensters ein Schiebefenster, wobei jeder Aktivierungsbefehl den Zähler erhöht und eine Zeitdauer den Zähler verringert. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Kanal oder pro Rank der DRAM-Vorrichtungen. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro DRAM-Vorrichtung. In einem Beispiel umfasst die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Bank oder pro Bankgruppe einer speziellen DRAM-Vorrichtung. In einem Beispiel umfasst der überschüssige Refresh-Befehl einen Refresh-Befehl mit einem Tag, um anzuzeigen, dass er für einen Rowhammer-Refresh ist. In einem Beispiel beinhaltet das System einen oder mehrere von: einer Hostprozessorvorrichtung, die mit der Speichersteuerung gekoppelt ist; einer Anzeige, die kommunikativ mit einem Hostprozessor gekoppelt ist; einer Netzschnittstelle, die kommunikativ mit einem Hostprozessor gekoppelt ist; oder einer Batterie zur Stromversorgung des Systems.
  • Flussdiagramme, wie hierin veranschaulicht, stellen Beispiele von Sequenzen verschiedener Prozessaktionen bereit. Die Flussdiagramme können Operationen anzeigen, die von einer Software- oder Firmwareroutine ausgeführt werden sollen, sowie physikalische Operationen. Ein Flussdiagramm kann ein Beispiel der Implementierung von Zuständen eines endlichen Zustandsautomaten (FSM, Finite State Machine) veranschaulichen, der in Hardware und/oder Software implementiert werden kann. Obwohl in einer bestimmten Sequenz oder Reihenfolge gezeigt, kann die Reihenfolge der Aktionen modifiziert werden, sofern nicht anders angegeben. Somit sollten die veranschaulichten Darstellungen nur als Beispiele verstanden werden, und der Prozess kann in einer anderen Reihenfolge durchgeführt werden, und einige Aktionen können parallel durchgeführt werden. Zusätzlich können eine oder mehrere Aktionen weggelassen werden; daher führen nicht alle Implementierungen alle Aktionen durch.
  • Soweit verschiedene Operationen oder Funktionen hierin beschrieben werden, können sie als Softwarecode, Anweisungen, Konfiguration und/oder Daten beschrieben oder definiert sein. Der Inhalt kann direkt ausführbar („Objekt“- oder „ausführbare“ Form), ein Quellcode oder ein Differenzcode („Delta“- oder „Patch“-Code) sein. Der Softwareinhalt von dem, was hierin beschrieben wird, kann über einen Herstellungsartikel mit dem darauf gespeicherten Inhalt oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle, um Daten über die Kommunikationsschnittstelle zu senden, bereitgestellt sein. Ein maschinenlesbares Speicherungsmedium kann eine Maschine veranlassen, die beschriebenen Funktionen oder Operationen durchzuführen, und schließt jeden Mechanismus ein, der Informationen in einer Form speichert, die durch eine Maschine (z. B. Rechenvorrichtung, elektronisches System usw.) zugänglich ist, wie beispielsweise aufzeichenbare/nicht aufzeichenbare Medien (z. B. Nur-Lese-Speicher (ROM, Read-Only Memory), Direktzugriffsspeicher (RAM, Random Access Memory), Magnetplattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speicher-Vorrichtungen usw.). Eine Kommunikationsschnittstelle schließt einen beliebigen Mechanismus ein, der über eine Schnittstelle mit einem beliebigen von einem festverdrahteten, drahtlosen, optischen usw. Medium verbunden ist, um mit einer anderen Vorrichtung zu kommunizieren, wie beispielsweise eine Speicherbusschnittstelle, eine Prozessorbusschnittstelle, eine Internetverbindung, eine Plattensteuerung usw. Die Kommunikationsschnittstelle kann durch Bereitstellen von Konfigurationsparametern und/oder Senden von Signalen konfiguriert sein, um die Kommunikationsschnittstelle vorzubereiten, um ein Datensignal bereitzustellen, das den Softwareinhalt beschreibt. Auf die Kommunikationsschnittstelle kann über einen oder mehrere Befehle oder Signale, die an die Kommunikationsschnittstelle gesendet werden, zugegriffen werden.
  • Verschiedene hierin beschriebene Komponenten können ein Mittel zum Durchführen der beschriebenen Operationen oder Funktionen sein. Jede hierin beschriebene Komponente beinhaltet Software, Hardware oder eine Kombination davon. Die Komponenten können als Softwaremodule, Hardwaremodule, Spezialzweckhardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs, Application Specific Integrated Circuits), digitale Signalprozessoren (DSPs) usw.), eingebettete Steuerungen, festverdrahtete Schaltungen usw. implementiert sein.
  • Neben dem, was hierin beschrieben ist, können verschiedene Modifikationen an dem, was offenbart wird, und an Implementierungen der Erfindung durchgeführt werden, ohne von ihrem Schutzbereich abzuweichen. Daher sollten die Veranschaulichungen und Beispiele hierin in einem veranschaulichenden und nicht in einem einschränkenden Sinne ausgelegt werden. Der Schutzbereich der Erfindung sollte nur durch Bezugnahme auf die Ansprüche, die folgen, bemessen werden.

Claims (20)

  1. Dynamic-Random-Access-Memory-Vorrichtung (DRAM-Vorrichtung, dynamischer Direktzugriffsspeicher), umfassend: ein Speicherarray mit mehreren Speicherreihen; und Eingabe/Ausgabe(E/A)-Hardware zum Empfangen von Befehlen von einer assoziierten Speichersteuerung, einschließlich mehrerer Aktivierungsbefehle und mehrerer Refresh-Befehle, wobei die Speichersteuerung als Reaktion auf das Empfangen einer Schwellenwertanzahl von Aktivierungsbefehlen einen überschüssigen Refresh-Befehl senden soll, der eine Anzahl von Refresh-Befehlen überschreitet, die zum Refreshing der Reihen innerhalb eines Refresh-Fensters erforderlich sind, wobei die DRAM-Vorrichtung einen Rowhammer-Refresh als Reaktion auf den überschüssigen Refresh-Befehl durchführen soll, um potenzielle Opferreihen einer potenziellen Angreiferreihe aufzufrischen.
  2. DRAM-Vorrichtung nach Anspruch 1, wobei das Empfangen der Schwellenwertanzahl von Aktivierungen das Empfangen der Schwellenwertanzahl von Aktivierungen innerhalb eines speziellen Zeitfensters umfasst.
  3. DRAM-Vorrichtung nach Anspruch 2, wobei das Empfangen der Schwellenwertanzahl von Aktivierungen innerhalb des speziellen Zeitfensters ein Schiebefenster umfasst, wobei jeder Aktivierungsbefehl eine Zählung erhöht und eine Zeitdauer die Zählung verringert.
  4. DRAM-Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Kanal oder pro Rank umfasst.
  5. DRAM-Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Bank oder pro Bankgruppe umfasst.
  6. DRAM-Vorrichtung nach einem der Ansprüche 1 bis 5, wobei der überschüssige Refresh-Befehl einen Refresh-Befehl mit einem Tag umfasst, um anzuzeigen, dass er für einen Rowhammer-Refresh ist.
  7. Speichersteuerung, umfassend: einen Puffer zum Stellen von Befehlen in die Warteschlange zum Senden an eine Speichervorrichtung mit mehreren Speicherreihen; einen Zähler zum Verfolgen einer Anzahl von Aktivierungsbefehlen an die Speichervorrichtung; und Eingabe/Ausgabe(E/A)-Hardware zum Senden der Befehle an die Speichervorrichtung, einschließlich mehrerer Aktivierungsbefehle und mehrerer Refresh-Befehle, wobei die E/A-Hardware als Reaktion auf das Detektieren einer Schwellenwertanzahl von Aktivierungsbefehlen einen überschüssigen Refresh-Befehl senden soll, der eine Anzahl von Refresh-Befehlen überschreitet, die zum Refreshing der Reihen innerhalb eines Refresh-Fensters erforderlich sind, wobei der überschüssige Refresh-Befehl auslösen soll, dass die Speichervorrichtung einen Rowhammer-Refresh durchführt, um potenzielle Opferreihen einer potenziellen Angreiferreihe aufzufrischen.
  8. Speichersteuerung nach Anspruch 7, wobei das Detektieren der Schwellenwertanzahl von Aktivierungen das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb eines speziellen Zeitfensters umfasst.
  9. Speichersteuerung nach Anspruch 8, wobei das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb des speziellen Zeitfensters ein Schiebefenster umfasst, wobei jeder Aktivierungsbefehl den Zähler erhöht und eine Zeitdauer den Zähler verringert.
  10. Speichersteuerung nach einem der Ansprüche 7 bis 9, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Kanal oder pro Rank von mehreren Speichervorrichtungen einschließlich der Speichervorrichtung umfasst.
  11. Speichersteuerung nach einem der Ansprüche 7 bis 9, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Bank oder pro Bankgruppe derSpeichervorrichtung umfasst.
  12. Speichersteuerung nach einem der Ansprüche 7 bis 11, wobei der überschüssige Refresh-Befehl einen Refresh-Befehl mit einem Tag umfasst, um anzuzeigen, dass er für einen Rowhammer-Refresh ist.
  13. System mit Speichervorrichtungen, umfassend: mehrere Dynamic-Random-Access-Memory-Vorrichtungen (DRAM-Vorrichtungen, dynamischer Direktzugriffsspeicher) mit mehreren Speicherreihen; eine Speichersteuerung, die mit den mehreren DRAM-Vorrichtungen gekoppelt ist, wobei die Speichersteuerung Folgendes enthält: einen Zähler zum Verfolgen einer Anzahl von Aktivierungsbefehlen an die Speichervorrichtungen; und Eingabe/Ausgabe(E/A)-Hardware zum Senden mehrerer Befehle an die Speichervorrichtungen, einschließlich mehrerer Aktivierungsbefehle und mehrerer Refresh-Befehle, wobei die E/A-Hardware als Reaktion auf das Detektieren einer Schwellenwertanzahl von Aktivierungsbefehlen einen überschüssigen Refresh-Befehl senden soll, der eine Anzahl von Refresh-Befehlen überschreitet, die zum Refreshing der Reihen innerhalb eines Refresh-Fensters erforderlich sind, wobei der überschüssige Refresh-Befehl auslösen soll, dass eine DRAM-Vorrichtung einen Rowhammer-Refresh durchführt, um potenzielle Opferreihen einer potenziellen Angreiferreihe aufzufrischen.
  14. System nach Anspruch 13, wobei das Detektieren der Schwellenwertanzahl von Aktivierungen das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb eines speziellen Zeitfensters umfasst.
  15. System nach Anspruch 14, wobei das Detektieren der Schwellenwertanzahl von Aktivierungen innerhalb des speziellen Zeitfensters ein Schiebefenster umfasst, wobei jeder Aktivierungsbefehl den Zähler erhöht und eine Zeitdauer den Zähler verringert.
  16. System nach einem der Ansprüche 13 bis 15, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Kanal oder pro Rank von DRAM-Vorrichtungen umfasst.
  17. System nach einem der Ansprüche 13 bis 15, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro DRAM-Vorrichtung umfasst.
  18. System nach einem der Ansprüche 13 bis 15, wobei die Schwellenwertanzahl von Aktivierungsbefehlen eine Schwellenwertanzahl von Aktivierungsbefehlen pro Bank oder pro Bankgruppe einer speziellen DRAM-Vorrichtung umfasst.
  19. System nach einem der Ansprüche 13 bis 18, wobei der überschüssige Refresh-Befehl einen Refresh-Befehl mit einem Tag umfasst, um anzuzeigen, dass er für einen Rowhammer-Refresh ist.
  20. System nach einem der Ansprüche 13 bis 19, ferner umfassend eines oder mehrere von: einer Hostprozessorvorrichtung, die mit der Speichersteuerung gekoppelt ist; einer Anzeige, die kommunikativ mit einem Hostprozessor gekoppelt ist; einer Netzschnittstelle, die kommunikativ mit einem Hostprozessor gekoppelt ist; oder einer Batterie zur Stromversorgung des Systems.
DE102020104367.8A 2019-03-29 2020-02-19 Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation Pending DE102020104367A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/370,578 US10950288B2 (en) 2019-03-29 2019-03-29 Refresh command control for host assist of row hammer mitigation
US16/370578 2019-03-29

Publications (1)

Publication Number Publication Date
DE102020104367A1 true DE102020104367A1 (de) 2020-10-01

Family

ID=67299403

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020104367.8A Pending DE102020104367A1 (de) 2019-03-29 2020-02-19 Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation

Country Status (5)

Country Link
US (4) US10950288B2 (de)
JP (2) JP7456083B2 (de)
KR (2) KR20200115115A (de)
CN (1) CN111755047A (de)
DE (1) DE102020104367A1 (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9324398B2 (en) 2013-02-04 2016-04-26 Micron Technology, Inc. Apparatuses and methods for targeted refreshing of memory
US9047978B2 (en) 2013-08-26 2015-06-02 Micron Technology, Inc. Apparatuses and methods for selective row refreshes
JP2015219938A (ja) 2014-05-21 2015-12-07 マイクロン テクノロジー, インク. 半導体装置
JP2017182854A (ja) 2016-03-31 2017-10-05 マイクロン テクノロジー, インク. 半導体装置
FR3066842B1 (fr) * 2017-05-24 2019-11-08 Upmem Logique de correction de row hammer pour dram avec processeur integre
US10580475B2 (en) 2018-01-22 2020-03-03 Micron Technology, Inc. Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device
US11152050B2 (en) 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10726903B2 (en) * 2018-09-21 2020-07-28 Nanya Technology Corporation Row-determining circuit, DRAM, and method for refreshing a memory array
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
WO2020117686A1 (en) 2018-12-03 2020-06-11 Micron Technology, Inc. Semiconductor device performing row hammer refresh operation
US10957377B2 (en) 2018-12-26 2021-03-23 Micron Technology, Inc. Apparatuses and methods for distributed targeted refresh operations
US10770127B2 (en) 2019-02-06 2020-09-08 Micron Technology, Inc. Apparatuses and methods for managing row access counts
US11043254B2 (en) 2019-03-19 2021-06-22 Micron Technology, Inc. Semiconductor device having cam that stores address signals
US10950288B2 (en) * 2019-03-29 2021-03-16 Intel Corporation Refresh command control for host assist of row hammer mitigation
US11264096B2 (en) 2019-05-14 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits
US11158364B2 (en) 2019-05-31 2021-10-26 Micron Technology, Inc. Apparatuses and methods for tracking victim rows
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11139015B2 (en) * 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US11386946B2 (en) 2019-07-16 2022-07-12 Micron Technology, Inc. Apparatuses and methods for tracking row accesses
US10943636B1 (en) 2019-08-20 2021-03-09 Micron Technology, Inc. Apparatuses and methods for analog row access tracking
US10964378B2 (en) 2019-08-22 2021-03-30 Micron Technology, Inc. Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation
US11200942B2 (en) 2019-08-23 2021-12-14 Micron Technology, Inc. Apparatuses and methods for lossy row access counting
US10916292B1 (en) * 2019-08-28 2021-02-09 Micron Technology, Inc. Performing a refresh operation based on system characteristics
KR20210114639A (ko) * 2020-03-11 2021-09-24 에스케이하이닉스 주식회사 메모리, 메모리 시스템 및 메모리의 동작 방법
US11222685B2 (en) * 2020-05-15 2022-01-11 Advanced Micro Devices, Inc. Refresh management for DRAM
US11561862B2 (en) 2020-05-29 2023-01-24 Advanced Micro Devices, Inc. Refresh management for DRAM
US11120860B1 (en) * 2020-08-06 2021-09-14 Micron Technology, Inc. Staggering refresh address counters of a number of memory devices, and related methods, devices, and systems
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
CN114388049B (zh) * 2020-10-16 2023-09-12 长鑫存储技术有限公司 存储器测试方法
US20220129200A1 (en) * 2020-10-26 2022-04-28 Qualcomm Incorporated Dram with quick random row refresh for rowhammer mitigation
US11947840B2 (en) * 2020-10-30 2024-04-02 Micron Technology, Inc. Inter-die refresh control
US11410715B2 (en) 2020-11-06 2022-08-09 Micron Technology, Inc. Apparatus with refresh management mechanism
KR20220062843A (ko) * 2020-11-09 2022-05-17 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11474746B2 (en) * 2020-12-10 2022-10-18 Advanced Micro Devices, Inc. Refresh management for DRAM
US11790975B2 (en) 2020-12-10 2023-10-17 SK Hynix Inc. Memory controller and memory system
KR102385443B1 (ko) 2020-12-21 2022-04-12 서울대학교 산학협력단 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법
US11482275B2 (en) 2021-01-20 2022-10-25 Micron Technology, Inc. Apparatuses and methods for dynamically allocated aggressor detection
US11972788B2 (en) * 2021-03-11 2024-04-30 Micron Technology, Inc. Apparatuses, systems, and methods for controller directed targeted refresh operations based on sampling command
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11869567B2 (en) 2021-03-15 2024-01-09 Changxin Memory Technologies, Inc. Refresh control circuit and memory
EP4191592A1 (de) 2021-03-15 2023-06-07 Changxin Memory Technologies, Inc. Auffrischungssteuerschaltung und speicher
CN112786087B (zh) * 2021-03-15 2022-04-26 长鑫存储技术有限公司 刷新电路及存储器
US11854595B2 (en) 2021-03-15 2023-12-26 Changxin Memory Technologies, Inc. Refresh circuit and memory
FR3121262A1 (fr) * 2021-03-29 2022-09-30 Upmem Dispositif mémoire et procédé de protection d’un dispositif mémoire de l’effet de martelage d’un rang
US11955159B2 (en) * 2021-07-20 2024-04-09 Samsung Electronics Co., Ltd. Semiconductor memory device and memory system including the same
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
US20230114414A1 (en) * 2021-09-28 2023-04-13 Advanced Micro Devices, Inc. Method and apparatus for protecting memory devices via a synergic approach
KR20230051835A (ko) 2021-10-12 2023-04-19 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
KR20230051873A (ko) 2021-10-12 2023-04-19 삼성전자주식회사 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈
CN116153357A (zh) * 2021-11-19 2023-05-23 长鑫存储技术有限公司 一种锤击刷新方法、锤击刷新电路及半导体存储器
EP4210059A4 (de) 2021-11-19 2023-08-09 Changxin Memory Technologies, Inc. Rowhammer-auffrischverfahren, rowhammer-auffrischschaltung und halbleiterspeicher
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking
KR20230080776A (ko) 2021-11-30 2023-06-07 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20230088042A (ko) * 2021-12-10 2023-06-19 삼성전자주식회사 메모리 장치
US20230206989A1 (en) * 2021-12-29 2023-06-29 Micron Technology, Inc. Apparatuses and methods for row hammer counter mat
US20230244793A1 (en) * 2022-01-27 2023-08-03 Micron Technology, Inc. Row access strobe (ras) clobber and row hammer failures using a deterministic protocol
US20230352075A1 (en) * 2022-04-28 2023-11-02 Micron Technology, Inc. Apparatuses and methods for access based refresh operations
US20230359361A1 (en) * 2022-05-05 2023-11-09 Micron Technology, Inc. Frequency regulation for memory management commands
KR20230163172A (ko) * 2022-05-23 2023-11-30 에스케이하이닉스 주식회사 로우해머링추적동작을 수행하기 위한 반도체시스템
US11935623B2 (en) * 2022-06-28 2024-03-19 Montage Technology (Kunshan) Co. Apparatus for controlling access to a memory device and memory system comprising the same
US20240087639A1 (en) * 2022-09-08 2024-03-14 Qualcomm Incorporated Dynamic rowhammer management
US11948656B1 (en) * 2022-09-21 2024-04-02 Micron Technology, Inc. Counter management for memory systems
US11922031B1 (en) * 2022-09-23 2024-03-05 Micron Technology, Inc. Apparatus with directed refresh management mechanism
CN115357952B (zh) * 2022-10-18 2023-02-03 合肥奎芯集成电路设计有限公司 针对动态存储器的行锤攻击防御方法和装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9236110B2 (en) 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US9032141B2 (en) 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9286964B2 (en) 2012-12-21 2016-03-15 Intel Corporation Method, apparatus and system for responding to a row hammer event
US9324398B2 (en) 2013-02-04 2016-04-26 Micron Technology, Inc. Apparatuses and methods for targeted refreshing of memory
KR102086460B1 (ko) 2013-06-28 2020-03-10 에스케이하이닉스 주식회사 반도체 장치 및 그의 리프레쉬 방법
WO2015030751A1 (en) 2013-08-28 2015-03-05 Hewlett-Packard Development Company, L.P. Refresh rate adjust
JP5983665B2 (ja) 2014-03-17 2016-09-06 日本電気株式会社 アクセス回数カウント装置、メモリシステム、および、アクセス回数カウント方法
US9431085B2 (en) * 2014-03-28 2016-08-30 Synopsys, Inc. Most activated memory portion handling
US20170110178A1 (en) 2015-09-17 2017-04-20 Intel Corporation Hybrid refresh with hidden refreshes and external refreshes
US9812185B2 (en) 2015-10-21 2017-11-07 Invensas Corporation DRAM adjacent row disturb mitigation
KR102329673B1 (ko) * 2016-01-25 2021-11-22 삼성전자주식회사 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
CN108885892B (zh) 2016-04-08 2022-05-10 超极存储器股份有限公司 半导体存储装置
KR20180064940A (ko) * 2016-12-06 2018-06-15 삼성전자주식회사 해머 리프레쉬 동작을 수행하는 메모리 시스템
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
US10192608B2 (en) * 2017-05-23 2019-01-29 Micron Technology, Inc. Apparatuses and methods for detection refresh starvation of a memory
US10818337B2 (en) * 2017-08-02 2020-10-27 Zentel Japan Corporation Semiconductor memory device for preventing occurrence of row hammer issue
US20190096472A1 (en) 2017-09-25 2019-03-28 Intel Corporation Memory chip having reduced baseline refresh rate with additional refreshing for weak cells
US10410710B2 (en) 2017-12-27 2019-09-10 Micron Technology, Inc. Systems and methods for performing row hammer refresh operations in redundant memory
KR102358563B1 (ko) * 2018-05-09 2022-02-04 삼성전자주식회사 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
US10825534B2 (en) 2018-10-26 2020-11-03 Intel Corporation Per row activation count values embedded in storage cell array storage cells
US10685696B2 (en) * 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
US10636476B2 (en) 2018-11-01 2020-04-28 Intel Corporation Row hammer mitigation with randomization of target row selection
US10969997B2 (en) 2018-11-07 2021-04-06 Intel Corporation Memory controller that filters a count of row activate commands collectively sent to a set of memory banks
US10950288B2 (en) * 2019-03-29 2021-03-16 Intel Corporation Refresh command control for host assist of row hammer mitigation

Also Published As

Publication number Publication date
US20190228813A1 (en) 2019-07-25
US11282561B2 (en) 2022-03-22
US11688452B2 (en) 2023-06-27
JP2020166832A (ja) 2020-10-08
US10950288B2 (en) 2021-03-16
JP2023171848A (ja) 2023-12-05
US20220189532A1 (en) 2022-06-16
US20230386548A1 (en) 2023-11-30
JP7456083B2 (ja) 2024-03-27
KR20200115115A (ko) 2020-10-07
KR20230153986A (ko) 2023-11-07
CN111755047A (zh) 2020-10-09
US11990172B2 (en) 2024-05-21
US20210151095A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
US10636476B2 (en) Row hammer mitigation with randomization of target row selection
DE112016004243T5 (de) Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen
JP2020166832A5 (de)
CN107533509B (zh) 存储器设备特定的自刷新进入和退出
US10248340B2 (en) Semiconductor apparatus, memory module and operation method thereof
DE112015003397B4 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE112006000644B4 (de) Speichereinrichtungskommunikation unter Verwendung eines Systemspeicherbusses
DE112017004268T5 (de) Befehlsbus mit doppelter datenrate
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
CN107210063A (zh) 对具有存储体分组架构的存储器设备内的存储体进行预充电和刷新
DE102020118897A1 (de) Verfahren und Vorrichtung zum Reduzieren des Leistungsverbrauchs für dieAktualisierung von Speicherbauelementen auf einem Speichermodul
DE112017004966T5 (de) Erweiterte anwendung eines fehlerprüfungs- und korrekturcodes in einem speicher
DE102021122170A1 (de) Adaptive fehlerbereinigung und fehlerbehandlung für internen speicher
CN105518784A (zh) 具有用于高可靠性操作的存储控制器的数据处理器和方法
DE102023110723A1 (de) Randomisierung von gezielten auffrischungsverwaltungs(directed refresh management - drfm)-pseudo-zielzeilenauffrischungs(pseudo target row refresh - pttr)-befehlen
DE102020132763A1 (de) Undirektionaler informationskanal zur überwachung einer drift eines bidirektionalen informationskanals
DE102022105932A1 (de) Komprimierter verbindungsstiftmit geschlossenem regelkreis
KR20210091647A (ko) 비휘발성 메모리에 대한 자동 증분 기입 카운트
DE112022000954T5 (de) Doppelabruf für Speicherdatenübertragung mit langer Burst-Länge
DE102022106020A1 (de) Anwendungsbewusste speicher-patrol-scrubbing-techniken
DE102022101639A1 (de) Dynamischer direktzugriffsspeicher (dram) mit skalierbaren metadaten

Legal Events

Date Code Title Description
R130 Divisional application to

Ref document number: 102020008261

Country of ref document: DE