DE112013003312B4 - Datenspeicher-Subsystem, Elektronisches Gerät und Verfahren zur Überwachung des "Row Hammer"-Zustands - Google Patents

Datenspeicher-Subsystem, Elektronisches Gerät und Verfahren zur Überwachung des "Row Hammer"-Zustands Download PDF

Info

Publication number
DE112013003312B4
DE112013003312B4 DE112013003312.7T DE112013003312T DE112013003312B4 DE 112013003312 B4 DE112013003312 B4 DE 112013003312B4 DE 112013003312 T DE112013003312 T DE 112013003312T DE 112013003312 B4 DE112013003312 B4 DE 112013003312B4
Authority
DE
Germany
Prior art keywords
data storage
row
accesses
access
rows
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112013003312.7T
Other languages
English (en)
Other versions
DE112013003312T5 (de
Inventor
Zvika Greenfield
Kuljit S. Bains
Theodore Z. Schoenborn
Christopher P. Mozak
John B. Halbert
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 DE112013003312T5 publication Critical patent/DE112013003312T5/de
Application granted granted Critical
Publication of DE112013003312B4 publication Critical patent/DE112013003312B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • 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/40622Partial refresh of memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein System überwacht die Datenzugriff auf bestimmte Speicherreihen, um festzustellen, ob ein Row Hammer-Zustand vorliegt. Das System kann die Speicherreihen, auf die zugegriffen wird, überwachen, um festzustellen, ob die Anzahl der Zugriffe auf irgendeine der Reihen einen Grenzwert übersteigt, der dem Risiko einer Datenschädigung in einer Speicherreihe, welche an die Reihe mit starkem Zugriff angrenzt, zugewiesen ist. Basierend auf der Überwachung kann ein Speicher-Controller festlegen, ob die Anzahl der Zugriffe auf eine Reihe den Grenzwert übersteigt, und er kann die Adressinformationen für die Reihe, deren Zugriffswert den Grenzwert erreicht, angeben.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der Erfindung beziehen sich im Allgemeinen auf das Speichermanagement, und insbesondere auf die Überwachung eines „Row Hammer“-Ereignisses.
  • HINTERGRUND
  • Mit den Fortschritten in der Computertechnologie werden die Rechengeräte kleiner und sie bieten viel mehr Verarbeitungsleistung. Darüber hinaus umfassen Sie mehr und mehr Speicher und Datenspeicher, um dem Bedarf an Programmierung und Berechnungen auf den Geräten gerecht zu werden. Die schrumpfende Größe der Geräte sowie die erhöhte Speicherkapazität wird durch die Bereitstellung von Geräten mit höherer Dichte erreicht, worin die atomaren Speichereinheiten innerhalb eines Datenspeichergeräts immer kleinere Geometrien haben.
  • Bei der neuesten Generation von höherer Dichte sind bei einigen Geräten intermittierende Störungen aufgetreten. Beispiel: Einige vorhandene DDR3-basierte Systeme haben bei hohen Arbeitsbelastungen intermittierende Störungen. Wissenschaftler haben die Störungen auf den wiederholten Zugriff auf eine einzelne Datenspeicherreihe innerhalb des Aktualisierungsfensters der Datenspeicherzelle zurückverfolgt. Beispiel: Bei einem 32-nm-Prozess liegt - wenn auf die Reihe im 64-Millisekunden-Aktualisierungsfenster 550 k Mal oder mehr zugegriffen wird, bei der Word-Leitung, welche an die Reihe, auf die zugegriffen wird, physisch angrenzt, eine sehr hohe Wahrscheinlichkeit für eine Datenschädigung vor. Das „Row Hammering“ (Reihenhämmern) bzw. der wiederholte Zugriff auf eine einzelne Reihe kann zu einer Migration über das gesamte Passgate hinweg führen. Die durch den wiederholten Zugriff auf eine Reihe verursachten Leck- und Parasitenströme bewirken eine Datenschädigung in einer physisch benachbarten Reihe, auf die nicht zugegriffen wird. Das Störungsproblem wurde von der DRAM-Industrie, in der es am häufigsten auftritt, als „Row Hammer“ (Reihenhammer) oder „1 Row Disturb“ (Störung der ersten Reihe)-Problem bezeichnet.
  • Die WO 2012/ 074 724 A1 offenbart DRAM-Architekturen und Auffrischungscontroller, die eine Planung einer opportunistischen Auffrischung einer DRAM-Vorrichtung gleichzeitig mit einem normalen Zeilenaktivierungsbefehl ermöglichen, der an die DRAM-Vorrichtung gerichtet ist. Jeder Aktivierungsbefehl bietet eine Gelegenheit, eine andere unabhängige Reihe (d. h. eine Wortleitung) innerhalb einer Speichervorrichtung ohne Planungskonflikt aufzufrischen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung betrifft ein Datenspeicher-Subsystem gemäß Patentanspruch 1, ein elektronisches Gerät gemäß Patentanspruch 10 und ein Verfahren gemäß Patentanspruch 17.
  • Figurenliste
  • Die folgende Beschreibung beinhaltet eine Erörterung von Figuren mit Veranschaulichungen, die beispielhafte Implementierungen von Ausführungsformen der Erfindung darstellen.
    • 1 ist ein Blockdiagramm einer Ausführungsform eines Systems, welches auf einen Row Hammer-Zustand überwacht.
    • 2 ist ein Blockdiagramm einer Ausführungsform eines Systems, welches auf einen Row Hammer-Zustand basierend auf Datenspeicher-Controller-Zugriffsbefehlen überwacht.
    • 3 ist ein Blockdiagramm einer Ausführungsform eines Systems, welches ein Zugriffsprotokoll für die Überwachung auf einen Row Hammer-Zustand nutzt.
    • 4 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zur Überwachung auf einen Row Hammer-Zustand eines Datenspeichergeräts.
    • 5 ist ein Blockdiagramm einer Ausführungsform eines Rechensystems, in welches die Row Hammer-Überwachung implementiert werden kann.
    • 6 ist ein Blockdiagramm einer Ausführungsform eines mobilen Geräts, in welches die Row Hammer-Überwachung implementiert werden kann.
  • Beschreibungen von bestimmten Details und Implementierungen folgen, einschließlich einer Beschreibung der Figuren, die einige oder alle Ausführungsformen, die nachstehend beschrieben werden, darstellen können, und auch andere potenzielle Ausführungsformen oder Implementierungen der erfinderischen, hierin vorgestellten Konzepte erörtern.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie hierin beschrieben überwacht ein System die Datenzugriffe auf bestimmte Speicherreihen, um festzustellen, ob ein Row Hammer-Zustand vorliegt. Die Überwachung kann untergliedert sein in die Verfolgung des Wertes für die aktivsten Reihen, wobei nicht unbedingt jede einzelne Speicherreihe im System verfolgt wird. Das System kann die Speicherreihen, auf die zugegriffen wird, überwachen, um festzustellen, ob die Anzahl der Zugriffe auf irgendeine der Reihen einen Grenzwert übersteigt, der dem Risiko einer Datenschädigung in einer Speicherreihe, welche an die Reihe mit starkem Zugriff angrenzt, zugewiesen ist. Der Grenzwert ist der Grenzwert für den Row Hammer-Zustand. Basierend auf der Überwachung kann ein Speicher-Controller festlegen, ob die Anzahl der Zugriffe auf eine Reihe den Grenzwert übersteigt, und er kann die Adressinformationen für die Reihe, deren Zugriffswert den Grenzwert erreicht, angeben.
  • Eine bestimmte Datenspeichergeräte-Reihe kann das Ziel von wiederholten Zugriffen sein. Wenn innerhalb eines Zeitgrenzwertes wiederholt auf eine Reihe zugegriffen wird (ein Vorgang, der auch als „gehämmert“ oder ein „Row Hammer-Ereignis“ bezeichnet wird), kann eine physisch benachbarte Reihe bzw. können physisch benachbarte Reihen (eine „Opfer“-Reihe) eine Datenschädigung erfahren. Um das Row Hammer-Ereignis mit einer Runtime-Operation anzugehen kann der Datenspeicher-Controller die Anzahl an Aktivierungen für jede Reihe innerhalb eines Zeitfensters im Datenspeicher-Untersystem überwachen, um so festzustellen, wenn ein Row Hammer-Ereignis eintritt. In einer Ausführungsform löst der Datenspeicher-Controller eine zielgerichtete Aktualisierung einer physisch benachbarten Reihe bzw. von physisch benachbarte Reihen an die Reihe, die als Reihe mit dem Row Hammer-Ereignis („hammered“) ermittelt wird.
  • Es ist jedoch offensichtlich, dass die aktuellen Rechensysteme bis zu 8 GB Datenspeicher nutzen können, mit Projektionen von bis zu 64 GB Speicher in den Client-Geräten der Konsumenten in naher Zukunft und mit Servergeräten, einschließlich sehr viel größeren Datenspeichern. Um daher jede Speicherreihe zu überwachen, könnte der Datenspeicher-Controller beispielsweise wenigstens 1-8 Millionen Zähler überwachen müssen, wofür zwischen 3-32 MB Zähler Datenspeicher auf einer Chiplage erforderlich sind. Daher ist die direkte Überwachung (die Überwachung einer jeden Reihe separat) angesichts der Kosten untragbar.
  • Wie hierin beschrieben überwacht in einer Ausführungsform ein System nur eine Untergruppe der Speicherzugriffe. Das System kann beispielsweise so konfiguriert sein, dass die Reihen mit den meisten Zugriffen überwacht werden. Nachstehen sind weitere Einzelheiten zu den Herangehensweisen bezüglich der Überwachung nur einer Untergruppe von Speicherreihen aufgeführt. Im Allgemeinen überwacht ein Datenspeicher-Controller die Zugriffe für einen definierten Zeitraum und er legt fest, ob die Zugriffshäufigkeit einen Grenzwert für irgendeine der Reihen des überwachten Speichers übersteigt. Wenn die Zugriffe auf irgendeine Reihe den Grenzwert übersteigen, kann der Datenspeicher-Controller die Adressdaten für diese Reihe angeben. Die Verfolgung oder Überwachung einer Untergruppe von Reihen lässt sich beispielsweise durch die Verwendung einer Tabelle mit Einträgen für die Reihen mit den häufigsten Zugriffen erreichen.
  • Die theoretische maximale Häufigkeit, die innerhalb eines Zeitfensters von 64 ms (beispielsweise ein Aktualisierungsfenster) auf eine Reihe zugegriffen werden kann, beträgt für die aktuellen DRAMs (Dynamic Random Access Memory) 1,35 Millionen Mal (das Aktualisierungsfenster von 64 ms geteilt durch die Zugriffszeit von 47 ns). Der praktische Höchstwert, ohne eine Datenschädigung in der Opferreihe zu riskieren, ist deutlich niedriger. Er ist abhängig von der verwendeten Prozesstechnologie. Durch die Erkennung eines Row Hammer-Ereignisses kann das System das Risiko einer Datenschädigung in einer Opferreihe bzw. in Opferreihen des Datenspeichers verringern.
  • Die hierin aufgeführten Beispiele gehen im Wesentlichen auf die Row Hammer-Überwachung in Bezug auf den DRAM ein. Es ist jedoch offensichtlich, dass das Row Hammer-Problem genereller ein Datenspeichergerät-Skalierproblem ist, welches bei steigenden Datenspeicherdichten auftritt. Daher werden die Beschreibungen in Bezug auf den DRAM als nicht-begrenzende Beispiele verstanden, die auf andere Speichertechnologien, umfassend beispielsweise einen Datenspeicher-Controller oder eine Äquivalenzlogik, angewendet werden können. Die hierin beschriebene Row-Hammer-Überwachung ist mit irgendeiner aus einer Reihe von Datenspeicher-Technologien, wie DDR4 (Dual Data Rate, Version 4, die technische Daten sind zum Zeitpunkt der Anmeldung dieses Patents noch in der Entwicklung), LPDDR4 (Low Power Dual Data Rate, Version 4, die technische Daten sind zum Zeitpunkt der Anmeldung dieses Patents noch in der Entwicklung) oder WIDEIO (die technische Daten sind zum Zeitpunkt der Anmeldung dieses Patents noch in der Entwicklung).
  • In einem Speichergerät können physisch benachbarte Reihen je nach Hersteller oft logisch verschieden beschriftet oder unterschiedlich gekennzeichnet sein. Ein Hersteller kennzeichnet logisch benachbarte Datenspeicherreihen üblicherweise mit einem physikalischen Adressen-Offset, und diese Offsets können je nach Hersteller variieren. Das Datenspeichergerät selbst ist so konfiguriert, dass es ermittelt, wie Zugriffsanforderungen den physischen Speicherressourcen zugewiesen werden sollen. Datenspeicher-Controller sind generell darauf ausgelegt, dass sie mit vielen verschiedenen Arten von Datenspeichergeräten kompatibel sind, daher sind sie im Allgemeinen nicht speziell für irgendein bestimmtes Herstellergerät konzipiert. Daher verfügen Datenspeicher-Controller herkömmlicherweise nicht über eine Logik oder über Inforationen, die angeben, welche Reihen physisch benachbart sind.
  • In einem typischen Aktualisierungsszenario verfolgt das Datenspeichergerät selbst, was wann aktualisiert werden muss. Das Speichergerät aktualisiert die Opferreihe(n) durch die Öffnung der Reihe und die anschließende Schließung der Reihe(n) zur Aktualisierung. In einer Ausführungsform löst der Datenspeicher-Controller das Datenspeichergerät aus, um so eine zielgerichtete Aktualisierung einer spezifischen Opferreihe bzw. von spezifischen Opferreihen oder einer Region bzw. von Regionen, in der/in denen sich die Opferreihe(n) befindet/befinden, durchzuführen. Somit kann die Opferreihe/können die Opferreihen aktualisiert werden, wodurch sich die Wahrscheinlichkeit einer Datenschädigung auf Grund von Row Hammering verringert.
  • Es ist offensichtlich, dass obgleich das System eine zielgerichtete Aktualisierung einer Bereichsgranularität durchführen kann, die Row Hammer-Überwachung am wirksamsten ist, wenn die Überwachung auf der Reihenebenengranularität erfolgt. Angenommen, die Überwachung könnte statt für eine spezielle Reihe an einem Bereich durchgeführt werden, dann kann die Überwachung einer Region dazu führen, dass große Bereiche irgendwie ineffizient überwacht werden, und dass sie öfter aktualisiert werden als erforderlich, wenn die spezielle Hammered Row identifiziert ist.
  • Es ist offensichtlich, dass, damit der Datenspeicher-Controller eine Adresse der Hammered Row angeben kann, um die Aktualisierung der Opferreihe(n) durch das Speichergerät zu veranlassen, eine bestimmte Anzahl an Bits zur Identifizierung einer bestimmten Adresse erforderlich ist. In einer Ausführungsform identifiziert der Datenspeicher-Controller eine spezifische Adresse der Hammered Row. Basierend auf dieser spezifischen Adresse kann der Datenspeicher-Controller die spezifische Adresse eines Speichergeräts identifizieren, um es zu veranlassen, eine ganz spezifische Aktualisierung einer Opferreihe durchzuführen. In einer anderen Ausführungsform identifiziert der Datenspeicher-Controller einen größeren Bereich als eine spezifische Reihe. Daher kann ein Datenspeicher-Controller je nach ausgewählter Konfiguration einen spezifischen Block, eine spezifische Reihe oder einen Bereich identifizieren.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines Systems, welches auf einen Row Hammer-Zustand überwacht. System 100 umfasst ein Speichergerät 110, welches an den Speichercontroller 120 gekoppelt ist. Das Datenspeichergerät 110 kann jede Art von Datenspeichertechnologie umfassen, die über benachbarte Reihen von Speicherzellen verfügt, wobei Daten über eine Word-Leitung o. ä. zugänglich sind. In einer Ausführungsform ist das Datenspeichergerät 110 eine DRAM (Dynamic Random Access Memory)-Technologie.
  • Das Datenspeichergerät 110 beinhaltet das Datenspeicher-Array 112, welches eine oder mehrere logische und/oder physische Datenspeichergruppe(n) repräsentiert. Ein Beispiel für eine Datenspeichergruppierung ist eine Datenspeicherreihe. Zwar ist dies im System 100 nicht speziell dargestellt, aber das Speicherarray 112 kann eine oder mehrere Reihen umfassen, welche die Ziele wiederholter Zugriffe innerhalb eines Zeitfensters sind. Eine solche Reihe ist von einem Row Hammer-Zustand betroffen. In vielen modernen Speichergeräten bewirkt die Architektur des Halbleiter-Layouts, dass eine oder mehrere physisch benachbarte Reihen Gefahr laufen, beschädigt zu werden. Die Reihe bzw. die Reihen, die Gefahr laufen, durch den „Row Hammer“-Zustand beschädigt zu werden, sind hierin als Opferreihen bezeichnet.
  • Das Datenspeicher-Gerät 110 umfasst die Kolonnenlogik 114 und die Reihenlogik 116, die zur Dekodierung einer Anweisung zum Zugriff auf die korrekte Datenspeicherstelle innerhalb des/der Datenspeicherarray(s) 112 verwendet werden. Die Anzahl der Reihen und Kolonnen muss nicht gleich sein, in der Tat sind sie üblicherweise nicht gleich. Der Datenspeicher-Controller 120 sendet Befehle oder Anweisungen über einen Befehlsbus (z. B. einen Befehls-/Adressenbus (C/A-Bus)) an das Datenspeichergerät 110, welche dann vom Datenspeichergerät 110 interpretiert werden. Das Datenspeichergerät 110 dekodiert die Befehlsinformationen, um so eine Vielzahl von Zugriffsfunktionen innerhalb des Datenspeichers auszuführen, und es dekodiert die Adressdaten über die Kolonnenlogik 114 und die Reihenlogik 116. Die Logik greift mit einer Kombination aus CAS (Column Address Strobe or Signal) und RAS (Row Address Strobe or Signal) auf eine bestimmte Position im Datenspeicher zu. Die Speicherreihen können gemäß bekannten Datenspeicherarchitekturen oder ihren Derivaten implementiert werden. Kurz gesagt beinhaltet eine Datenspeicherreihe eine oder mehrere adressierbare Speicherzellenkolonnen, wie vom CAS identifiziert, generiert von der Kolonnenlogik 114. Adressierbar sind die Reihen über den RAS, von der Reihenlogik 116 generiert.
  • System 100 beinhaltet den Detektor 130, welcher für die Hardware und/oder Software oder die andere Logik steht, welche das System 100 in die Lage versetzt, ein Row Hammer-Ereignis oder einen Row Hammer-Zustand zu erkennen. Es kann mehrere verschiedene Mechanismen zur Entdeckung des Row Hammer-Zustands geben. Wie speziell hierin beschrieben, erkennt das System 100 einen Row Hammer-Zustand über den Detektor 130, welcher eine Tabelle oder ein Protokoll zur Überwachung von Zugriffen auf die ausgewählten Datenspeicherreihen beinhaltet. Somit kann der Detektor 130 feststellen, wenn innerhalb eines Grenzwert-Zeitraums wiederholt auf eine Reihe eines Speicherarrays 112 zugegriffen wird. Der Detektor 130 kann eine Hardware und/oder Logik im Speichergerät 110 beinhalten, einen Datenspeicher-Controller 120, und/oder separat von entweder dem Datenspeichergerät oder dem Datenspeicher-Controller.
  • Detector 130 ermittelt die Häufigkeit, mit der innerhalb eines Zeitraums auf eine Reihe zugegriffen wird. Bei einem Row Hammer-Ereignis geht es nicht einfach nur darum, wie häufig auf eine Reihe zugegriffen wird, sondern wie häufig der Zugriff innerhalb eines bestimmten Zeitraums erfolgt. Nachdem die Reihe aktualisiert wurde, sind die Bedingungen, die zu einer Datenschädigung führen können, hinfällig. Daher kann der Zeitraum für die Überwachung wenigstens zum Teil auf der Aktualisierungsrate basieren. In einer Ausführungsform ist der Zeitraum, innerhalb dem der Detektor 130 auf eine Grenzwert-Häufigkeit von Zugriffen prüft gleich der Aktualisierungszykluszeit des Datenspeichergeräts 110.
  • In einer Ausführungsform generiert der Datenspeicher-Controller 120 einen Befehl zur zielgerichteten Aktualisierung 122, um den Datenspeicher-Controller dazu zu bringen, eine zielgerichtete Aktualisierung in Reaktion auf die Erkennung eines Row Hammer-Ereignisses vorzunehmen. Der Befehl zur zielgerichteten Aktualisierung 122 ist ein Aktualisierungsbefehl, der „außerhalb des Zeitplans“ erfolgt, d. h. der Befehl wird als Reaktion auf die Erkennung des Row Hammer-Ereignisses gesendet, im Gegensatz zu einem Befehl, der gesendet wird, weil ein Timer eine Zeitvorgabe für eine Aktualisierung vorgibt. In einer Ausführungsform verdoppelt der Datenspeicher-Controller 120 einen vorhandenen Befehl, um so einen Befehl zur zielgerichteten Aktualisierung zu versenden, wie in den Beispielen, welche in der hiermit gemeinsam angemeldeten und ebenfalls noch ausstehenden Patentanmeldung Nr. TBD [P44523] unter dem Titel „Row Hammer Refresh Command“ (Aktualisierungsbefehl bei einem Row Hammer-Ereignis) beschrieben sind. Der Befehl zur zielgerichteten Aktualisierung 122 kann beispielsweise entweder mit einem „Aktivieren“- oder einem „Aktualisieren“-Befehl, wie für DRAM (Dynamic Random Access Memory) definiert, verdoppelt werden. Der Datenspeicher-Controller kann die Verdopplung beispielsweise durch die Anwendung eines weiteren PIN- und/oder „Modusregistrierung“-Zustandes erreichen, durch den das Datenspeichergerät einen Befehl als zielgerichtete Aktualisierung und nicht als „Aktivieren“- oder „Aktualisieren“-Befehle interpretiert. Der Datenspeicher-Controller 120 liefert Adressdaten zur Angabe der Reihe mit dem Row Hammer-Ereignis. Der Detektor 130 kann Adressinformationen zur Identifizierung der Reihe angeben, welche der Datenspeicher-Controller 120 dem Datenspeichergerät 110 angeben kann, um das Datenspeichergerät zur Festlegung, welche Opferreihe(n) aktualisiert werden sollten, zu veranlassen. Die Adresse kann speziell dem Datenspeichergerät angegeben oder generelle bereitgestellt werden. Wenn somit der Detektor 130 festlegt, dass eine spezielle Reihe des Datenspeichers von einem Row Hammer-Ereignis betroffen ist (die Zugriffe haben einen Grenzwert erreicht oder überschritten), gibt dieser die Reihe dem Datenspeicher-Controller 120 gegenüber an, welcher wiederum einen Befehl zur zielgerichteten Aktualisierung senden kann.
  • Unter Bezugnahme auf den Befehl zur zielgerichteten Aktualisierung 122 ist es offensichtlich, dass verschiedene Gerätehersteller die unterschiedliche Logik und die verschiedenen Architekturen zur Nutzung der Datenspeicherressourcen der Geräte einsetzen. Verschiedene Datenspeichergeräte-Hersteller können beispielsweise verschiedene Offsets nutzen, um eine Zuweisung zwischen den logischen Speicheradressen, welche im Hostprozessor (nicht dargestellt) verwendet werden, und den physischen Speicheradressen, welche intern verwendet werden, zum Speichergerät 110 vorzunehmen. In einer Ausführungsform nutzt der Datenspeicher-Controller 120 dieselben logischen Speicheradressen wie der Hostprozessor. Daher stellt in einer Ausführungsform der Datenspeicher-Controller 120 dem Datenspeichergerät 110 eine Reihenadresse bereit, welche die Reihe mit dem Row Hammer-Ereignis angibt. Der Datenspeicher-Controller kann die Reihenadresse in Verbindung mit und/oder als Teil von einem Befehl angeben, den dieser an das Datenspeichergerät 110 ausgibt. Das Datenspeichergerät kann dann die spezielle Adresse bzw. die speziellen Adressen einer beliebigen Opferreihe/von beliebigen Opferreihen berechnen. Das Datenspeichergerät 110 führt dann eine zielgerichtete Aktualisierung der physisch benachbarten Reihe(n) durch.
  • Wie nachstehend ausführlicher beschrieben umfasst Detektor 130 eine Konfiguration zur Festlegung des Zeitrahmens, in welchem auf ein Row Hammer-Ereignis zu prüfen ist, sowie eine Konfiguration zur Festlegung der Zugriffshäufigkeit, welche ein Row Hammer-Ereignis definieren, welches den Datenspeicher-Controller zum Auslösen einer zielgerichteten Aktualisierung veranlasst. Detektor 130 pflegt die Daten für eine Untergruppe der Gesamtanzahl an Reihen im System 100. In einer Ausführungsform pflegt der Detektor 130 die Daten für eine Anzahl an Reihen basierend auf dem MVC, der maximalen Anzahl an Opfer-Zählimpulsen, die für den konfigurierten Zeitrahmen erwartet wird. Detektor 130 kann beispielsweise eine Tabelle mit MVC+1 Einträgen oder mehr Einträgen führen. Detektor 130 kann die Einträge für Datenspeicher-Positionen, auf die zugegriffen wird, in eine Tabelle übernehmen, wobei die Einträge mit der niedrigsten Anzahl an Zählimpulsen aus der Tabelle entfernt und durch die neuen Einträge ersetzt werden. Weitere Einzelheiten einer speziellen Implementierung sind nachfolgend in Bezug auf 4 beschrieben.
  • 2 ist ein Blockdiagramm einer Ausführungsform eines Systems, welches auf einen Row Hammer-Zustand basierend auf Datenspeicher-Controller-Zugriffsbefehlen überwacht. System 200 ist ein System, welches ein Datenspeichergerät beinhaltet, das über den Datenspeicher-Controller 220 mit dem Hostprozessor 230 gekoppelt ist, und es kann exemplarisch für ein System in Übereinstimmung mit dem System 100 aus 1 dienen. System 200 umfasst ein Datenspeichergerät-DRAM 210, welcher an den Speichercontroller 220 gekoppelt ist. Der Datenspeicher-Controller 220 ist wiederum mit dem Hostprozessor 230 gekoppelt.
  • Hostprozessor 230 kann irgendeine Art von Verarbeitungseinheit, Prozessor oder Mikrocontroller sein. Hostprozessor 230 ist für die primäre Ausführung von Operationen im System 200 zuständig. Operationen, die vom Hostprozessor 230 durchgeführt werden, werden üblicherweise auf Grund von Anweisungen und den im DRAM 210 gespeicherten Daten initiiert. DRAM 210 ist ein Datenspeichergerät gemäß irgendeiner Ausführungsform, die hierin beschrieben ist. DRAM 210 beinhaltet die Datenspeicherzellen 212, welche die Daten und Anweisungen, welche vom Hostprozessor 230 verwendet werden, speichern. In einer Ausführungsform ist DRAM 210 ein flüchtiger Speicher oder ein Datenspeichergerät, dessen Inhalte nicht-deterministisch sind, wenn die Stromversorgung zum Gerät unterbrochen wird. Daher benötigt ein flüchtiger Datenspeicher eine reguläre Spannungsquelle, damit er die Datenspeicherzellen aktualisieren kann, um zu verhindern, dass die Daten verloren gehen oder beschädigt werden.
  • DRAM 210 beinhaltet Hardware-Verbinder, die mit den entsprechenden Hardware-Verbindern des Speichercontrollers 220 verbunden sind. Der Datenspeicherzugriff vom Hostprozessor 230 erfolgt üblicherweise über den Datenspeicher-Controller 220. In einer Ausführungsform ist der Datenspeicher-Controller 220 Teil des Hostprozessors 230. In einer alternativen Ausführungsform ist der Datenspeicher-Controller Teil eins unterstützenden „Chipsatzes“ oder einer Hardware-Logik, welche eine Infrastruktur für die Spannungs- und Schnittstellenlogik einer Hardware-Plattform bereitstellt, von der Hostprozessor 230 ein Teil ist.
  • Wie oben erwähnt, versetzt ein Detektor de Datenspeicher-Controller 220 in die Lage, einen Row Hammer-Zustand zu identifizieren, um so auf den Row Hammer-Zustand mit einem Befehl zur zielgerichteten Aktualisierung reagieren zu können. Die Detektionslogik 224 ist als Teil des Datenspeicher-Controllers 220 veranschaulicht, und sie repräsentiert einen Teil oder die gesamte Logik, die zur Erkennung des Row Hammer-Vorgangs im System 200 erforderlich ist. Der Datenspeicher-Controller 220 beinhaltet die Befehlslogik 222, welche die Harare und Software oder andere Logik repräsentiert, um den Datenspeicher-Controller 220 in die Lage zu versetzen, seine Funktionen zur Verwaltung des Datenspeicher-Zugriffs auf das DRAM 210 auszuführen.
  • DRAM 210 beinhaltet die Opferlogik 214, welche die Logik zur Feststellung, welche Reihe bzw. welche Reihen anfällig sind für eine Schädigung durch das Row Hammer-Ereignis, repräsentiert. In einer Ausführungsform kann die Opferlogik 214 wenigstens teilweise am Datenspeicher-Controller 220 ausgeführt werden. Zugosten einer breiteren Interoperabilität zwischen dem Datenspeicher-Controller 220 und anderen Arten von Datenspeichergeräten befindet sich die Opferlogik 214 jedoch generell im DRAM 210. Daher muss der Datenspeicher-Controller 220 nur die Tatsache feststellen, dass ein Row Hammer-Zustand existiert, und er muss dann einen Befehl senden, in dem die Adresse oder der Adressbereich der Zielreihe angegeben ist. DRAM 210 kann dann eine Zuweisung oder eine andere Logik nutzen, um festzustellen, welche Reihe oder Reihen potenziell anfällig sind.
  • DRAM 210 beinhaltet die Steuerlogik 216, welche die Logik zur Durchführung der Aktualisierung von Datenspeicher 212 umfasst. Jedes Datenspeichergerät umfasst irgendeine Logik, um zu verfolgen, welche Datenspeicherzellen aktualisiert wurden, und für welche Reihen als Nächstes eine Aktualisierung ansteht. Die Steuerlogik 216 kann die tatsächliche zielgerichtete Aktualisierung basierend auf dem Empfang eines Befehls zur zielgerichteten Aktualisierung vom Datenspeicher-Controller 220 implementieren.
  • 3 ist ein Blockdiagramm einer Ausführungsform eines Systems, welches ein Zugriffsprotokoll für die Überwachung auf einen Row Hammer-Zustand nutzt. Das System 300 repräsentiert ein exemplarisches System, welches ein Datenspeicher-Untersystem mit einem Datenspeicher-Controller 330, einem Datenspeichergerät 320 und einem Detektor 310 beinhaltet. Das System 300 ist ein Beispiel für ein System gemäß System 100 aus 1 oder System 200 aus 2. In einer Ausführungsform ist Detektor 310 Teil des Datenspeicher-Controllers 330. Der Datenspeicher-Controller 330 kann einen Befehl zur zielgerichteten Aktualisierung in Reaktion auf die Erkennung eines Row Hammer-Zustandes durch den Detektor 310 ausgeben.
  • Das Datenspeichergerät 320 umfasst mehrere Datenspeicherreihen. Unter den Reihen befindet sich Zielreihe 322, bei der es sich um eine Reihe handelt, die das Ziel wiederholter Zugriffe innerhalb eines Zeitraums ist. Die Opferreihe 324 ist eine Reihe, welche Gefahr einer Datenschädigung auf Grund eines Row Hammer-Ereignisses in der Zielreihe 322 läuft. Eine Reihe mit einem Row Hammer-Zustand kann mehr als eine Opferreihe zugewiesen sein (z. B. jede Reihe, die der Reihe mit dem Row Hammer-Ereignis physisch benachbart ist).
  • In einer Ausführungsform beinhaltet der Detektor 310 das Zugriffsprotokoll 312. Das Zugriffsprotokoll 312 kann als Liste oder Array oder Tabelle oder andere logische Struktur implementiert werden, die Einträge mit mehreren Informationsfeldern speichert. Jeder Eintrag beinhaltet wenigstens eine Adresse oder eine Kennung für eine bestimmte Datenspeicherreihe sowie einen Zugriffs-Zählimpulswert für den Eintrag. Die Anzahl an Einträgen im Zugriffsprotokoll 312 ist viel geringer als die Gesamtanzahl an Reihen im Datenspeichergerät 320. Daher überwacht der Detektor 310 die Zählimpulse für eine Untergruppe aller Reihen. Die Zählimpulse einer jeden Reihe können inkrementell hochgezählt werden, wenn erneut auf die Reihe zugegriffen wird, und der Zählimpulswert kann dann mit dem Grenzwert verglichen werden, um festzustellen, ob auf die Reihe mit der Grenzwert-Häufigkeit zugegriffen wurde.
  • Die Detektionslogik 314 beinhaltet eine Logik, mit der der Detektor 310 in die Lage versetzt wird festzustellen, dass ein Zugriffsbefehl an eine Datenspeicherreihe ausgegeben wird. Zwar wird die Detektionslogik 314 speziell mit einer Leitung zur Zielreihe 322 angezeigt, die Detektionslogik 314 kann jedoch die Zugriffe auf jede Reihe überwachen. In einer Ausführungsform beinhaltet die Detektionslogik 314 einen Mechanismus zur Ermittlung einer Adresse eines „Aktivieren“-Befehls, der vom Datenspeicher-Controller 330 ausgegeben wird. Daher kann der Detektor 310 jedes Mal, wenn der Datenspeicher-Controller 330 einen Befehl an das Datenspeichergerät 320 zur Aktivierung einer Datenspeicherreihe sendet, die dem Befehl zugewiesene Adresse identifizieren und den Zugriff für die Adresse im Zugriffsprotokoll 312 verfolgen.
  • Detektor 310 ermittelt, wann der Zugriff auf eine Reihe einen Grenzwert übersteigt, und gibt die Reihenadressdaten an den Datenspeicher-Controller weiter. Es ist offensichtlich, dass die Adressdaten im Zugriffsprotokoll 312 nicht unbedingt dieselbe Adresse sein muss, die vom Datenspeichergerät 320 für den Zugriff auf die physischen Datenspeicherressourcen verwendet wird. Das Datenspeichergerät 320 dekodiert die vom Datenspeicher-Controller 330 an die physischen Ressourcen gesendeten Adressen. Wenn also der Detektor 310 eine Reihe identifiziert für welche die Zugriffe den Grenzwert erreicht oder überschritten haben, müssen diese Daten möglicherweise dennoch dekodiert werden, um die physischen Ressourcen der Zielreihe 322 zu identifizieren, sodass die physisch benachbarte Opferreihe 324 identifiziert werden kann.
  • Der Detektor 310 empfängt die Timer-Daten 316, mit deren Hilfe der Detektor 310 den Start eines Zeitrahmens sowie das Ende eines Zeitrahmens identifizieren kann. Die Überwachung erfolgt innerhalb des Zeitrahmens. In einer Ausführungsform reicht der Zeitrahmen von einer geplanten Aktualisierung bis zur nächsten.
  • In einer Ausführungsform löscht der Detektor 310 den Zählimpuls eines Eintrages im Zugriffsprotkoll 312, wenn der Eintrag den Grenzwert erreicht und in Bezug auf den Datenspeicher-Controller identifiziert wird. Es ist offensichtlich, dass die Erkennung gemäß einer Rang- und/oder Reihengranularität erfolgen kann. Es existiert nicht unbedingt ein einzelner Detektor 310 für den Datenspeicher-Controller. Jede Reihe kann verfolgt werden, und jeder Datenspeicherkanal kann über eine Überwachung verfügen.
  • 4 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zur Überwachung auf einen Row Hammer-Zustand eines Datenspeichergeräts. Ein Administrator kann ein Datenspeicher-Subsystem mit einem Zeitfenster bzw. Zeitrahmen zur Row Hammer-Überwachung und einem Grenzwert für Zugriffe konfigurieren, die einen Row Hammer-Zustand, 402, anzeigen. Der Administrator kann das System auf den Empfang von Eingängen, welche den Zeitrahmen und die Grenzwerte anzeigen, vorkonfigurieren. In einer Ausführungsform ist die Konfiguration Teil der Einstellungsregistrierungswerte in der Firmware für das Datenspeicher-Subsystem. Das System beinhaltet einen Detektor oder eine Detektionslogik, die entsprechend für die Durchführung der Überwachung für den Zeitrahmen, die Überwachung bezüglich der Grenzwert-Häufigkeit an Zugriffen, konfiguriert ist.
  • Daher sind der Zeitrahmen und die Anzahl der Zugriffe im System definiert. In einer Ausführungsform ist der Zeitrahmen 64 Millisekunden. Die Anzahl der Zugriffe, die den Grenzwert ausmachen, ist abhängig von der Architektur des Datenspeicher-Geräts, mit dem der Datenspeicher-Controller verbunden ist, einschließlich Datenspeichergröße und -dichte (z. B. Mindest-Prozessfunktionsgröße). Die Anzahl der Zugriffe, die ein Row Hammer-Ereignis anzeigen, kann irgendwo im Bereich von 150 k und 550 k Zugriffen innerhalb des Zeitfensters liegen.
  • Der Datenspeicher-Controller oder der Detektor kann die maximale Anzahl an Opferreihen, die im System möglich sind, 404, berechnen. Die nachstehend beschriebenen Operationen können, je nach Implementierung, als vom Detektor oder vom Datenspeicher-Controller durchgeführt erachtet werden. Um die Beschreibung möglichst einfach zu gestalten, bezieht sich die nachstehende Beschreibung auf Operationen des Detektors, es ist jedoch offensichtlich, dass diese entweder vom Detektor oder vom Datenspeicher-Controller oder von beiden durchgeführt werden können, oder dass der Detektor Teil des Datenspeicher-Controllers sein kann. Der Administrator kann alternativ die maximale Anzahl an Opferreihen berechnen. Diese Berechnung basiert auf der Ermittlung der maximalen Anzahl an Reihen, auf die innerhalb des Zeitrahmens für eine Grenzwert-Häufigkeit zugegriffen werden kann. Ein einfaches Beispiel: Es wird von einem System ausgegangen, in dem die Zugriffshäufigkeit, die den Grenzwert definiert, 250 K ist, und der Zeitrahmen 64 ms ist. Wenn jeder Zugriff in etwa 10 ns dauert, wird die maximale Anzahl an Opferreihen auf 26 aufgerundet (64 ms/250 k x 10 ns) = 25,6). Die maximale Opferzahl kann als MVC (Maximum Victim Count, Opfer-Zählimpuls-Höchstwert) bezeichnet werden. Es ist zu beobachten, dass diese Größenordnungen kleiner sind als im einfachen Fall der Überwachung jeder Reihe separat.
  • In einer Ausführungsform erzeugt der Detektor ein Array aus Einträgen basierend auf dem MVC-Wert, 406. Das Array kann eine Tabelle oder ein Protokoll oder eine andere Struktur sein. In einer Ausführungsform ist die Anzahl an Einträgen wenigstens MVC+1. Die Anzahl an Einträgen könnte ein Mehrfaches des MVC sein. In einer Ausführungsform beinhaltet jeder Eintrag in der Tabelle oder im Protokoll eine Reihenadresse, auf die vom CAM (Content Addressable Memory) zugegriffen werden kann, sowie einen Zugriffs-Zählimpulswert. Es ist offensichtlich, dass der CAM den Zugriff basierend auf einem Adressenvergleich gestattet. Die Einträge könnten auch andere Daten enthalten.
  • In einer Ausführungsform initialisiert der Detektor das Array zu Beginn des Zeitrahmens, 408. Die Initialisierung kann eine Reihe verschiedener Operationen beinhalten. In einer Ausführungsform initialisiert der Detektor zu Beginn eines Zeitrahmens jeden Eintrag des Arrays als ungültig (z. B. durch das Setzen eines Markers oder durch die Eingabe eines Wertes in den Eintrag, oder indem eine Bitmap gültiger Einträge separat vom Array geführt wird). In einer Ausführungsform setzt der Detektor den Zählimpulswert eines jeden Eintrags auf null zurück.
  • In einer Ausführungsform kann der Detektor jede Reihe nach Aktivierung überwachen, welche die Reihe in den Adressenfeldern des „Aktivieren“ Befehls identifiziert (z. B. mithilfe von CAM), 410. In einer Ausführungsform sortiert der Detektor das Array in der Reihenfolge der Zählimpulswerte (z. B. vom höchsten zum niedrigsten oder vom niedrigsten zum höchsten). Die Sortierung des Arrays kann mithilfe einer Sortierung, einer verknüpften Liste oder einem anderen Mechanismus erfolgen.
  • Für jede neue Aktivierung einer Reihe, die vom Detektor erkannt wird, 412, kann der Detektor festlegen, ob sich die Reihe bereits im Array befindet, 414. Befindet sich die Reihe im Array (Ja-Verzweigung), zählt der Detektor den Wert für diesen Eintrag hoch, 416. Es kann eine zusätzliche Anforderung geben, dass der Eintrag zudem gültig sein muss (somit erfolgt die Hochzählung nur, wenn sich die Reihe im Array befindet und der Eintrag gültig ist). Es kann verschiedene Arten geben, mit der Situation umzugehen, in der sich eine Reihe nicht bereits im Array befindet (Nein-Verzweigung von 414). In einer Ausführungsform ermittelt der Detektor, ob leere Einträge oder ungültige Einträge im Array vorhanden sind, 418.
  • Wenn ein verfügbarer Eintrag im Array vorhanden ist (Ja-Verzweigung), gibt der Detektor die Daten in den Eintrag ein, die der Reihe, für die eine Aktivierung erkannt wurde, zugewiesen sind, 420. Wenn für die spezielle Implementierung erforderlich, kann der Detektor den Eintrag auch als Gültig kennzeichnen. Der Detektor zählt den Wert für den Eintrag dann hoch, 416.
  • Ist kein verfügbarer Eintrag im Array vorhanden (Nein-Verzweigung von 418), kann der Detektor den Eintrag durch den niedrigsten Zugriffs-Zählimpulswert mit der Reihenadresse der Reihe, für die die Aktivierung erkannt wurde, ersetzen. 422. In einer Ausführungsform ist der Zugriffs-Zählimpulswert im Eintrag speziell nicht zurückgesetzt oder auf null gesetzt. Stattdessen werden die Adressdaten für den Eintrag für die Reihe ersetzt, die gerade aktiviert wurde. Es muss verstanden werden, dass auf bestimmte Reihen im Datenspeicher wiederholt zugegriffen werden kann, aber der wiederholte Zugriff kann mit dem Zugriff auf einen anderen Eintrag im Wechsel hin und zurück erfolgen. Daher liegt dieser durch das Beibehalten des Zugriffs-Zählimpulswertes und dessen Hochzählung mit an Sicherheit grenzender Wahrscheinlichkeit höher als die Zugriffshäufigkeit für die Reihe, jedoch nie geringer als die tatsächliche Zugriffshäufigkeit.
  • Daher behält der Detektor den vorherigen Zugriffs-Zählimpulswert oder Reihen-Zählimpulswert bei und zählt diesen hoch, 416. Es muss verstanden werden, dass die einfachste Form des Hochzählens durch die Erhöhung des Reihen-Zählimpulswertes jeweils um 1 ist, es könnten jedoch auch andere Formen des Hochzählens verwendet werden. Nach dem Hochzählen, 416, ermittelt der Detektor, ob der Reihen-Zählimpulswert der Zählimpuls-Höchstwert ist, oder ob die Reihe den Grenzwert erreicht hat, 424. In einer Ausführungsform prüft der Detektor, um festzustellen, ob der Grenzwert jedes Mal, wenn eine Reihenaktivierung erkannt wird, erreicht wird, es sind j edoch auch andere Implementierungen möglich. Insbesondere für neu hinzugefügte Einträge besteht möglicherweise kein Bedarf zur Prüfung des Zählimpulswertes im Vergleich mit dem Grenzwert.
  • Ungeachtet der Implementierung fährt der Detektor, wenn er ermittelt, ob die Reihe am Grenzwert ist, 424, und wenn die Reihe den Grenzwert nicht erreicht hat (Nein-Verzweigung) mit der Überwachung fort 410. Wenn die Reihe den Grenzwert erreicht hat (Ja-Verzweigung), gibt der Detektor die Adressdaten der Reihe an den Datenspeicher-Controller zum Auslösen eines Befehls für die zielgerichtete Aktualisierung weiter, 426. In einer Ausführungsform setzt der Detektor, wenn ein Eintrag den Grenzwert erreicht hat, auch den kleinsten Zählimpulswert des Eintrags auf den kleinsten Zählimpulswert irgendeines Eintrags im Array zurück. Auch eine solche Aktion verhindert, dass das Array Zählimpulswert-Daten für einen Eintrag verliert, auf den wiederholt zugegriffen wird, bei dem der Zugriff jedoch wenigstens anfangs nicht so häufig wie andere Reihen erfolgt. Der Detektor kann auch das gültige Bit des Eintrags löschen.
  • Es muss verstanden werden, dass bei den Operationen, die hierin beschrieben sind, vordringlich die Reihen mit den häufigsten Zugriffen „zu Tage gefördert werden“. Bei einer beschreibungsgemäßen Implementierung sollte nie ein Fall auftreten, bei dem eine Reihe vorhanden ist, deren tatsächlicher Zugriffs-Zählimpulswert größer ist als der kleinste Zählimpulswert eines Eintrags im Array oder in der Liste. Darüber hinaus ist das Risiko falscher Alarme durch die Tatsache beschränkt, dass die Anzahl der Reihen, welche die Aktualisierung des Ziels bewirken, den MVC-Wert nicht überschreiten kann.
  • 5 ist ein Blockdiagramm einer Ausführungsform eines Rechensystems, in welches die Row Hammer-Überwachung implementiert werden kann. Das System 500 stellt ein Computergerät gemäß jeder hier beschriebenen Ausführungsform dar und kann ein Laptop, ein Desktop-Computer, ein Server, ein Spiel- oder Unterhaltungssteuersystem, ein Scanner, Kopierer, Drucker oder ein anderes elektronisches Gerät sein. Das System 500 schließt Prozessor 520 ein, der Verarbeitung, Betriebsmanagement und Befehlsausführung für das System 500 bereitstellt. Der Prozessor 520 kann jede Art von Mikroprozessor, Hauptprozessor (CPU), Prozessorkern oder andere Verarbeitungshardware einschließen, um die Verarbeitung für das System 500 bereitzustellen. Der Prozessor 520 steuert den allgemeinen Betrieb des Systems 500 und kann ein oder mehrere programmierbare Allzweck- oder Spezialmikroprozessoren, Digitalsignal-Prozessoren (DSPs), Automatisierungssysteme, anwendungsspezifische integrierte Schaltkreise (ASICs), programmierbare Logikbaugruppen (PLDs) oder Ähnliches oder eine Kombination von solchen Geräten sein oder einschließen.
  • Das Speichersubsystem 530 stellt den Hauptspeicher des Systems 500 dar und stellt eine vorübergehende Speicherung für Code bereit, der durch den Prozessor 520 auszuführen ist, oder Dateninhalte, die beim Ausführen einer Routine zu verwenden sind. Das Speichersubsystem 530 kann ein oder mehrere Speichergeräte wie Read Only Memory (ROM), Flash-Speicher, eine oder mehrere Varianten von Random Accesses Memory (RAM) oder andere Speichergeräte oder eine Kombination von solchen Geräten einschließen. Das Datenspeicher-Subsystem 530 speichert und beherbergt unter anderem das Betriebssystem (OS) 536, um eine Softwareplattform für die Befehlsausführung im System 500 bereitzustellen. Zusätzlich sind andere Befehle 538 gespeichert und werden vom Datenspeicher-Subsystem 530 ausgeführt, um die Logik und die Verarbeitung des Systems 500 bereitzustellen. Das Betriebssystem (OS) 536 und die Befehle 538 werden durch den Prozessor 520 ausgeführt.
  • Das Datenspeicher-Subsystem 530 umfasst ein Datenspeichergerät 532, worin es Daten, Anweisungen, Programme oder andere Elemente speichert. In einer Ausführungsform beinhaltet das Datenspeicher-Subsystem den Datenspeicher-Controller 534, welcher ein Datenspeicher-Controller gemäß irgendeiner der hierin beschriebenen Ausführungsformen ist, und welcher eine Überwachung auf einen Row Hammer-Zustand bietet. In einer Ausführungsform liefert der Datenspeicher-Controller 534 basierend auf dem erkannten Row Hammer-Zustand einen Befehl zur zielgerichteten Aktualisierung an das Datenspeichergerät 532. Der Befehl zur zielgerichteten Aktualisierung veranlasst das Datenspeicher-Gerät 532, eine zielgerichtete Aktualisierung durchzuführen, bei der es sich um einen Aktualisierungsvorgang außerhalb des Zyklus handelt, d. h. es handelt sich nicht um den regulär geplanten Aktualisierungszyklus und dieser wird nicht unbedingt an einem Bereich durchgeführt, welcher vom Datenspeichergerät als nächsten Aktualisierungsbereich verfolgt wird. Stattdessen basiert die Reihe oder der Bereich auf einer Opferreihe oder einem Opferbereich, der basierend auf einer Adresse identifiziert wird, welche dem Befehl zur zielgerichteten Aktualisierung zugewiesen ist.
  • Der Prozessor 520 und das Speichersubsystem 530 sind mit dem BusBussystem 510 gekoppelt. Der Bus 510 ist eine Abstraktion, die ein oder mehrere separate physische Busse, Kommunikationsleitungen/Schnittstellen und/oder Punkt-zu-Punkt-Verbindungen darstellt, die durch geeignete Brücken, Adapter und/oder Controller verbunden sind. Deshalb kann der Bus 510 beispielsweise ein oder mehrere von einem Systembus, Peripheral Component Interconnect-(PCI) -Bus, HyperTransport- oder Industriestandardarchitektur- (ISA) -Bus, SCSI-Schnittstellen-(SCSI) -Bus, einem universellen seriellen Bus (USB) oder Institute of Electrical and Electronics Engineers- (IEEE) Standard-1394-Bus (allgemein als „FireWire“ bezeichnet) einschließen. Die Busse von Bus 510 können auch Schnittstellen in der Netzwerkschnittstelle 550 entsprechen.
  • Das System 500 schließt auch eine oder mehrere Ein-/Ausgabe- (I/O) -Schnittstellen 540, die Netzwerkschnittstelle 550, ein oder mehrere interne Massenspeichergeräte 560 und die Peripherieschnittstelle 570 ein, die mit Bus 510 gekoppelt ist. Die I/O-Schnittstelle 540 kann eine oder mehrere Schnittstellenkomponenten einschließen, durch die ein Benutzer mit dem System 500 interagiert (z. B. Video, Audio- und/oder alphanumerische Schnittstelle). Die Netzwerkschnittstelle 550 stellt dem System 500 die Kommunikationsfähigkeit mit entfernten Geräten (z. B. Server, andere Computergeräte) über ein oder mehrere Netzwerke bereit. Die Netzwerkschnittstelle 550 kann ein Ethernet-Adapter, drahtlose Verbindungskomponenten, USB (universeller serieller Bus) oder andere verdrahtete oder drahtlose standardbasierte oder proprietäre Schnittstellen einschließen.
  • Der Speicher 560 kann jedes konventionelle Medium sein oder einschließen, um große Mengen von Daten in einer nicht flüchtigen Weise zu speichern, wie eine oder mehrere Magnetplatten, Halbleiterplatten oder optische Speicherplatten oder eine Kombination davon. Der Speicher 560 hält Code oder Befehle und die Daten 562 in einem permanenten Zustand (d. h., der Wert wird trotz der Unterbrechung des Stroms zu System 500 aufrechterhalten). Der Speicher 560 kann allgemein als ein „Speicher“ betrachtet werden, obwohl der Speicher 530 der ausführende oder Betriebsspeicher ist, um Befehle an Prozessor 520 bereitzustellen Während der Speicher 560 nicht flüchtig ist, kann Memory 530 flüchtigen Speicher einschließen (d. h., der Wert oder Zustand der Daten ist unbestimmt, wenn der Strom zum System 500 unterbrochen wird).
  • Die Peripherieschnittstelle 570 kann jede Hardwareschnittstelle, die nicht speziell oben angegeben ist, einschließen. Peripheriegeräte verweist generell auf Geräte, die abhängig mit dem System 500 verbinden. Eine abhängige Verbindung ist eine, bei der das System 500 die Software- und/oder Hardware-Plattform bereitstellt, auf der die Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • 6 ist ein Blockdiagramm einer Ausführungsform eines mobilen Geräts, in welches die Row Hammer-Überwachung implementiert werden kann. Das Gerät 600 stellt ein mobiles Gerät, wie ein Computing-Tablet, ein Mobiltelefon oder Smartphone, einen drahtlosen e-Reader oder ein anderes mobiles Gerät dar. Es ist offensichtlich, dass gewisse Komponenten generell gezeigt sind, und nicht alle Komponenten solch eines Gerätes sind in Gerät 600 gezeigt.
  • Das Gerät 600 schließt Prozessor 610 ein, der die primären Verarbeitungsoperationen von Gerät 600 durchführt. Der Prozessor 610 kann ein oder mehrere physische Geräte wie Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikgeräte oder andere Verarbeitungsmittel einschließen. Bei einer Ausführungsform schließt der Prozessor 610 zusätzlich zu einer Prozessorchiplage optische Schnittstellenkomponenten ein. Deshalb befinden sich die Prozessorchiplage und die Photonikkomponenten im gleichen Paket. Solch ein Prozessorpaket kann optisch mit einem optischen Verbinder gemäß jeder hier beschriebenen Ausführungsform verbinden.
  • Die Verarbeitungsoperationen, die durch den Prozessor 610 ausgeführt werden, schließen die Ausführung einer Betriebsplattform oder eines Betriebssystems ein, auf denen Anwendungen und/oder Gerätefunktionen ausgeführt werden. Die Verarbeitungsoperationen schließen Operationen ein, die mit I/O (Ein-/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Geräten, Operationen, die mit dem Energiemanagement und/oder Operationen die mit dem Verbinden von Gerät 600 mit einem anderen Gerät in Zusammenhang stehen. Die Verarbeitungsoperationen können auch Operationen einschließen, die mit Audio-I/O und/oder Anzeige-I/O in Zusammenhang stehen.
  • Bei einer Ausführungsform umfasst das Gerät 600 das Audiosubsystem 620, welches Hardware (z. B. Audiohardware und Audioschaltkreise) repräsentiert und Software- (z. B. Treiber und Codecs) -Komponenten, die mit dem Bereitstellen von Audiofunktionen an das Rechengerät verbunden sind. Audiofunktionen können einen Lautsprecher- und/oder Kopfhörerausgang sowie einen Mikrofoneingang umfassen. Geräte für solche Funktionen können in das Gerät 600 integriert oder an das Gerät 600 angeschlossen werden. Bei einer Ausführungsform interagiert ein Benutzer mit dem Gerät 600 durch die Übertragung von Audiobefehlen, die vom Prozessor 610 empfangen und verarbeitet werden.
  • Das Anzeigesubsystem 630 stellt Hardware (z. B. Anzeigegeräte) und Softwarekomponenten (z. B. Treiber) dar, die eine visuelle und/oder taktile Anzeige für einen Benutzer bereitstellen, der so mit dem Computer interagieren kann. Das Anzeigesubsystem 630 weist die Anzeigeschnittstelle 632 auf, die den konkreten Bildschirm oder das konkrete Hardwaregerät umfasst, der bzw. das zur Bereitstellung einer Anzeige für einen Benutzer verwendet wird. Bei einer Ausführungsform umfasst die Anzeigeschnittstelle 632 eine von Prozessor 610 getrennte Logik, um mindestens einige Verarbeitungsaufgaben in Verbindung mit der Anzeige auszuführen. Bei einer Ausführungsform umfasst das Anzeigesubsystem 630 ein Touchscreen-Gerät, das einem Benutzer sowohl die Ausgabe als auch Eingabe bereitstellt.
  • Der I/O-Controller 640 repräsentiert Hardwaregeräte und Softwarekomponenten in Verbindung mit der Interaktion mit einem Benutzer. Der I/O-Controller 640 kann für das Management der Hardware, die Teil des Audiosubsystems 620 und/oder des Anzeigesubsystems 630 ist, genutzt werden. Zudem veranschaulicht der I/O-Controller 640 einen Verbindungspunkt für zusätzliche Geräte, die mit Gerät 600 verbunden sind und über die ein Benutzer mit dem System interagiert. Die Geräte, die an Gerät 600 angeschlossen werden können, können u. a. Mikrofon, Lautsprecher- oder Stereosysteme, Videosysteme oder andere Anzeigegeräte, Tastatur oder Tastenfeld-Geräte oder andere I/O-Geräte zur Nutzung bei spezifischen Anwendungen, wie Kartenleser oder andere Geräte, einschließen.
  • Wie oben angegeben, kann der I/O-Controller 640 mit dem Audiosubsystem 620 und/oder dem Anzeigesubsystem 630 interagieren. Zum Beispiel kann ein Eingang über ein Mikrofon oder ein anderes Audiogerät Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen von Gerät 600 bereitstellen. Außerdem kann eine Audioausgabe anstatt oder zusätzlich zur Anzeigeausgabe bereitgestellt werden. Bei einem weiteren Beispiel agiert das Anzeigegerät auch als ein Eingabegerät, das mindestens teilweise durch I/O-Controller 640 verwaltet werden kann, wenn das Anzeigesubsystem einen Touchscreen umfasst. Am Gerät 600 können zusätzliche Schaltflächen oder Schalter vorhanden sein, um vom I/O-Controller 640 verwaltete I/O-Funktionen bereitzustellen.
  • Bei einer Ausführungsform verwaltet der I/O-Controller 640 Geräte wie Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Sensoren, Gyroskope, globale Positionsbestimmungssystem- (GPS) -Hardware, die im Gerät 600 eingeschlossen sein können. Die Eingabe kann Teil der direkten Benutzerinteraktion sowie das Bereitstellen umgebungsbedingter Eingabe in das System sein, um dessen Operationen zu beeinflussen (wie beispielsweise das Filtern von Rauschen, das Anpassen von Anzeigen bezüglich der Helligkeitserkennung, einen Blitz einer Kamera anzuwenden oder andere Merkmale).
  • In einer Ausführungsform umfasst das Gerät 600 das Energiemanagement 650, das die Nutzung des Batteriestroms, das Laden der Batterie und Funktionen in Verbindung mit einem Energiesparbetrieb verwaltet. Das Datenspeicher-Subsystem 660 umfasst Speichergerät(e) 662 zum Speichern von Informationen in Gerät 600. Das Datenspeicher-Subsystem 660 kann nichtflüchtige (Zustand ändert sich nicht, wenn der Strom zum Speichergerät unterbrochen wird) und/oder flüchtige (Zustand ist unbestimmt, wenn der Strom zum Speichergerät unterbrochen wird) Speichergeräte beinhalten. Der Speicher 660 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (gleich, ob langfristig oder temporäre) in Verbindung mit der Ausführung der Anwendungen und Funktionen von System 600 speichern.
  • In einer Ausführungsform beinhaltet das Datenspeicher-Subsystem 660 einen Datenspeicher-Controller 664 (der ebenfalls als Teil der Steuerung von System 600 sowie potenziell als Teil des Prozessors 610 angesehen werden kann). Datenspeicher-Controller 664 überwacht auf einen Row Hammer-Zustand. Beispiel: Der Datenspeicher-Controller 664 kann die Anfragen an bestimmte Datenspeicheradressen überwachen und protokollieren, wie häufig eine bestimmte Adresse Gegenstand einer Anfrage ist. Der Datenspeicher-Controller kann nur die Adressen mit der höchsten Zugriffsrate verfolgen, indem die Adressen in ein Protokoll oder in eine Tabelle übernommen werden, die zur Verfolgung der Zugriffshäufigkeit genutzt wird.
  • Die Konnektivität 670 beinhaltet Hardwaregeräte (z. B. drahtlose und/oder verdrahtete Anschlüsse und Kommunikationshardware) und Softwarekomponenten (z. B. Treiber, Protokollstapel), um dem Gerät 600 die Kommunikation mit externen Geräten zu ermöglichen. Das Gerät könnte separate Geräte, wie z. B. andere Rechengeräte, drahtlose Zugangspunkte oder Basisstationen sowie Peripheriegeräte wie Headsets, Drucker oder andere Geräte sein.
  • Die Konnektivität 670 kann mehrere unterschiedliche Arten der Konnektivität einschließen. Zur Verallgemeinerung ist das Gerät 600 mit der Mobilfunkkonnektivität 672 und der drahtlosen Konnektivität 674 veranschaulicht. Die Mobilfunkkonnektivität 672 verweist generell auf Mobilfunknetzkonnektivität, die durch Mobilfunkanbieter, wie beispielsweise GSM (Global System for Mobile Communications) oder Varianten oder Ableitungen, CDMA (Codemultiplexverfahren) oder Varianten oder Ableitungen, TDM (Zeitmultiplexbetrieb) oder Varianten oder Ableitungen, LTE (Long Term Evolution - auch als „4G“ bezeichnet) oder andere Mobilfunkdienststandards bereitgestellt wird. Die drahtlose Konnektivität 674 bezeichnet drahtlose Konnektivität, die kein Mobilfunk ist, und persönliche Netzwerke (wie Bluetooth), lokale Netzwerke (wie WLAN), Weitverkehrsnetzwerke (wie WiMax) und andere drahtlose Kommunikation einschließen kann. Drahtlose Kommunikation verweist auf Datenübertragung durch die Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht festes Medium. Verdrahtete Kommunikation erfolgt durch ein Festkörper-Kommunikationsmedium.
  • Die peripheren Verbindungen 680 beinhalten Hardwareschnittstellen und Anschlüsse sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) zur Herstellung peripherer Verbindungen. Es ist offensichtlich, dass das Gerät 600 sowohl ein peripheres Gerät („zu“ 682) für andere Computergeräte sein kann als auch Peripheriegeräte besitzen kann („von“ 684), die mit ihm verbunden sind. Das Gerät 600 besitzt im Allgemeinen einen „Docking“-Verbinder zur Verbindung mit anderen Computergeräten zum Zweck der Verwaltung (z. B. Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalt auf dem Gerät 600. Zusätzlich kann ein Dockingverbinder dem Gerät 600 ermöglichen, sich mit gewissen Peripheriegeräten zu verbinden, die dem Gerät 600 ermöglichen, beispielsweise die Inhaltsausgabe an audiovisuelle oder andere Systeme zu steuern.
  • Zusätzlich zu einem eigenentwickelten Docking-Verbinder oder anderer eigenentwickelter Verbindungshardware kann das Gerät 600 Peripherieverbindungen 680 über herkömmliche oder auf Standards basierenden Verbindern herstellen. Gewöhnliche Arten können einen USB-Anschluss (der irgendeine von einer Anzahl von unterschiedlichen Hardwareschnittstellen umfassen kann), DisplayPort, MiniDisplayPort (MDP), HDMI-Schnittstelle (HDMI), FireWire oder eine andere Art einschließen.
  • In einem Aspekt beinhaltet ein Datenspeicher-Subsystem Hardware-Verbinder für die Kopplung an eine Datenspeichergerät mit mehreren Datenspeicherreihen und einem Datenspeicher-Controller, welcher an die Hardware-Verbinder gekoppelt ist. Der Datenspeicher-Controller hat die Zugriffe auf die Reihen eines Datenspeichergeräts über einen bestimmten Zeitraum zu überwachen, und festzulegen, ob eine Zugriffshäufigkeit für eine beliebige der Reihen einen Grenzwert überschreitet, und um die Adresseninformationen für eine der Reihen anzugeben, wenn die Anzahl der Zugriffe auf die Reihe den Grenzwert innerhalb des Zeitraums übersteigt. Der Grenzwert, ist dem Risiko einer Datenschädigung in einer Reihe zugewiesen, welche der Reihe, auf die zugegriffen wird, benachbart ist.
  • In einer Ausführungsform ist der Datenspeicher-Controller über die Verbinder an ein DRAM (Dynamic Random Access Memory)-Gerät zu koppeln. In einer Ausführungsform hat der Datenspeicher-Controller die Zugriffe über einen Zeitraum, der einer Aktualisierungszyklusdauer des Datenspeichergerätes entspricht, zu überwachen. In einer Ausführungsform hat der Datenspeicher-Controller die Zugriffe durch die Erfassung der Zählimpulswerte ausschließlich einer Untergruppe aller Reihen und das Hochzählen der Zählimpulswerte für die ausgewählten Reihen bei jedem Zugriff zu überwachen.
  • In einer Ausführungsform hat der Datenspeicher-Controller eine Tabelle der Zugriffs-Zählimpulswerte zur Überwachung der Zugriffe zu pflegen, und die Zugriffs-Zählimpulswerte mit dem Grenzwert zu vergleichen. In einer Ausführungsform hat der Datenspeicher-Controller die Tabelle gemäß der Reihenfolge der Zugriffs-Zählimpulswerte zu sortieren. In einer Ausführungsform hat der Datenspeicher-Controller einen Opferzählimpuls-Höchstwert zu ermitteln, welcher eine maximale Anzahl an Reihen angibt, welche den Grenzwert innerhalb des Zeitraums erreichen können, und worin eine Anzahl der Einträge in der Tabelle auf dem Opfer-Zählimpuls-Höchstwert basiert. in einer Ausführungsform hat, wenn keine leeren Einträge in der Tabelle vorhanden sind und auf eine Reihe zugegriffen wird, welche sich nicht in der Tabelle befindet, der Datenspeicher-Controller den Eintrag durch den niedrigsten Zugriffs-Zählimpulswert der Reihe, auf die zugegriffen wird, zu ersetzen, wobei der vorherige Zugriffs-Zählimpulswert für den Eintrag beibehalten wird und der Zählimpulswert für den Eintrag hochgezählt wird.
  • In einer Ausführungsform hat der Datenspeicher-Controller darüber hinaus einen Befehl zur zielgerichteten Aktualisierung auszulösen, basierend auf der Reihe, welche den Grenzwert überschreitet, als Reaktion auf die Feststellung, dass die Zugriffshäufigkeit auf die Reihe den Grenzwert überschreitet.
  • In einem Aspekt umfasst ein elektronisches Gerät ein Datenspeicher-Subsystem und einen Mehrfachkernprozessor, der an das Datenspeicher-Subsystem gekoppelt ist, um so während der Ausführung des Prozessors auf das Datenspeicher-Subsystem zuzugreifen. Das Datenspeichersystem kann ein Datenspeichergerät zum Speichern von Daten umfassen, wobei das Datenspeichergerät mehrere Datenspeicherreihen beinhaltet, sowie einen Datenspeicher-Controller, der an die Hardware-Verbinder gekoppelt ist. Der Datenspeicher-Controller hat die Zugriffe auf die Reihen eines Datenspeichergeräts über einen bestimmten Zeitraum zu überwachen, und festzulegen, ob eine Zugriffshäufigkeit für eine beliebige der Reihen einen Grenzwert überschreitet, und um die Adresseninformationen für eine der Reihen anzugeben, wenn die Anzahl der Zugriffe auf die Reihe den Grenzwert innerhalb des Zeitraums übersteigt. Der Grenzwert, welcher dem Risiko einer Datenschädigung in einer Reihe zugewiesen ist, welche der Reihe, auf die zugegriffen wird, benachbart ist.
  • In einer Ausführungsform ist der Datenspeicher-Controller über die Verbinder an ein DRAM (Dynamic Random Access Memory)-Gerät zu koppeln. In einer Ausführungsform hat der Datenspeicher-Controller die Zugriffe über einen Zeitraum, der einer Aktualisierungszyklusdauer des Datenspeichergerätes entspricht, zu überwachen. In einer Ausführungsform hat der Datenspeicher-Controller die Zugriffe durch die Erfassung der Zählimpulswerte ausschließlich einer Untergruppe aller Reihen und das Hochzählen der Zählimpulswerte für die ausgewählten Reihen bei jedem Zugriff zu überwachen.
  • In einer Ausführungsform hat der Datenspeicher-Controller eine Tabelle der Zugriffs-Zählimpulswerte zur Überwachung der Zugriffe zu pflegen, und die Zugriffs-Zählimpulswerte mit dem Grenzwert zu vergleichen. In einer Ausführungsform hat der Datenspeicher-Controller die Tabelle gemäß der Reihenfolge der Zugriffs-Zählimpulswerte zu sortieren. In einer Ausführungsform hat der Datenspeicher-Controller einen Opferzählimpuls-Höchstwert zu ermitteln, welcher eine maximale Anzahl an Reihen angibt, welche den Grenzwert innerhalb des Zeitraums erreichen können, und worin eine Anzahl der Einträge in der Tabelle auf dem Opfer-Zählimpuls-Höchstwert basiert. in einer Ausführungsform hat, wenn keine leeren Einträge in der Tabelle vorhanden sind und auf eine Reihe zugegriffen wird, welche sich nicht in der Tabelle befindet, der Datenspeicher-Controller den Eintrag durch den niedrigsten Zugriffs-Zählimpulswert der Reihe, auf die zugegriffen wird, zu ersetzen, wobei der vorherige Zugriffs-Zählimpulswert für den Eintrag beibehalten wird und der Zählimpulswert für den Eintrag hochgezählt wird.
  • In einer Ausführungsform hat der Datenspeicher-Controller darüber hinaus einen Befehl zur zielgerichteten Aktualisierung auszulösen, basierend auf der Reihe, welche den Grenzwert überschreitet, als Reaktion auf die Feststellung, dass die Zugriffshäufigkeit auf die Reihe den Grenzwert überschreitet.
  • In einem Aspekt beinhaltet das Verfahren die Überwachung von Zugriffen auf die Reihen eines Datenspeichergeräts über einen bestimmten Zeitraum und die Festlegung, ob eine Zugriffshäufigkeit auf eine beliebige der Reihen einen Grenzwert überschreitet, und die Angabe der Adresseninformationen für eine der Reihen, wenn die Anzahl der Zugriffe auf die Reihe den Grenzwert innerhalb des Zeitraums übersteigt.
  • In einer Ausführungsform beinhaltet das Verfahren die Überwachung der Zugriffe über einen Zeitraum, der einer Aktualisierungszyklusdauer des Datenspeichergerätes entspricht. In einer Ausführungsform beinhaltet das Verfahren die Überwachung durch die Erfassung der Zählimpulswerte ausschließlich einer Untergruppe aller Reihen und das Hochzählen der Zählimpulswerte für die ausgewählten Reihen bei jedem Zugriff. In einer Ausführungsform umfasst das Verfahren das Führen einer Tabelle der Zugriffs-Zählimpulswerte zur Überwachung der Zugriffe sowie den Vergleich der Zugriffs-Zählimpulswerte mit dem Grenzwert. In einer Ausführungsform beinhaltet das Verfahren das Stieren der Tabelle nach der Reihenfolge der Zugriffs-Zählimpulswerte. In einer Ausführungsform umfasst das Verfahren die Ermittlung eines Opferzählimpuls-Höchstwerts, welcher eine maximale Anzahl an Reihen angibt, welche den Grenzwert innerhalb des Zeitraums erreichen können, und worin eine Anzahl der Einträge in der Tabelle auf dem Opfer-Zählimpuls-Höchstwert basiert. In einer Ausführungsform umfasst, wenn keine leeren Einträge in der Tabelle vorhanden sind und auf eine Reihe zugegriffen wird, welche sich nicht in der Tabelle befindet, das Verfahren das Ersetzen des Eintrags mit dem niedrigsten Zugriffs-Zählimpulswert durch die Reihe, auf die zugegriffen wird, wobei der vorherige Zugriffs-Zählimpulswert für den Eintrag beibehalten wird und der Zählimpulswert für den Eintrag hochgezählt wird.
  • In einer Ausführungsform umfasst das Verfahren ferner die Auslösung eines Befehls zur zielgerichteten Aktualisierung basierend auf der Reihe, welche den Grenzwert überschreitet, als Reaktion auf die Feststellung, dass die Zugriffshäufigkeit auf die Reihe den Grenzwert überschreitet.
  • Ablaufdiagramme, wie sie hier veranschaulicht sind, stellen Beispiele von Sequenzen von verschiedenen Prozessaktionen bereit. Sofern nicht anderweitig spezifiziert, kann die Reihenfolge der Aktionen modifiziert werden, obwohl sie in einer bestimmten Sequenz oder Ordnung gezeigt sind. Somit sollen die veranschaulichten Ausführungsformen nur als ein Beispiel verstanden werden, und der Prozess kann in einer unterschiedlichen Reihenfolge ausgeführt und einige Aktionen können parallel ausgeführt werden. Darüber hinaus können eine oder mehrere Aktionen bei verschiedenen Ausführungsformen ausgelassen werden; somit sind nicht alle Aktionen bei jeder Ausführungsform erforderlich. Andere Prozessabläufe sind möglich.
  • In dem Maße, wie verschiedene Operationen oder Funktionen hierin beschrieben sind, 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), Quellcode oder Differenzcode („Delta“- oder „Patch“-Code) sein. Der Softwareinhalt der hierin beschriebenen Ausführungsformen kann über ein Herstellungsprodukt bereitgestellt sein, auf dem der Inhalt gespeichert ist, oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle, um Daten über die Kommunikationsschnittstelle zu senden. Ein maschinenlesbares Speichermedium kann eine Maschine veranlassen, die beschriebenen Funktionen oder Operationen auszuführen und beinhaltet jeden Mechanismus, der Informationen in einer Form speichert, auf die von einer Maschine zugegriffen werden kann (z. B. Computing-Gerät, Elektroniksystem, etc.), wie beschreibbare/nicht beschreibbare Medien (z. B. Festspeicher (ROM), Direktzugriffsspeicher (RAM), magnetische Plattenspeichermedien, optische Speichermedien, Flash-Memorygeräte etc.). Eine Kommunikationsschnittstelle beinhaltet jeden Mechanismus, der sich mit jedem Medium (festverdrahtet, drahtlos, optisch usw.) verbinden lässt, um mit einem anderen Gerät zu kommunizieren, wie z. B. eine Speicherbusschnittstelle, eine Prozessorbusschnittstelle, eine Internetverbindung, ein Disc-Controller, etc. Die Kommunikationsschnittstelle kann konfiguriert werden, indem Konfigurationsparameter bereitgestellt werden und/oder indem Signale gesendet werden, um die Kommunikationsschnittstelle so vorzubereiten, dass sie Datensignale bereitstellt, die den Softwareinhalt beschreiben. Auf die Kommunikationsschnittstelle kann über einen oder mehr Befehle oder Signale zugegriffen werden, die an die Kommunikationsschnittstelle gesendet werden.
  • Verschiedene hierin beschriebene Komponenten können ein Mittel zum Ausfü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, Spezialhardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), digitale Signalprozessoren (DSPs) usw.), eingebettete Controller, festverdrahtete Schaltungen usw. implementiert sein.

Claims (23)

  1. Datenspeicher-Subsystem, umfassend: Hardware-Verbinder für die Kopplung an ein Datenspeichergerät, welches über mehrere Datenspeicherreihen verfügt; einen Datenspeicher-Controller, der an die Hardware-Verbinder gekoppelt ist, wobei der Datenspeicher-Controller die Zugriffe auf Reihen eines Datenspeichergeräts über einen Zeitraum überwacht; feststellt, ob die Anzahl der Zugriffe auf irgendeine der Reihen einen Grenzwert übersteigt, wobei der Grenzwert dem Risiko einer Datenschädigung in einer Reihe, welche der Reihe, auf die zugegriffen wird, physisch benachbart ist, zugewiesen ist; und Adressinformationen für eine der Reihen anzeigt, wenn die Anzahl der Zugriffe auf die Reihe den Grenzwert im Zeitraum übersteigt.
  2. Datenspeicher-Subsystem nach Anspruch 1, worin der Datenspeicher-Controller über die Verbinder an ein DRAM (Dynamic Random Access Memory)-Gerät zu koppeln ist.
  3. Datenspeicher-Subsystem nach Anspruch 1, worin der Datenspeicher-Controller die Zugriffe über einen Zeitraum, der einer Aktualisierungszyklusdauer des Datenspeichergerätes entspricht, zu überwachen hat.
  4. Datenspeicher-Subsystem nach Anspruch 1, worin der Datenspeicher-Controller die Zugriffe durch die Erfassung der Zählimpulswerte ausschließlich einer Untergruppe aller Reihen und das Hochzählen der Zählimpulswerte für die ausgewählten Reihen bei jedem Zugriff zu überwachen hat.
  5. Datenspeicher-Subsystem nach Anspruch 1, worin der Datenspeicher-Controller eine Tabelle der Zugriffs-Zählimpulswerte zur Überwachung der Zugriffe pflegt, und die Zugriffs-Zählimpulswerte mit dem Grenzwert zu vergleichen hat.
  6. Datenspeicher-Subsystem nach Anspruch 5, worin der Datenspeicher-Controller die Tabelle nach der Reihenfolge der Zugriffszählimpulse zu sortieren hat.
  7. Datenspeicher-Subsystem nach Anspruch 5, worin der Datenspeicher-Controller einen Opferzählimpuls-Höchstwert zu ermitteln hat, welcher eine maximale Anzahl an Reihen angibt, welche den Grenzwert innerhalb des Zeitraums erreichen können, und worin die Anzahl der Einträge in der Tabelle auf dem Opfer-Zählimpuls-Höchstwert basiert.
  8. Datenspeicher-Subsystem nach Anspruch 7, worin, wenn keine leeren Einträge in der Tabelle vorhanden sind und auf eine Reihe zugegriffen wird, welche sich nicht in der Tabelle befindet, der Datenspeicher-Controller den Eintrag durch den niedrigsten Zugriffs-Zählimpulswert der Reihe, auf die zugegriffen wird, zu ersetzen hat, wobei der vorherige Zugriffs-Zählimpulswert für den Eintrag beibehalten wird und der Zählimpulswert für den Eintrag hochgezählt wird.
  9. Datenspeicher-Subsystem nach Anspruch 1, worin der Datenspeicher-Controller darüber hinaus einen Befehl zur zielgerichteten Aktualisierung auszugeben hat, basierend auf der Reihe, welche den Grenzwert überschreitet, in Reaktion auf die Feststellung, dass die Zugriffshäufigkeit auf die Reihe den Grenzwert überschreitet.
  10. Elektronisches Gerät, umfassend: ein Datenspeicher-Subsystem mit einem Datenspeichergerät zum Speichern von Daten, wobei das Datenspeichergerät mehrere Datenspeicherreihen umfasst; und einem Datenspeicher-Controller, der an die Hardware-Verbinder gekoppelt ist, wobei der Datenspeicher-Controller die Zugriffe auf die Reihen eines Datenspeichergeräts über einen bestimmten Zeitraum zu überwachen hat, zur Feststellung, ob eine Zugriffshäufigkeit für eine beliebige der Reihen einen Grenzwert überschreitet, und um die Adresseninformationen für eine der Reihen anzugeben, wenn die Zugriffshäufigkeit auf die Reihe den Grenzwert innerhalb des Zeitraums übersteigt. ein mit dem Speichersubsystem gekoppelter Mehrkernprozessor, um auf das Speichersubsystem während der Ausführung des Prozessors zuzugreifen.
  11. Elektronisches Gerät nach Anspruch 10, worin der Datenspeicher-Controller die Zugriffe über einen Zeitraum, der einer Aktualisierungszyklusdauer des Datenspeichergerätes entspricht, zu überwachen hat.
  12. Elektronisches Gerät nach Anspruch 10, worin der Datenspeicher-Controller die Zugriffe durch die Erfassung der Zählimpulswerte ausschließlich einer Untergruppe aller Reihen und das Hochzählen der Zählimpulswerte für die ausgewählten Reihen bei jedem Zugriff zu überwachen hat.
  13. Elektronisches Gerät nach Anspruch 10, worin der Datenspeicher-Controller eine Tabelle der Zugriffs-Zählimpulswerte zur Überwachung der Zugriffe pflegt, und die Zugriffs-Zählimpulswerte mit dem Grenzwert zu vergleichen hat.
  14. Elektronisches Gerät nach Anspruch 13, worin der Datenspeicher-Controller einen Opferzählimpuls-Höchstwert zu ermitteln hat, welcher eine maximale Anzahl an Reihen angibt, welche den Grenzwert innerhalb des Zeitraums erreichen können, und worin die Anzahl der Einträge in der Tabelle auf dem Opfer-Zählimpuls-Höchstwert basiert.
  15. Elektronisches Gerät nach Anspruch 14, worin, wenn keine leeren Einträge in der Tabelle vorhanden sind und auf eine Reihe zugegriffen wird, welche sich nicht in der Tabelle befindet, der Datenspeicher-Controller den Eintrag durch den niedrigsten Zugriffs-Zählimpulswert der Reihe, auf die zugegriffen wird, zu ersetzen hat, wobei der vorherige Zugriffs-Zählimpulswert für den Eintrag beibehalten wird und der Zählimpulswert für den Eintrag hochgezählt wird.
  16. Elektronisches Gerät nach Anspruch 10, worin der Datenspeicher-Controller darüber hinaus einen Befehl zur zielgerichteten Aktualisierung auszugeben hat, basierend auf der Reihe, welche den Grenzwert überschreitet, in Reaktion auf die Festlegung, dass die Zugriffshäufigkeit auf die Reihe den Grenzwert überschreitet.
  17. Verfahren, umfassend: die Überwachung der Zugriffe auf Reihen eines Datenspeichergeräts über einen Zeitraum hinweg; die Feststellung, ob die Anzahl der Zugriffe auf irgendeine der Reihen einen Grenzwert übersteigt, wobei der Grenzwert dem Risiko einer Datenschädigung in einer Reihe, welche der Reihe, auf die zugegriffen wird, physisch benachbart ist, zugewiesen ist; und die Angabe von Adressinformationen für eine der Reihen, wenn die Anzahl der Zugriffe auf die Reihe den Grenzwert im Zeitraum übersteigt.
  18. Verfahren nach Anspruch 17, worin die Überwachung der Zugriffe die Überwachung der Zugriffe über einen Zeitraum, welcher einer Aktualisierungszyklusdauer des Datenspeichergerätes entspricht, umfasst.
  19. Verfahren nach Anspruch 17, worin die Überwachung der Zugriffe darüber hinaus die Erfassung der Zählimpulswerte ausschließlich einer Untergruppe aller Reihen und das Hochzählen der Zählimpulswerte für die ausgewählten Reihen bei jedem Zugriff umfasst.
  20. Verfahren nach Anspruch 17, worin die Überwachung der Zugriffe darüber hinaus das Führen einer Tabelle der Zugriffs-Zählimpulswerte zur Überwachung der Zugriffe und das Vergleichen der Zugriffs-Zählimpulse mit dem Grenzwert umfasst.
  21. Verfahren nach Anspruch 20, worin die Überwachung des Zugriffs darüber hinaus die Feststellung eines Opferzählimpuls-Höchstwerts umfasst, welcher eine maximale Anzahl an Reihen angibt, welche den Grenzwert innerhalb des Zeitraums erreichen können, und worin die Anzahl der Einträge in der Tabelle auf dem Opfer-Zählimpuls-Höchstwert basiert.
  22. Verfahren nach Anspruch 21, worin, wenn keine leeren Einträge in der Tabelle vorhanden sind und auf eine Reihe zugegriffen wird, welche sich nicht in der Tabelle befindet, die Überwachung des Zugriffs mithilfe der Tabelle darüber hinaus das Ersetzen des Eintrags durch den niedrigsten Zugriffs-Zählimpulswert der Reihe, auf die zugegriffen wird, umfasst, wobei der vorherige Zugriffs-Zählimpulswert für den Eintrag beibehalten wird und der Zählimpulswert für den Eintrag hochgezählt wird.
  23. Verfahren nach Anspruch 17, darüber hinaus umfassend das Auslösen eines Befehls zur zielgerichteten Aktualisierung basierend auf der Reihe, welche den Grenzwert überschreitet, welcher infolge der Ermittlung der Zugriffshäufigkeit auf die Reihe den Grenzwert überschreitet.
DE112013003312.7T 2012-06-30 2013-06-14 Datenspeicher-Subsystem, Elektronisches Gerät und Verfahren zur Überwachung des "Row Hammer"-Zustands Active DE112013003312B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/539,417 2012-06-30
US13/539,417 US8938573B2 (en) 2012-06-30 2012-06-30 Row hammer condition monitoring
PCT/US2013/045793 WO2014004111A1 (en) 2012-06-30 2013-06-14 Row hammer condition monitoring

Publications (2)

Publication Number Publication Date
DE112013003312T5 DE112013003312T5 (de) 2015-05-07
DE112013003312B4 true DE112013003312B4 (de) 2023-02-02

Family

ID=49779440

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013003312.7T Active DE112013003312B4 (de) 2012-06-30 2013-06-14 Datenspeicher-Subsystem, Elektronisches Gerät und Verfahren zur Überwachung des "Row Hammer"-Zustands

Country Status (3)

Country Link
US (1) US8938573B2 (de)
DE (1) DE112013003312B4 (de)
WO (1) WO2014004111A1 (de)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11024352B2 (en) 2012-04-10 2021-06-01 Samsung Electronics Co., Ltd. Memory system for access concentration decrease management and access concentration decrease method
US9236110B2 (en) 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US9030903B2 (en) 2012-09-24 2015-05-12 Intel Corporation Method, apparatus and system for providing a memory refresh
US20140085995A1 (en) * 2012-09-25 2014-03-27 Zvika Greenfield Method, apparatus and system for determining a count of accesses to a row of memory
US9299400B2 (en) 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
US9032141B2 (en) * 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9384821B2 (en) 2012-11-30 2016-07-05 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
EP2974110B1 (de) 2013-03-14 2019-10-16 Intel Corporation Datenschutzbewusster dhcp-dienst
US9355689B2 (en) * 2013-08-20 2016-05-31 Oracle International Corporation Detection of multiple accesses to a row address of a dynamic memory within a refresh period
US9047978B2 (en) 2013-08-26 2015-06-02 Micron Technology, Inc. Apparatuses and methods for selective row refreshes
US9934143B2 (en) 2013-09-26 2018-04-03 Intel Corporation Mapping a physical address differently to different memory devices in a group
US9589606B2 (en) * 2014-01-15 2017-03-07 Samsung Electronics Co., Ltd. Handling maximum activation count limit and target row refresh in DDR4 SDRAM
KR102193993B1 (ko) * 2014-02-21 2020-12-22 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
KR102194003B1 (ko) * 2014-02-25 2020-12-22 삼성전자주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
JP6224483B2 (ja) * 2014-02-26 2017-11-01 Necプラットフォームズ株式会社 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム
US9431085B2 (en) * 2014-03-28 2016-08-30 Synopsys, Inc. Most activated memory portion handling
JP2015219938A (ja) 2014-05-21 2015-12-07 マイクロン テクノロジー, インク. 半導体装置
US9431086B2 (en) 2014-10-06 2016-08-30 Winbond Electronics Corp. Memory circuit and refresh method thereof
US10497409B2 (en) 2014-12-17 2019-12-03 International Business Machines Corporation Implementing DRAM row hammer avoidance
KR102250622B1 (ko) * 2015-01-07 2021-05-11 삼성전자주식회사 메모리 장치의 동작 방법 및 이를 포함하는 메모리 시스템의 동작 방법
GB201500446D0 (en) * 2015-01-12 2015-02-25 Univ Manchester Monitoring device
US9666257B2 (en) 2015-04-24 2017-05-30 Intel Corporation Bitcell state retention
US9812185B2 (en) 2015-10-21 2017-11-07 Invensas Corporation DRAM adjacent row disturb mitigation
KR102388746B1 (ko) 2015-11-11 2022-04-20 삼성전자주식회사 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법
JP2017182854A (ja) 2016-03-31 2017-10-05 マイクロン テクノロジー, インク. 半導体装置
US9741421B1 (en) 2016-04-05 2017-08-22 Micron Technology, Inc. Refresh circuitry
KR102468728B1 (ko) * 2016-08-23 2022-11-21 에스케이하이닉스 주식회사 리프레쉬 제어 회로, 반도체 메모리 장치 및 그의 동작 방법
KR20180072314A (ko) * 2016-12-21 2018-06-29 에스케이하이닉스 주식회사 반도체장치
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
JP7008410B2 (ja) * 2017-02-10 2022-01-25 キヤノン株式会社 メモリコントローラおよび方法
US10198369B2 (en) * 2017-03-24 2019-02-05 Advanced Micro Devices, Inc. Dynamic memory remapping to reduce row-buffer conflicts
FR3066842B1 (fr) * 2017-05-24 2019-11-08 Upmem Logique de correction de row hammer pour dram avec processeur integre
WO2019010370A1 (en) * 2017-07-06 2019-01-10 Raghuveer Basude FABRIC PREVENTION DEVICES AND ASSOCIATED METHODS
US10338831B2 (en) * 2017-08-23 2019-07-02 Nanya Technology Corporation System and method for preserving data in volatile memory
US10672449B2 (en) 2017-10-20 2020-06-02 Micron Technology, Inc. Apparatus and methods for refreshing memory
US10170174B1 (en) 2017-10-27 2019-01-01 Micron Technology, Inc. Apparatus and methods for refreshing memory
US10580475B2 (en) 2018-01-22 2020-03-03 Micron Technology, Inc. Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device
US10388363B1 (en) 2018-01-26 2019-08-20 Micron Technology, Inc. Apparatuses and methods for detecting a row hammer attack with a bandpass filter
US11017833B2 (en) 2018-05-24 2021-05-25 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
US11281796B2 (en) * 2018-06-13 2022-03-22 At&T Intellectual Property I, L.P. Blockchain based information management
US11152050B2 (en) 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
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
CN111354393B (zh) 2018-12-21 2023-10-20 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10957377B2 (en) 2018-12-26 2021-03-23 Micron Technology, Inc. Apparatuses and methods for distributed targeted refresh operations
US11256427B2 (en) * 2018-12-28 2022-02-22 Micron Technology, Inc. Unauthorized memory access mitigation
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
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
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
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US11139015B2 (en) 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
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
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11914517B2 (en) * 2020-09-25 2024-02-27 Advanced Micro Devices, Inc. Method and apparatus for monitoring memory access traffic
US11594273B2 (en) * 2020-10-14 2023-02-28 Hewlett Packard Enterprise Development Lp Row hammer detection and avoidance
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11783884B2 (en) 2020-12-10 2023-10-10 SK Hynix Inc. Semiconductor memory device and memory system including the same
US11749371B2 (en) 2020-12-14 2023-09-05 SK Hynix Inc. Memory system including memory device performing target refresh
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
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
US12027199B2 (en) 2021-05-26 2024-07-02 Samsung Electronics Co., Ltd. Memory device and method of controlling row hammer
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
KR20230072283A (ko) 2021-11-17 2023-05-24 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
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
US20230195337A1 (en) * 2021-12-22 2023-06-22 Micron Technology, Inc. Dual-level refresh management
KR20230163172A (ko) 2022-05-23 2023-11-30 에스케이하이닉스 주식회사 로우해머링추적동작을 수행하기 위한 반도체시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012074724A1 (en) 2010-12-03 2012-06-07 Rambus Inc. Memory refresh method and devices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193072A (en) 1990-12-21 1993-03-09 Vlsi Technology, Inc. Hidden refresh of a dynamic random access memory
US6968398B2 (en) 2001-08-15 2005-11-22 International Business Machines Corporation Method of virtualizing I/O resources in a computer system
KR100564633B1 (ko) 2004-09-25 2006-03-28 삼성전자주식회사 향상된 동작 성능을 가지는 반도체 메모리 장치 및 이에대한 액세스 제어 방법
US7307896B2 (en) 2005-03-11 2007-12-11 Micron Technology, Inc. Detection of row-to-row shorts and other row decode defects in memory devices
US7516395B2 (en) 2005-10-12 2009-04-07 Nokia Corporation Memory checking apparatus and method
JP2007179639A (ja) 2005-12-27 2007-07-12 Elpida Memory Inc 半導体記憶装置
KR100810060B1 (ko) 2006-04-14 2008-03-05 주식회사 하이닉스반도체 반도체 메모리 소자 및 그의 구동방법
US7286377B1 (en) 2006-04-28 2007-10-23 Mosaid Technologies Incorporated Dynamic random access memory device and method for self-refreshing memory cells with temperature compensated self-refresh
US7788444B2 (en) 2006-12-12 2010-08-31 International Business Machines Corporation Multi-hit detection in associative memories
US7474579B2 (en) * 2006-12-20 2009-01-06 Spansion Llc Use of periodic refresh in medium retention memory arrays
JP5104864B2 (ja) 2007-07-11 2012-12-19 富士通セミコンダクター株式会社 半導体記憶装置及びシステム
TWI367486B (en) 2007-12-25 2012-07-01 Ind Tech Res Inst Memory device and refresh method thereof
US20090217281A1 (en) * 2008-02-22 2009-08-27 John M Borkenhagen Adaptable Redundant Bit Steering for DRAM Memory Failures
JP5259270B2 (ja) * 2008-06-27 2013-08-07 ルネサスエレクトロニクス株式会社 半導体装置
JP5478855B2 (ja) 2008-08-08 2014-04-23 ルネサスエレクトロニクス株式会社 不揮発性メモリ制御方法及び半導体装置
US8417252B2 (en) 2008-10-24 2013-04-09 Qualcomm Incorporated Method and apparatus for interference reporting in a N-MIMO communication system
US7859932B2 (en) 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US7990795B2 (en) 2009-02-19 2011-08-02 Freescale Semiconductor, Inc. Dynamic random access memory (DRAM) refresh
US8560796B2 (en) 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
US8341500B2 (en) 2010-08-31 2012-12-25 Apple Inc. Detecting corrupted data for a system having non-volatile memory
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012074724A1 (en) 2010-12-03 2012-06-07 Rambus Inc. Memory refresh method and devices

Also Published As

Publication number Publication date
US8938573B2 (en) 2015-01-20
DE112013003312T5 (de) 2015-05-07
WO2014004111A1 (en) 2014-01-03
US20140006704A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
DE112013003312B4 (de) Datenspeicher-Subsystem, Elektronisches Gerät und Verfahren zur Überwachung des "Row Hammer"-Zustands
US11797438B2 (en) Coordinated garbage collection in distributed systems
DE112015006117B4 (de) Halbleiterlaufwerk mit selbstaktualisierungsenergiesparmodus
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE102011076895B4 (de) Cachekohärenzprotokoll für persistente Speicher
DE112018002951T5 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE202015009267U1 (de) Priorisierung von Datenrekonstruktion in verteilten Speichersystemen
US20160019119A1 (en) Prioritizing backup of files
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
DE102007051841A1 (de) Unabhängige Energiesteuerung von Prozessorkernen
US8244682B2 (en) Saving snapshot of a knowledge base without blocking
DE112020004591T5 (de) L2P-Übersetzungstechniken in begrenzten RAM-Systemen
DE102011075023A1 (de) Indexierter Registerzugriff für einen Speicherbaustein
DE102014108049A1 (de) Intelligente Abfragehäufigkeit
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112015000541T5 (de) Rampenförmiges Ändern einer Blockierspannung während einer Speicherprogrammierung
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112018000842T5 (de) Mehrkern-on-die-speichermikrocontroller
DE202015009296U1 (de) System zum Laden virtueller Maschinen
DE112012006070T5 (de) Speichergerät, das auf Gerätebefehle zur Betriebssteuerung reagiert
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102018204931A1 (de) Dauerhaftes Caching eines arbeitsspeicherseitigen Cache-Inhalts
DE102020119400A1 (de) Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung
DE102008016180A1 (de) Darlegen von Systemtopologie für die Ausführungsumgebung

Legal Events

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