DE102022106019A1 - Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion - Google Patents

Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion Download PDF

Info

Publication number
DE102022106019A1
DE102022106019A1 DE102022106019.5A DE102022106019A DE102022106019A1 DE 102022106019 A1 DE102022106019 A1 DE 102022106019A1 DE 102022106019 A DE102022106019 A DE 102022106019A DE 102022106019 A1 DE102022106019 A1 DE 102022106019A1
Authority
DE
Germany
Prior art keywords
memory
back pressure
memory chip
pressure signal
rowhammer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022106019.5A
Other languages
English (en)
Inventor
Kuljit S. Bains
Bill Nale
JongWon Lee
Sreenivas Mandava
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 DE102022106019A1 publication Critical patent/DE102022106019A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/025Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

Ein Speicherchip wird beschrieben. Der Speicherchip weist eine Schaltungsanordnung zum Detektieren einer Rowhammer-Bedrohung auf. Der Speicherchip weist einen Ausgang auf. Der Speicherchip weist eine Gegendrucksignal-Erzeugerschaltungsanordnung auf, die zwischen die Rowhammer-Detektionsschaltungsanordnung und den Ausgang gekoppelt ist. Das Gegendrucksignal-Erzeugungssignal soll ein Gegendrucksignal erzeugen, das vom Ausgang als Reaktion auf eine Detektion einer Rowhammer-Bedrohung durch die Rowhammer-Detektionsschaltungsanordnung gesendet werden soll.

Description

  • Verwandte Fälle
  • Die vorliegende Patentanmeldung beansprucht den Prioritätsvorteil der vorläufigen US-Patentanmeldung Nr. 63/183,509 mit dem Titel „Method and Apparatus For Row Hammer Recovery“, eingereicht am 3. Mai 2021, die durch diesen Verweis als insgesamt hierin aufgenommen gilt.
  • Gebiet der Erfindung
  • Das Gebiet der Erfindung betrifft die Informatik allgemein und insbesondere ein Verfahren und eine Einrichtung für ein Gegendrucksignal bei einer Speicherchip-Rowhammer-Bedrohung und eine hostseitige Reaktion.
  • Hintergrund
  • Eine dynamische Direktzugriffsspeicher (DRAM, Dynamic Random Access Memory) -Zelle speichert Ladung in einer kapazitiven Zelle. Während eines Bereitschaftsmodus (wenn kein Zugriff auf die Zelle erfolgt) kann Ladung kontinuierlich aus einer Zelle zu dem Punkt lecken, an dem ihr gespeicherter Wert geändert wird (z. B. von 1 zu 0).
  • Um einen solchen Datenverlust zu verhindern, ist ein DRAM-Speicherchip dazu ausgelegt, seine Speicherzellen aufzufrischen. Die Auffrischungsaktivität beinhaltet typischerweise das Auslesen einer Zelle, um ihren gespeicherten Wert zu detektieren, und anschließend das Zurückschreiben desselben Werts in die Zelle. Die Schreiboperation füllt die Zelle mit einer neuen Ladungsmenge für den speziellen gespeicherten Wert auf.
  • Um die Integrität seiner Daten über eine längere Laufzeit zu gewährleisten, frischt ein Speicherchip seine Speicherzellen in regelmäßigen Abständen auf. Insbesondere wird jede Zelle in der Zellenanordnung des Speicherchips mit ausreichender Häufigkeit aufgefrischt, um den Verlust der darin gespeicherten Daten zu verhindern, selbst wenn selten auf die Zelle zugegriffen wird.
  • Ein kürzlich veröffentlichter Standard des Joint Electron Device Engineering Council (JEDEC), Dual Data Rate 5 („DDR5“), definiert ein kooperatives Auffrischungsverhalten zwischen einem Speicherchip und dem Host (Speichersteuerung). Insbesondere definiert ein Speicherchiphersteller (im Modusregister (MR) -Raum eines Speicherchips) gewisse Zeitsteuerungsanforderungen in Bezug auf das Auffrischen der Zellen in der Zellenanordnung des Speicherchips.
  • Die Speichersteuerung liest die Zeitsteuerungsanforderungen aus und plant REFRESH (Auffrischungs) -Befehle gemäß einem Plan, der mit den Zeitsteuerungsanforderungen übereinstimmt. Die Speichersteuerung gibt dann in Übereinstimmung mit dem Plan REFRESH-Befehle an den Speicherchip aus. Als Reaktion auf jeden REFRESH-Befehl frischt der Speicherchip Zellen mit einer Granularität auf, die durch den Typ des empfangenen REFRESH-Befehls festgelegt ist (alle Bänke in einer speziellen Bankgruppe oder dieselbe Bank in allen Bankgruppen).
  • DRAM-Speicherzellen können auch von einem Datenkorruptionsmechanismus betroffen sein, der als „Rowhammer“ bezeichnet wird. Im Fall eines Rowhammers können Daten in Zellen beschädigt werden, die mit Reihen gekoppelt sind, die nahe (z. B. neben) einer Reihe liegen, die häufig aktiviert wird. Von daher weisen Speichersysteme idealerweise Zähler auf, die Aktivierungen von Reihen überwachen. Falls angenommen wird, dass eine Reihe über ein Zeitfenster eine Anzahl von Aktivierungen empfangen hat, die einen Schwellenwert überschreitet, werden die Zellen, die mit den nahegelegenen Reihen gekoppelt sind, proaktiv aufgefrischt, um sie vor dem Rowhammer-Effekt zu schützen.
  • Der JEDEC-DDR5-Standard beinhaltet einen Lösungsansatz zur Abschwächung von Rowhammer-Angriffen, der als „Auffrischungsverwaltung“ bezeichnet wird. Im Fall der Auffrischungsverwaltung zählt die Speichersteuerung die Reihenaktivierungen pro Bank. Falls die Anzahl für eine Bank einen Schwellenwert überschreitet, der durch den Speicherchiphersteller festgelegt ist, gibt die Speichersteuerung Auffrischungsverwaltungs (RFM, Refresh Management) -Befehle an den Speicherchip aus.
  • Als Reaktion auf jeden RFM-Befehl frischt der Speicherchip Zellen mit einer Granularität auf, die durch den Typ des empfangenen RFM-Befehls festgelegt ist (alle Bänke in einer speziellen Bankgruppe oder dieselbe Bank in allen Bankgruppen). Insbesondere sind Auffrischungen, die als Reaktion auf RFM-Befehle durchgeführt werden, zusätzliche Auffrischungen über die normalen geplanten Auffrischungen hinaus, die mit REFRESH-Befehlen implementiert werden wie oben beschrieben.
  • Der DDR5-Standard stellt auch einen Mechanismus für einen Speicherchip bereit, um das Vorliegen eines Problems an die Speichersteuerung zurückzumelden. Eine typische DDR5-Implementierung, wie in 1 dargestellt, weist ein Paar von Unterkanälen 101_1, 101_2 auf, die zwischen eine Speichersteuerung 102 und ein Speichermodul 103 gekoppelt sind. Der Einfachheit halber sind die entsprechenden Speichermodulkomponenten für nur einen der Unterkanäle dargestellt. Wie in 1 zu sehen, weisen diese Komponenten für einen Unterkanal eine erste und eine zweite Reihe von Speicherchips 104_1, 104_2, die Daten an die Speichersteuerung 102 senden bzw. von dieser empfangen, und einen Registertakttreiber (RCD, Register Clock Driver) -Chip 105, der Befehls- und Adress- (C/A, Command/Address) -Signale von der Speichersteuerung empfängt, auf.
  • Jeder Speicherchip 106 weist einen Alert n-Ausgang 107 auf, der dazu dient zu signalisieren, dass ein Fehler in der zyklischen Redundanzprüfung (CRC, Cyclic Redundancy Check) eines Schreibvorgangs aufgetreten ist („DQ-CRC“-Schreibfehler). Hier werden DDR5-Datentransfers in Bursts durchgeführt, die mehrere Zyklen in Anspruch nehmen. Tatsächliche Daten werden während der früheren Zyklen übertragen und CRC-Informationen werden während der späteren Zyklen übertragen. Pro Schreib-Burst berechnet jeder Speicherchip in der Zielreihe intern seine eigenen CRC-Informationen aus den Daten, die er empfängt, und vergleicht sie mit den empfangenen CRC-Informationen. Falls es eine Diskrepanz gibt, setzt der Speicherchip ein Flag an seinem Alert n-Ausgang 107 (der Übersichtlichkeit der Zeichnung halber sind in 1 nur ein Speicherchip 106 und ein Alert n-Ausgang 107 gekennzeichnet).
  • Die Alert_n-Ausgänge jedes der Speicherchips innerhalb ein und derselben Reihe werden miteinander verbunden und an den RCD-Chip 105 geleitet. Falls ein Speicherchip innerhalb von 3 bis 13 ns seit dem Ereignis gemäß dem DDR5-Standard detektiert, dass ein DQ-CRC-Schreibfehler aufgetreten ist, erzeugt der Speicherchip einen Impuls mit einer Breite in einem Bereich von 12 bis 20 Taktzyklen (nCK). Der RCD-Chip 105 empfängt den Impuls und steuert ihn auf den ALERT_N-Draht 108 des Unterkanals um, um die Speichersteuerung über das Ereignis zu informieren.
  • Zusätzlich dazu ist der RCD-Chip 105 dazu ausgelegt, Paritätsfehler in Bezug auf die empfangenen C/A-Signale des Unterkanals zu detektieren. Falls der RCD-Chip 105 einen Paritätsfehler innerhalb der C/A-Signale detektiert, erzeugt der RCD-Chip 105 einen Impuls auf dem ALERT_N-Draht 108 des Unterkanals mit einer Breite von 60-120 ns, um die Speichersteuerung über das Ereignis zu informieren.
  • 2 stellt die Zeitfenster sowohl für den DQ-CRC-Schreibfehler- als auch für den C/A-Paritätsfehlerimpuls dar. Wie in 2 zu sehen, sind beide Impulse insofern logisch niedrig („Low“), als sie beide mit einer fallenden Flanke beginnen und mit einer ansteigenden Flanke enden. Insbesondere ist die minimale Impulsbreite des C/A-Paritätsfehlers länger als die maximale Impulsbreite des DQ-CRC-Schreibfehlers, so dass die Speichersteuerung unterscheiden kann, welcher Fehlertyp aufgetreten ist.
  • Figurenliste
  • Ein besseres Verständnis der vorliegenden Erfindung ergibt sich anhand der nachstehenden ausführlichen Beschreibung im Zusammenhang mit den folgenden Zeichnungen, in denen gilt:
    • 1 (Stand der Technik) stellt eine Speichersteuerung dar, die mit einem Speichermodul gekoppelt ist;
    • 2 (Stand der Technik) stellt CRC-Schreibfehler- und C/A-Paritätsfehlersignale dar;
    • 3 zeigt einen verbesserten Speicherchip;
    • 4 zeigt ein Gegendrucksignal;
    • 5 zeigt eine verbesserte Speichersteuerung;
    • 6 zeigt ein System;
    • 7 zeigt ein Rechenzentrum;
    • 8 zeigt eine Umgebung.
  • Ausführliche Beschreibung
  • Es wird erwartet, dass Speicherchips künftiger Generationen so gestaltet sind, dass sie eigene Schaltungsanordnungen zur Detektion von Rowhammer-Bedrohungen aufweisen. Zum Beispiel wird erwartet, dass wenigstens einige Speicherchips künftiger Generationen zusätzliche DRAM-Zellen pro Reihe aufweisen werden, die dazu dienen, die Zählung der Aktivierungen der betreffenden Reihe zu halten. Falls die Reihenaktivierungszählung für eine bestimmte Reihe einen Schwellenwert erreicht, erkennt der Speicherchip das Vorhandensein einer „nominalen“ Rowhammer-Bedrohung.
  • Eine erweiterte Rowhammer-Bedrohung kann auftreten, wenn die jeweiligen Aktivierungszählungen für eine Anzahl verschiedener Reihen in demselben Speicherchip jeweils ihre jeweiligen Schwellenwerte ungefähr gleichzeitig erreichen („Rowhammer-Überlast“). In diesem Fall wird erwartet, dass der Speicherchip erhebliche Zeit braucht, die Gesamtheit der bedrohten Reihen (ein Satz nahegelegener Reihen pro Reihe, deren Schwellenwert erreicht wurde) aufzufrischen.
  • Unabhängig davon, welcher Typ von Rowhammer-Bedrohung durch den Speicherchip detektiert wird (eine „nominale“ Rowhammer-Bedrohung oder eine „Rowhammer-Überlast“-Bedrohung, im Folgenden kollektiv als „Rowhammer (RH)-Bedrohung“, „Rowhammer (RH) -Ereignis“ oder dergleichen bezeichnet), sollte der Speicherchip die Speichersteuerung darüber informieren, dass er eine Rowhammer-Bedrohung detektiert hat.
  • Zusätzlich, insbesondere in Fällen, in denen erwartet wird, dass die Rowhammer-Bedrohung nicht abgeschwächt wird, bis eine große Anzahl von Auffrischungen durchgeführt wurden (z. B. Rowhammer-Überlast), sollte der Speicherchip irgendeine Art von Rowhammer-bezogenem Gegendrucksignal an die Speichersteuerung senden, das die Speichersteuerung darüber informiert, dass es vorübergehend unzweckmäßig ist, weitere Lese-, Schreib- oder Aktivierungsbefehle an den Speicherchip zu senden.
  • In 3 ist daher ein verbesserter Speicherchip 301 dargestellt, der eine erste Schaltungsanordnung 301 zum internen Detektieren einer RH-Bedrohung und eine zweite Schaltungsanordnung 302 zum Erzeugen und Senden eines RH-Gegendrucksignals von seinem Alert n-Ausgang 304 als Reaktion auf die interne Detektion einer RH-Bedrohung aufweist. Gemäß verschiedenen Speichermodulimplementierungen wird, in Übereinstimmung mit der Erörterung von 1 oben, das RH-Gegendrucksignal durch einen RCD-Chip empfangen und auf den ALERT_N-Draht eines Unterkanals umgesteuert.
  • In verschiedenen Ausführungsformen unterscheidet sich die Struktur des RH-Gegendrucksignals sowohl von dem DQ-CRC-Schreibfehler als auch von dem C/A-Paritätsfehler, so dass es durch die Speichersteuerung von diesen Signalen unterschieden werden kann.
  • Insbesondere ist, wie in 4 zu sehen, die minimale Impulsbreite für das RH-Gegendrucksignal größer als die maximale Impulsbreite für das C/A-Paritätsfehlersignal. Sobald hier ein Impuls auf dem ALERT _N-Draht mit einem High-zu-Low-Übergang gesetzt ist, erkennt die Speichersteuerung, falls der anschließende Low-zu-High-Übergang, der das Ende des Impulses markiert, innerhalb der folgenden 60 ns auftritt, dass ein DQ-CRC-Schreibfehlersignal gesendet wird. Wenn dagegen der anschließende Low-zu-High-Übergang nach 60 ns, aber innerhalb von 120 ns auftritt, erkennt die Speichersteuerung, dass ein C/A-Paritätsfehlersignal gesendet wird. Und schließlich versteht, wenn stattdessen der nachfolgende Low-zu-High-Übergang 401 nach 120 ns auftritt, die Speichersteuerung, dass ein RH-Gegendrucksignal gesendet wird.
  • In verschiedenen Ausführungsformen, wie in 4 dargestellt, ist die minimale Impulsbreite des Gegendrucksignals als 150 ns definiert, so dass es eine Impulsbreitendifferenz von 30 ns zwischen dem C/A-Paritätsfehlersignal und dem Gegendrucksignal gibt. Dies ermöglicht eine einfache Unterscheidung durch die Speichersteuerung, ob ein C/A-Paritätsfehlersignal gesendet wird oder ob ein RH-Gegendrucksignal gesendet wird (falls der Low-zu-High-Übergang 60 ns, aber innerhalb von 120 ns auftritt, erkennt die Speichersteuerung, dass ein C/A-Paritätsfehlersignal gesendet wird, oder, falls der Low-zu-High-Übergang 401 bei oder nach 150 ns auftritt, versteht die Speichersteuerung, dass ein Gegendrucksignal gesendet wird).
  • In verschiedenen Ausführungsformen sind die Definitionen für die minimale und/oder maximale Impulsbreite für das Gegendrucksignal im MR-Raum 305 des Speicherchips definiert (z. B. zusammen mit Impulsbreitendefinitionen für den DQ-CRC-Schreib- und/oder den C/A-Paritätsbitfehler).
  • In weiteren Ausführungsformen weist der MR-Raum 305 auch einen „Teilbefehlsblock“ (Partial CMD Block) -Parameter auf, der ein Zeitfenster 402 definiert, innerhalb dessen die Speichersteuerung das Senden wenigstens derjenigen Befehle einstellen soll, die eine Rowhammer-Bedrohung verschärfen können (Lesen, Schreiben, Aktivieren). Hier beginnt das Teilbefehlsblock-Zeitfenster 402 bei der ansteigenden/fallenden Flanke des ALERT_N-Impulses und endet innerhalb eines Zeitbereichs, der im MR-Raum des Speicherchips festgelegt ist. Innerhalb des Zeitfensters 402 stellt die Speichersteuerung das Senden wenigstens gewisser Arten von Befehlen ein, wie etwa Lese-, Schreib- und Aktivierungsbefehle.
  • Bei verschiedenen Ausführungsformen werden sowohl minimale als auch maximale Zeiten für das Teilbefehlsblock-Fenster 402 im MR-Raum 305 festgelegt. Es wird erwartet, dass die Speichersteuerung das Senden wenigstens gewisser Befehle ab dem Moment einstellt, ab dem die Speichersteuerung erstmals die ansteigende/fallende Flanke des ALERT_N-Impulses abtastet, bis ein Zeitraum 402 verstrichen ist, der in die Minimal- und Maximaleinstellungen des Teilblockfensters fällt.
  • Es ist anzumerken, dass das Auslegen der Speichersteuerung zum Einstellen des Sendens von Befehlen, sobald sie die ansteigende/fallende Flanke des ALERT_N-Impulses beobachtet, nicht zwischen den anderen ALERT _N-Signalen (DQ-CRC-Schreibfehler und C/A-Paritätsfehler) unterscheidet. Von daher wird das Teilblockzeitfenster auch eine Beendigung von Befehlen bewirken, wenn das ALERT_N-Signal ein DQ-CRC-Schreibfehler oder ein C/A-Paritätsfehler ist. Das Zeitfenster 402 kann daher beispielsweise vorteilhaft genutzt werden, um den DQ-CRC-Schreibfehler oder den C/A-Paritätsfehler zu korrigieren. Es wird erwartet, dass der Speicherchip alle Befehle ausführt, die er von der Speichersteuerung empfängt, bevor die Speichersteuerung das Senden von Befehlen beendet, als Reaktion darauf, dass sie die fallende Flanke von ALERT_N abtastet.
  • In verschiedenen Konfigurationen sind die Einstellungen für das Teilbefehlsblock-Fenster 402 derart, dass innerhalb des Fensters 402 oder kurz nachdem das Fenster 402 abläuft die Speichersteuerung in der Lage ist zu bestimmen, ob das ALERT_N-Signal ein DQ-CRC-Schreibfehler oder ein C/A-Paritätsfehler ist. Beispielsweise ist das Teilblockfenster 402 dafür ausgelegt, sich über die minimale Impulsbreite für einen C/A-Paritätsfehler (60 ns ab dem High-zu-Low-Übergang) hinaus zu erstrecken.
  • Während die Speichersteuerung dadurch die Ausgabe gewisser Befehle innerhalb des Fensters 402 blockiert, könnte die Speichersteuerung tatsächlich einen Low-zu-High-Übergang beobachten, der einem DQ-CRC-Schreibfehler oder einem C/A-Paritätsfehler entspricht. Ist dies der Fall, ist die Speichersteuerung in der Lage, beliebige gewünschte Befehle zu senden, nachdem das Fenster 402 abgelaufen ist (die Blockade aufgehoben wurde).
  • Falls sich die Impulsbreite des ALERT_N-Signals dagegen über das Fenster 402 hinaus erstreckt und die minimale Impulsbreite 401 für ein RH-Gegendrucksignal erreicht, erkennt die Speichersteuerung, dass ein RH-Gegendrucksignal vorliegt, und beginnt mit dem Senden von RFM-Befehlen 403 an den Speicherchip. Das Senden der RFM-Befehle 403 verleiht dem Speicherchip die Berechtigung, Auffrischungen anzuwenden, um die Rowhammer-Bedrohung abzuschwächen.
  • In verschiedenen Ausführungsformen stellt die Speichersteuerung das Senden von RFM-Befehlen 403 ein, sobald der Speicherchip den Impuls beendet (ein Low-zu-High-Übergang wird beobachtet), oder wenn die Impulsbreite den maximalen Impuls 404 für das RH-Gegendrucksignal wie im MR-Raum des Speicherchips festgelegt erreicht (je nachdem, was früher eintritt). Hier ist in verschiedenen Ausführungsformen die Gegendrucksignal-Schaltungsanordnung 303 des Speicherchips dazu ausgelegt, den Alert N-Impuls durch eine ansteigende Flanke (die der RCD-Chip umsteuert) zu beenden, als Reaktion auf ein Signal von der Schaltungsanordnung zum Detektieren einer Rowhammer-Bedrohung 302 des Speicherchips, dass die Rowhammer-Bedrohung, welche das Gegendrucksignal veranlasst hat, mit ausreichenden Auffrischungen abgeschwächt wurde.
  • Falls stattdessen die Speichersteuerung das Senden von RFM-Befehlen einstellt, weil die maximale festgelegte Impulsbreite 404 erreicht wurde, benötigt der Speicherchip idealerweise keine Zeit mehr, um die Rowhammer-Bedrohung abzuschwächen. Von daher wird in verschiedenen Ausführungsformen die Differenz zwischen der Minimal- und der Maximal-Impulsbreiteneinstellung 401, 404 mit Blick auf die größtmögliche Rowhammer-Bedrohung (z. B. Rowhammer-Überlast) definiert, von der erwartet wird, dass sie erfolgreich abgeschwächt wird.
  • Auffrischungen, die als Reaktion auf die RFM-Befehle 403 durchgeführt werden, die durch die Speichersteuerung als Reaktion auf das Gegendrucksignal gesendet werden, werden als zusätzliche Auffrischungen angesehen, die über die nominale Auffrischungsaktivität hinaus, die mit REFRESH-Befehlen erreicht wird, und über eine Auffrischungsaktivität hinaus, die mit RFM-Befehlen erreicht wird, welche dadurch ausgelöst werden, dass die Speichersteuerung Bankaktivierungen verfolgt, gesendet werden (beide Arten von Auffrischungsaktivitäten werden zusätzlich zu den Auffrischungen fortgesetzt, die als Reaktion auf das Rowhammer-Überlastsignal durchgeführt werden).
  • In verschiedenen Ausführungsformen aktualisiert der Speicherchip, sobald der Speicherchip ein Rowhammer-Bedrohungsereignis detektiert, seinen MR-Raum 305, um den Fehlertyp (z. B. Rowhammer-Überlast) und/oder zusätzliche Informationen bezüglich des Fehlers (z. B. welche spezifischen Reihen ihren jeweiligen Schwellenwert erreicht haben) zu bestätigen. Die Speichersteuerung ist dann in der Lage, den MR-Raum 305 auszulesen, um die Situation am Speicherchip 301 zu bestätigen und/oder besser zu verstehen.
  • Falls zum Beispiel der MR-Raum 305 anzeigt, welche Reihen ihren Schwellenwert erreichen, können die RFM-Befehle 403 der Speichersteuerung, die als Reaktion auf das Gegendrucksignal gesendet werden, gezielte RFM-Befehle sein, die eine Bankadresse spezifizieren, an der sich die entsprechenden Opferreihen der Reihen befinden. Bei einem alternativen oder kombinierten Ansatz gibt der MR-Raum 305 die Anzahl an RFM-Befehlen an, die benötigt werden, um den Rowhammer-Überlastzustand abzuschwächen. In diesem Fall kann die Speichersteuerung das Senden von RFM-Befehlen 403 als Reaktion auf das Gegendrucksignal beenden, nachdem die spezifizierte Anzahl von RFM-Befehlen gesendet wurde (anstatt darauf zu warten, dass der Impuls endet oder die maximale Impulsbreite 404 erreicht ist). In noch einer anderen oder kombinierten Ausführungsform zeigt der MR-Raum 305 an, wie viel Zeit der Speicherchip zum Auffrischen benötigt, bevor die RH-Bedrohung abgeschwächt ist. In diesem Fall sendet die Speichersteuerung RFM-Befehle 403 als Reaktion auf das Gegendrucksignal für die spezifizierte Zeitdauer und beendet anschließend das Senden der RFM-Befehle 403.
  • Außerdem weiß die Speichersteuerung im Fall mehrreihiger Speichermodule, ohne den MR-Registerraum auszulesen, möglicherweise nicht, welche der Reihen von der Rowhammer-Bedrohung betroffen sind (weil der Alert_n-Pin der Speicherchips von mehr als einer Reihe an denselben RCD-Eingang gebunden ist). In diesem Fall kann die Speichersteuerung dazu ausgelegt sein, eine Rowhammer-Abschwächung (Beenden des Sendens von Lese-/Schreib-/Aktivierungsbefehlen innerhalb des Fensters 402 und Starten des Sendens von RFM-Befehlen 403) auf alle Reihen anzuwenden. Wenn die Speichersteuerung den MR-Registerraum ausliest, kann sie erkennen, in welcher Reihe Speicherchips von einer Rowhammer-Bedrohung betroffen sind, und die Rowhammer-Abschwächung nur auf Speicherchips der betroffenen Reihe anwenden.
  • Sobald der Speicherchip beobachtet, dass die Rowhammer-Bedrohung abgeschwächt ist, löscht der Speicherchip in verschiedenen Ausführungsformen einen beliebigen MR-Raum 305, der eingestellt wurde, um das Vorhandensein der Bedrohung anzuzeigen. Alternativ dazu kann die Speichersteuerung den MR-Raum (über einen Schreibvorgang in den MR-Raum 305 des Speicherchips) löschen, sobald der Speicherchip den Impuls beendet oder die Speichersteuerung alle zulässigen RFM-Befehle 403 als Reaktion auf das Setzen des Gegendrucksignals gesendet hat.
  • Gemäß den oben beschriebenen Ausführungsformen wurde angenommen, dass der Speicherchip Auffrischungen (wenn er nicht im Selbstauffrischungsmodus ist) nur als Reaktion auf REFRESH- und RFM-Befehle veranlasst, die durch die Speichersteuerung gesendet werden. In alternativen oder kombinierten Implementierungen weist der Speicherchip 301 eine Schaltungsanordnung zum Planen/Veranlassen von Auffrischungen auf, die er selbsttätig initiiert. In solchen Ausführungsformen kann die Anzahl an RFM-Befehlen 403, die von dem Speicherchip benötigt werden, reduziert werden (z. B. auf null), weil der Speicherchip ausreichend Auffrischungen intern initiieren kann, um das Problem abzuschwächen, solange die Speichersteuerung aufhört, neue Lese-, Schreib- oder Aktivierungsbefehle zu senden (z. B. kann der Speicher die Bedrohung intern innerhalb des Fensters 402 abschwächen).
  • Gemäß noch einem anderen Ansatz versetzt die Speichersteuerung den Speicherchip automatisch in einen Selbstauffrischungsmodus als Reaktion darauf, dass der Speicherchip das Gegendrucksignal setzt (anstatt RFM-Befehle 403 zu senden).
  • Gemäß noch einem anderen Ansatz beinhaltet ein Lese-Burst ein Metadatenbit, das dazu dient anzuzeigen, ob eine Rowhammer-Bedrohung besteht. Zum Beispiel ist für jeden Speicherchip pro Lesetransaktion ein Bit reserviert (z. B. 0 = Rowhammer-Bedrohung besteht nicht; 1 = Rowhammer-Bedrohung besteht). Falls ein Metadatenbit anzeigt, dass eine Rowhammer-Bedrohung besteht, gibt die Speichersteuerung eine Reihe von RFM-Befehlen aus, die durch einen Lesebefehl an derselben Adresse beabstandet sind. Die Speichersteuerung arbeitet in diesem Zustand weiter, bis die Metadaten anzeigen, dass keine Rowhammer-Bedrohung besteht.
  • Obwohl oben beschriebene Ausführungsformen einen einzigen ALERT_N-Draht pro Unterkanal hervorgehoben haben und alle Speicherchips derselben Reihe oder desselben Unterkanals an denselben Alert-Draht auf dem Speichermodul gebunden sind, ist es wichtig zu erkennen, dass andere Ausführungsformen, die von diesen spezifischen Ausgestaltungen abweichen, dennoch die hier bereitgestellten Lehren einschließen können. Zum Beispiel kann es mehrere ALERT_N-Drähte pro Unterkanal geben (z. B. ein solcher Draht pro Reihe usw.).
  • 5 zeigt eine Speichersteuerung 501, die dazu ausgelegt wurde, ein Rowhammer-Gegendrucksignal (oder eine andere Art von Gegendrucksignal) in Übereinstimmung mit den oben bereitgestellten Lehren zu handhaben. Insbesondere weist die Speichersteuerung 501 einen Eingang zum Empfangen eines Signals von einem ALERT_N-Draht auf, der Fehler/Probleme von einem Speichermodul und/oder Speicherchip gemäß unterschiedlichen Impulsbreiten meldet, die auf dem ALERT_N-Draht erzeugt werden. Eines der Signale ist ein Gegendrucksignal, wie etwa ein Rowhammer-Gegendrucksignal. Von daher weist die Speichersteuerung 501 eine Schaltungsanordnung 502 auf, die zwischen den unterschiedlichen Signalen unterscheiden und ein Gegendrucksignal detektieren kann.
  • Die Speichersteuerung 501 weist eine Befehlsplaner-Schaltungsanordnung 503 auf, die bestimmt, welche Befehle an die Speichermodule/-chips gesendet werden, mit denen die Speichersteuerung 501 gekoppelt ist. Die Befehlsplaner-Logikschaltungsanordnung 503 ist dazu ausgelegt, das Senden wenigstens gewisser Arten von Befehlen (z. B. Lesen, Schreiben, Aktivieren) und/oder das Senden zusätzlicher Auffrischungsbefehle (z. B. RFM-Befehle) einzustellen, als Reaktion auf die Detektion durch die Speichersteuerung auf ein Gegendrucksignal, das am ALERT_N-Eingang empfangen wird.
  • In noch anderen Ausführungsformen wird, anstatt einen ALERT_N-Draht zu verwenden, ein Gegendrucksignal mittels digitaler Kommunikation über eine beliebige Art von paketbasierter Kommunikationsverbindung zwischen dem Speichermodul und der Speichersteuerung gesendet. Zum Beispiel können bestimmte Drähte des Befehls-/Adressbusses oder des Datenbusses (DQ-Busses) verwendet werden, um Pakete von einem Speicherchip zurück an die Speichersteuerung zu senden. Solche Pakete können einen Kopfteil und/oder eine Nutzlast aufweisen, die einem Gegendrucksignal wie oben beschrieben entsprechen. Die paketbasierte Kommunikationsverbindung kann je nach Implementierung mit einem einzelnen Draht oder mehreren Drähten gebildet werden. Im Fall einer mehrdrahtigen Implementierung können die Begriffe „Ausgang“ und „Eingang“ in Bezug auf das Senden und Empfangen eines Gegendrucksignals dahingehend ausgelegt werden, dass sie auch mehrere solche Drähte einschließen.
  • Die oben bereitgestellten Lehren können auf verschiedene Speicherimplementierungen angewendet werden, einschließlich JEDEC-DDR5-Implementierungen, JEDEC-DDR6-Implementierungen, JEDEC-Grafik-DDR (GDDR) - Implementierungen, JEDEC-High Bandwidth Memory (HBM) -Implementierungen usw.
  • Die verschiedenen Arten von Schaltungsanordnungen, die oben beschrieben sind, können wenigstens teilweise mit einer Logikschaltungsanordnung implementiert werden. Die Logikschaltungsanordnung kann Logikgatter und/oder größere Logikmakros beinhalten, die mit solchen Logikgattern gebildet sind, die dediziert und festverdrahtet, programmierbar oder konfigurierbar sind, wie etwa eine feldprogrammierbare Gate-Array (FPGA) - Schaltungsanordnung und/oder ein Schaltungsanordnungsdesign zum Ausführen einer beliebigen Form von Programmcode (z. B. Mikrocontroller).
  • 6 stellt ein beispielhaftes System dar. Das System kann die hierin bereitgestellten Lehren verwenden. Das System 600 weist einen Prozessor 610 auf, der Verarbeitung, Betriebsverwaltung und Ausführung von Anweisungen für das System 600 bereitstellt. Der Prozessor 610 kann eine beliebige Art von Mikroprozessor, Zentraleinheit (CPU), Grafikeinheit (GPU), Verarbeitungskern oder andere Verarbeitungshardware zum Bereitstellen von Verarbeitungsfunktionen für das System 600 oder eine Kombination von Prozessoren beinhalten. Der Prozessor 610 steuert den Gesamtbetrieb des Systems 600 und kann ein oder mehrere programmierbare Universal- oder Spezialmikroprozessoren, Digitalsignalprozessoren (DSPs), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASIC, Application Specific Integrated Circuit), programmierbare Logikvorrichtungen (PLD, Programmable Logic Device) oder dergleichen oder eine Kombination solcher Vorrichtungen sein oder aufweisen.
  • In einem Beispiel weist das System 600 eine Schnittstelle 612 auf, die mit dem Prozessor 610 gekoppelt ist und die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten darstellen kann, die Verbindungen mit größerer Bandbreite benötigen, wie etwa das Speichersubsystem 620 oder Grafikschnittstellenkomponenten 640 oder Beschleuniger 642. Die Schnittstelle 612 repräsentiert eine Schnittstellenschaltung, die eine eigenständige Komponente oder auf einem Prozessor-Die integriert sein kann. Falls vorhanden, verbindet sich die Grafikschnittstelle 640 mit Grafikkomponenten, um einem Benutzer des Systems 600 eine visuelle Anzeige bereitzustellen. In einem Beispiel kann die Grafikschnittstelle 640 eine hochauflösende (HD, High Definition) -Anzeige ansteuern, die einem Benutzer eine Ausgabe bereitstellt. Die Bezeichnung hochauflösend (High Definition) kann sich auf eine Anzeige mit einer Pixeldichte von ungefähr 100 PPI (Pixels per Inch, Pixel pro Zoll) oder mehr beziehen und kann Formate wie etwa Full-HD (z. B. 1080p), Retina-Displays, 4 K (Ultra-High Definition oder UHD, ultrahochauflösend) oder andere einschließen. In einem Beispiel kann die Anzeige eine Berührungsschirmanzeige beinhalten. In einem Beispiel erzeugt die Grafikschnittstelle 640 eine Anzeige basierend auf Daten, die im Speicher 630 gespeichert sind, oder basierend auf Operationen, die durch den Prozessor 610 ausgeführt werden, oder beides. In einem Beispiel erzeugt die Grafikschnittstelle 640 eine Anzeige basierend auf Daten, die im Speicher 630 gespeichert sind, oder basierend auf Operationen, die durch den Prozessor 610 ausgeführt werden, oder beides.
  • Die Beschleuniger 642 können eine Offload-Engine mit festgelegter Funktion sein, auf die von einem Prozessor 610 zugegriffen werden kann oder die von diesem verwendet werden kann. Ein Beschleuniger unter den Beschleunigern 642 kann zum Beispiel Komprimierungs (DC) -Fähigkeit, Kryptographiedienste, wie etwa Public-Key-Verschlüsselung (PKE, Public Key Encryption), Chiffrierung, Hash-/Authentifizierungsfähigkeiten, Entschlüsselung oder andere Fähigkeiten oder Dienste bereitstellen. In manchen Ausführungsformen stellt zusätzlich oder alternativ ein Beschleuniger unter den Beschleunigern 642 Feldauswahl-Steuerungsfähigkeiten bereit, wie hier beschrieben. In manchen Fällen können Beschleuniger 642 in einen CPU-Sockel (z. B. einen Verbinder zu einer Hauptplatine oder Leiterplatte, die eine CPU aufweist und eine elektrische Schnittstelle mit der CPU bereitstellt) integriert sein. Die Beschleuniger 642 können zum Beispiel einen Einzel- oder Mehrkernprozessor, eine Grafikeinheit, einen Einzel- oder Mehrebenen-Cache einer logischen Ausführungseinheit, Funktionseinheiten, die zum unabhängigen Ausführen von Programmen oder Threads verwendbar sind, anwendungsspezifische integrierte Schaltungen (ASICs), Neuronalnetzprozessoren (NNPs), „X“-Verarbeitungseinheiten (XPUs), programmierbare Steuerlogik und programmierbare Verarbeitungselemente, wie etwa feldprogrammierbare Gate-Arrays (FPGAs), beinhalten. Die Beschleuniger 642 können mehrere neuronale Netzwerke, Prozessorkerne oder Grafikeinheiten bereitstellen, die zur Verwendung durch Künstliche-Intelligenz- (KI-) oder Maschinenlern (ML) -Modelle bereitgestellt werden können. Das KI-Modell kann zum Beispiel eines oder eine Kombination der folgenden verwenden oder aufweisen: ein bestärkendes Lernschema, ein Q-Lernschema, Deep-Q-Lernen oder Asynchronous Advantage Actor-Critic (A3C), ein kombinatorisches neuronales Netz, ein rekurrentes kombinatorisches neuronales Netz oder ein anderes KI- oder ML-Modell. Mehrere neuronale Netze, Prozessorkerne oder Grafikeinheiten können zur Verwendung durch KI- oder ML-Modelle verfügbar gemacht werden.
  • Das Speichersubsystem 620 stellt den Hauptspeicher des Systems 600 dar und stellt Speicher für Code, der vom Prozessor 610 ausgeführt werden soll, oder Datenwerte, die beim Ausführen einer Routine verwendet werden sollen, bereit. Das Speichersubsystem 620 kann eine oder mehrere Speichervorrichtungen 630 aufweisen, wie etwa schreibgeschützten Speicher (ROM, Read Only Memory), Flash-Speicher, flüchtigen Speicher oder eine Kombination solcher Vorrichtungen. Der Speicher 630 speichert und hostet unter anderem das Betriebssystem (OS) 632, um eine Softwareplattform für die Ausführung von Anweisungen im System 600 bereitzustellen. Zusätzlich dazu können die Anwendungen 634 auf der Softwareplattform des OS 632 aus dem Speicher 630 ausgeführt werden. Die Anwendungen 634 repräsentieren Programme, die ihre eigene Betriebslogik aufweisen, um die Ausführung einer oder mehrerer Funktionen abzuwickeln. Die Prozesse 636 repräsentieren Agenten oder Routinen, die dem OS 632 oder einer oder mehreren Anwendungen 634 oder einer Kombination davon Hilfsfunktionen bereitstellen. OS 632, Anwendungen 634 und Prozesse 636 stellen Softwarelogik bereit, um Funktionen für das System 600 bereitzustellen. In einem Beispiel weist das Speichersubsystem 620 eine Speichersteuerung 622 auf, bei der es sich um eine Speichersteuerung zum Erzeugen und Ausgeben von Befehlen an den Speicher 630 handelt. Es versteht sich, dass die Speichersteuerung 622 ein physischer Teil des Prozessors 610 oder ein physischer Teil der Schnittstelle 612 sein könnte. Die Speichersteuerung 622 kann zum Beispiel eine integrierte Speichersteuerung sein, die auf einer Schaltung mit dem Prozessor 610 integriert ist. In einigen Beispielen kombiniert ein Ein-Chip-System (SOC oder SoC, System on Chip) eines oder mehrere der folgenden zu einem SoC-Paket: Prozessoren, Grafik, Speicher, Speichersteuerung und Eingabe/Ausgabe (E/A) -Steuerlogik.
  • Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die in ihm gespeicherten Daten) unbestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird. Dynamischer flüchtiger Speicher erfordert das Auffrischen der in der Vorrichtung gespeicherten Daten, um den Zustand beizubehalten. Ein Beispiel für dynamischen flüchtigen Speicher beinhaltet DRAM (Dynamic Random Access Memory, dynamischer Direktzugriffsspeicher) oder eine Variante davon, wie etwa synchronen DRAM (SDRAM). Ein Speichersubsystem, wie hier beschrieben, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie etwa DDR3 (Double Data Rate Version 3, ursprüngliche Veröffentlichung durch JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007), DDR4 (DDR Version 4, anfängliche Spezifikation veröffentlicht im September 2012 von JEDEC), DDR4E (DDR Version 4), LPDDR3 (Low Power DDR Version 3, JESD209-3B, August 2013 von JEDEC), LPDDR4 (LPDDR Version 4, JESD209-4, ursprünglich veröffentlicht von JEDEC im August 2014), WIO2 (Wide Input/Output Version 2, JESD229-2, ursprünglich veröffentlicht von JEDEC im August 2014), HBM (High Bandwidth Memory, JESD325, ursprünglich veröffentlicht durch JEDEC im Oktober 2013), LPDDR5 (gegenwärtig erörtert durch JEDEC), HBM2 (HBM Version 2), gegenwärtig erörtert durch JEDEC, oder andere oder Kombinationen von Speichertechnologien sowie Technologien basierend auf Ableitungen oder Erweiterungen solcher Spezifikationen. Die JEDEC-Standards sind bei www.jedec.org verfügbar.
  • Der Speicher 630 könnte einen oder mehrere Speicherchips aufweisen, die dazu ausgelegt sind, ein Gegendrucksignal zu senden, und die Speichersteuerung 622 könnte auf das Gegendrucksignal gemäß den Lehren reagieren, die oben unter Bezugnahme auf 3 bis 5 ausführlich beschrieben sind.
  • Auch wenn dies nicht ausdrücklich dargestellt ist, versteht es sich, dass das System 600 ein(en) oder mehrere Busse oder Bussysteme zwischen Vorrichtungen aufweisen kann, wie etwa einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikationsfähig oder elektrisch miteinander koppeln oder die Komponenten sowohl kommunikationsfähig als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder andere Schaltungsanordnungen oder eine Kombination davon beinhalten. Busse können zum Beispiel eines oder mehrere der folgenden beinhalten: einen Systembus, einen Peripheral Component Interconnect Express (PCIe) -Bus, einen HyperTransport- oder Industry Standard Architecture (ISA) -Bus, einen Small Computer System Interface (SCSI) -Bus, einen Remote Direct Memory Access (RDMA), eine Internet Small Computer Systems Interface (iSCSI), einen NVM Express (NVMe), eine Coherent Accelerator Interface (CXL), eine Coherent Accelerator Processor Interface (CAPI), einen Universal Serial Bus (USB) oder einen Bus nach Institute of Electrical and Electronics Engineers (IEEE) -Standard 1394.
  • In einem Beispiel weist das System 600 eine Schnittstelle 614 auf, die mit der Schnittstelle 612 gekoppelt sein kann. In einem Beispiel repräsentiert die Schnittstelle 614 eine Schnittstellenschaltung, die eigenständige Komponenten und integrierte Schaltungen aufweisen kann. In einem Beispiel sind mehrere Benutzerschnittstellenkomponenten oder Peripheriekomponenten oder beides mit der Schnittstelle 614 gekoppelt. Die Netzwerkschnittstelle 650 verleiht dem System 600 die Fähigkeit, mit entfernten Vorrichtungen (z. B. Servern oder anderen Rechenvorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 650 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, zellulare Netzwerkverbindungskomponenten, USB (Universal Serial Bus) oder andere drahtgebundene oder drahtlose standardbasierte oder proprietäre Schnittstellen beinhalten. Die Netzwerkschnittstelle 650 kann Daten an eine entfernte Vorrichtung übertragen, was das Senden von im Speicher gespeicherten Daten beinhalten kann. Die Netzwerkschnittstelle 650 kann Daten von einer entfernten Vorrichtung empfangen, was das Speichern empfangener Daten in einem Speicher beinhalten kann. Verschiedene Ausführungsformen können in Verbindung mit der Netzwerkschnittstelle 650, dem Prozessor 610 und dem Speichersubsystem 620 verwendet werden.
  • In einem Beispiel weist das System 600 eine oder mehrere Eingabe/Ausgabe (E/A) -Schnittstelle(n) 660 auf. Die E/A-Schnittstelle 660 kann eine oder mehrere Schnittstellenkomponenten aufweisen, über die ein Benutzer mit dem System 600 interagiert (z. B. Audio, alphanumerisch, taktil/berührend oder andere Schnittstellen). Die Peripherieschnittstelle 670 kann eine beliebige Hardwareschnittstelle beinhalten, die oben nicht speziell erwähnt ist. Der Ausdruck Peripheriegeräte bezieht sich allgemein auf Vorrichtungen, die abhängig mit dem System 600 verbunden sind. „Abhängig“ ist eine Verbindung, bei der das System 600 die Softwareplattform oder Hardwareplattform oder beides bereitstellt, auf der eine Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • In einem Beispiel weist das System 600 ein Speichersubsystem 680 zum nichtflüchtigen Speichern von Daten auf. In einem Beispiel können sich bei gewissen Systemimplementierungen wenigstens gewisse Komponenten des Datenspeichers 680 mit Komponenten des Arbeitsspeichersubsystems 620 überschneiden. Das Datenspeichersubsystem 680 weist eine oder mehrere Speichervorrichtungen 684 auf, die ein beliebiges herkömmliches Medium zum nichtflüchtigen Speichern großer Datenmengen sein oder aufweisen können, wie etwa eine oder mehrere Magnet-, Festkörper- oder optische Platten oder eine Kombination davon. Der Datenspeicher 684 enthält Code oder Anweisungen und Daten 686 in einem persistenten Zustand (z. B. bleibt der Wert trotz Unterbrechung der Stromversorgung des Systems 600 erhalten). Der Datenspeicher 684 kann allgemein als „Arbeitsspeicher“ betrachtet werden, obwohl der Arbeitsspeicher 630 typischerweise der Ausführungs- oder Betriebsspeicher ist, um Anweisungen an den Prozessor 610 bereitzustellen. Obwohl der Datenspeicher 684 nichtflüchtig ist, kann der Arbeitsspeicher 630 flüchtigen Speicher beinhalten (z. B. ist der Wert oder Zustand der Daten unbestimmt, wenn die Stromversorgung des Systems 600 unterbrochen wird). In einem Beispiel weist das Datenspeichersubsystem 680 eine Steuerung 682 auf, um eine Schnittstelle mit dem Datenspeicher 684 zu bilden. In einem Beispiel ist die Steuerung 682 ein physischer Teil der Schnittstelle 614 oder des Prozessors 610 oder kann Schaltungen oder Logik sowohl im Prozessor 610 als auch in der Schnittstelle 614 aufweisen.
  • Eine nichtflüchtige Arbeitsspeicher (NVM, Non-Volatile Memory) -Vorrichtung ist ein Arbeitsspeicher, dessen Zustand bestimmt ist, selbst wenn die Stromversorgung der Vorrichtung unterbrochen ist. In einer Ausführungsform kann die NVM-Vorrichtung eine blockadressierbare Speichervorrichtung umfassen, wie NAND-Technologien oder insbesondere Multi-Schwellwert-NAND-Flash-Speicher (zum Beispiel Single-Level-Cell („SLC“), Multi-Level-Cell („MLC“), Quad-Level-Cell („QLC“), Tri-Level-Cell („TLC“) oder irgendein anderes NAND). Eine NVM-Vorrichtung kann auch umfassen: eine byteadressierbare, dreidimensionale Write-in-Place-Kreuzungspunktspeichervorrichtung oder eine andere byteadressierbare Write-in-Place-NVM-Vorrichtung (auch als persistenter Speicher bezeichnet), wie etwa einen Ein- oder Mehrebenen-Phasenwechselspeicher (PCM, Phase Change Memory) oder Phasenwechselspeicher mit Schalter (PCMS), NVM-Vorrichtungen, die Chalcogenid-Phasenwechselmaterial (zum Beispiel Chalcogenidglas) verwenden, resistiven Speicher einschließlich Metalloxid-basiertem, Sauerstofffehlstellenbasiertem und Leitungsbrücken-Direktzugriffsspeicher (CB-RAM, Conductive Bridge Random Access Memory), Nanodrahtspeicher, ferroelektrischen Direktzugriffsspeicher (FeRAM, FRAM), magnetoresistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie beinhaltet, Spin-Transfer-Drehmoment (STT, Spin Transfer Torque) - MRAM, eine Spintronik-Magnetübergangsspeicher-basierte Vorrichtung, eine Magnettunnelübergang (MTJ, Magnetic Tunnel Junction) -basierte Vorrichtung, eine Domänenwand- (DW, Domain Wall) und Spin-Bahn-Transfer (SOT, Spin Orbit Transfer) - basierte Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination der obigen oder anderer Speicherarten.
  • Eine (nicht dargestellte) Stromquelle stellt Strom an die Komponenten des Systems 600 bereit. Genauer gesagt ist die Stromquelle typischerweise mit einer oder mehreren Stromversorgungen im System 700 gekoppelt, um Strom an die Komponenten des Systems 600 bereitzustellen. In einem Beispiel weist die Stromversorgung einen AC/DC (Wechselstrom zu Gleichstrom) -Adapter zum Einstecken in eine Wandsteckdose auf. Solcher Wechselstrom (AC) kann aus erneuerbarer Energie (z. B. Solarstrom) aus einer Stromquelle stammen. In einem Beispiel beinhaltet die Stromquelle eine Gleichstromquelle (DC), wie etwa einen externen AC-DC-Wandler. In einem Beispiel beinhaltet die Stromquelle oder Stromversorgung drahtlose Ladehardware zum Laden über die Nähe zu einem Ladefeld. In einem Beispiel kann die Stromquelle eine interne Batterie, eine Wechselstromversorgung, eine bewegungsbasierte Stromversorgung, eine Solarstromversorgung oder eine Brennstoffzellenquelle beinhalten.
  • In einem Beispiel kann das System 600 als disaggregiertes Rechensystem implementiert sein. Zum Beispiel kann das System 700 mit untereinander verbundenen Rechenschlitten von Prozessoren, Arbeitsspeichern, Datenspeichern, Netzwerkschnittstellen und anderen Komponenten implementiert sein. Es können Hochgeschwindigkeitsverbindungen verwendet werden, wie etwa PCIe, Ethernet oder optische Verbindungen (oder eine Kombination davon). Zum Beispiel können die Schlitten gemäß beliebigen Spezifikationen ausgestaltet sein, die durch das Open Compute Project (OCP) veröffentlicht werden, oder einem anderen Ansatz für disaggregiertes Rechnen, der bestrebt ist, die hauptsächlichen Komponenten von Rechnerarchitekturen als modulare, in Racks einsteckbare Komponenten (z. B. in ein Rack einsteckbare Verarbeitungskomponente, in ein Rack einsteckbare Speicherkomponente, in ein Rack einsteckbare Datenspeicherkomponente, in ein Rack einsteckbare Beschleunigerkomponente usw.) zu gestalten.
  • 7 stellt ein Beispiel für ein Rechenzentrum dar. Verschiedene Ausführungsformen können in oder mit dem Rechenzentrum aus 7 verwendet werden. Wie in 7 gezeigt, kann das Rechenzentrum 700 eine optische Struktur 712 aufweisen. Die optische Struktur 712 kann allgemein eine Kombination aus optischen Signalisierungsmedien (wie etwa optischer Verkabelung) und optischer Schaltinfrastruktur beinhalten, über die ein beliebiger spezieller Schlitten im Rechenzentrum 700 Signale an die anderen Schlitten im Rechenzentrum 700 senden (und Signale von diesen empfangen) kann. Optische, drahtlose und/oder elektrische Signale können jedoch unter Verwendung der Struktur 712 übertragen werden. Die von der optischen Struktur 712 an jeden Schlitten bereitgestellte Signalisierungskonnektivität kann Konnektivität sowohl mit anderen Schlitten in demselben Rack als auch mit Schlitten in anderen Racks beinhalten. Das Rechenzentrum 700 weist vier Racks 702A bis 702D auf, und die Racks 702A bis 702D beherbergen jeweilige Paare von Schlitten 704A-1 und 704A-2, 704B-1 und 704B-2, 704C-1 und 704C-2 sowie 704D-1 und 704D-2. Dementsprechend weist das Rechenzentrum 700 in diesem Beispiel insgesamt acht Schlitten auf. Die optische Struktur 712 kann eine Schlittensignalisierungskonnektivität mit einem oder mehreren der sieben anderen Schlitten bereitstellen. Zum Beispiel kann der Schlitten 704A-1 in Rack 702A über die optische Struktur 712 Signalisierungskonnektivität mit dem Schlitten 704A-2 in Rack 702A sowie den sechs anderen Schlitten 704B-1, 704B-2, 704C-1, 704C-2, 704D-1 und 704D-2, die auf die anderen Racks 702B, 702C und 702D des Rechenzentrums 700 verteilt sind, besitzen. Die Ausführungsformen sind nicht auf dieses Beispiel beschränkt. Die Struktur 712 kann zum Beispiel optische und/oder elektrische Signalisierung bereitstellen.
  • 8 bildet eine Umgebung 800 ab, die mehrere Rechen-Racks 802 aufweist, die jeweils einen Top-of-Rack (ToR) -Switch 804, einen Pod-Manager 806 und mehrere gepoolte Systemeinschübe aufweisen. Allgemein können die gepoolten Systemeinschübe gepoolte Recheneinschübe und gepoolte Datenspeichereinschübe beinhalten, um z. B. ein disaggregiertes Rechensystem zu erzielen. Gegebenenfalls können die gepoolten Systemeinschübe auch gepoolte Arbeitsspeichereinschübe und gepoolte Eingabe/Ausgabe (E/A) -Einschübe beinhalten. Bei der veranschaulichten Ausführungsform weisen die gepoolten Systemeinschübe einen gepoolten INTEL® XEON®-Recheneinschub 808 und einen gepoolten INTEL® ATOM™-Recheneinschub 810, einen gepoolten Datenspeichereinschub 812, einen gepoolten Arbeitsspeichereinschub 814 und einen gepoolten E/A-Einschub 816 auf. Jeder der gepoolten Systemeinschübe ist mit dem ToR-Switch 804 über eine Hochgeschwindigkeitsverbindung 818, wie zum Beispiel eine 40-Gigabit/Sekunde- (GBit/s) oder eine 100-GBit/s-Ethernet-Verbindung oder eine optische Silicon Photonics (SiPh) -Verbindung mit 100+ GBit/s, verbunden. In einer Ausführungsform umfasst die Hochgeschwindigkeitsverbindung 818 eine optische SiPh-Verbindung mit 800 GBit/s.
  • Auch hier können beispielsweise die Einschübe gemäß beliebigen Spezifikationen ausgestaltet sein, die durch das Open Compute Project (OCP) veröffentlicht werden, oder einem anderen Ansatz für disaggregiertes Rechnen, der bestrebt ist, die hauptsächlichen Komponenten von Rechnerarchitekturen als modulare, in Racks einsteckbare Komponenten (z. B. in ein Rack einsteckbare Verarbeitungskomponente, in ein Rack einsteckbare Speicherkomponente, in ein Rack einsteckbare Datenspeicherkomponente, in ein Rack einsteckbare Beschleunigerkomponente usw.) zu gestalten.
  • Mehrere der Rechen-Racks 800 können über ihre ToR-Switches 804 (zum Beispiel mit einem Pod-Level-Switch oder Rechenzentrum-Switch) miteinander verbunden sein, wie durch Verbindungen mit einem Netzwerk 820 veranschaulicht ist. In manchen Ausführungsformen werden Gruppen von Rechen-Racks 802 als separate Pods über einen oder mehrere Pod-Manager 806 verwaltet. In einer Ausführungsform wird ein einzelner Pod-Manager verwendet, um alle Racks in dem Pod zu verwalten. Alternativ dazu können verteilte Pod-Manager für Pod-Management-Operationen verwendet werden.
  • Die RSD-Umgebung 800 weist ferner eine Verwaltungsschnittstelle 822 auf, die verwendet wird, um verschiedene Aspekte der RSD-Umgebung zu verwalten. Dies beinhaltet das Verwalten der Rack-Konfiguration mit entsprechenden Parametern, die als Rack-Konfigurationsdaten 824 gespeichert sind.
  • Ausführungsformen können hier in verschiedenen Arten von Rechenvorrichtungen, Smartphones, Tablets, Personal-Computern und Netzwerkausrüstung implementiert sein, wie etwa Switches, Router, Racks und Blade-Server wie etwa solche, die in einer Rechenzentrum- und/oder Serverfarmumgebung eingesetzt werden. Die in Rechenzentren und Serverfarmen verwendeten Server umfassen in Reihen angeordnete Serverkonfigurationen wie etwa rackbasierte Server oder Blade-Server. Diese Server stehen über verschiedene Netzwerkeinrichtungen miteinander in Kommunikationsverbindung, wie etwa bei Unterteilung von Gruppen von Servern in Ortsnetze (LAN, Local Area Network) mit geeigneten Switch- und Routingeinrichtungen zwischen den LANs, um ein privates Intranet zu bilden. Cloud-Hosting-Einrichtungen können zum Beispiel typischerweise große Rechenzentren mit einer Vielzahl von Servern einsetzen. Ein Blade umfasst eine separate Rechenplattform, die dazu ausgelegt ist, serverartige Funktionen durchzuführen, das heißt einen „Server on a Card“ (Server auf einer Platine). Dementsprechend weist jedes Blade Komponenten auf, die auch herkömmliche Server aufweisen, einschließlich einer Hauptleiterplatte (Hauptplatine), die interne Verdrahtungen (z. B. Busse) zum Koppeln geeigneter integrierter Schaltungen (ICs) bereitstellt, und andere Komponenten, die auf der Platine montiert sind.
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert sein. In manchen Beispielen können Hardwareelemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze und so weiter beinhalten. In manchen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, APIs, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten. Das Bestimmen, ob ein Beispiel unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie etwa einer gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Konstruktions- oder Leistungsbeschränkungen, wie für eine gegebene Implementierung gewünscht. An dieser Stelle sei darauf hingewiesen, dass Hardware-, Firmware- und/oder Softwareelemente hier zusammenfassend oder einzeln als „Modul“, „Logik“, „Schaltung“ oder „Schaltungsanordnung“ bezeichnet werden können.
  • Manche Beispiele können unter Verwendung oder in Form eines Erzeugnisses oder wenigstens eines computerlesbaren Mediums implementiert sein. Ein computerlesbares Medium kann ein nichttransitorisches Datenspeichermedium zum Speichern von Logik beinhalten. In manchen Beispielen kann das nichttransitorische Datenspeichermedium eine oder mehrere Arten von computerlesbaren Datenspeichermedien beinhalten, die elektronische Daten speichern können, einschließlich flüchtigem Arbeitsspeicher oder nichtflüchtigem Arbeitsspeicher, Wechsel- oder Nichtwechselspeicher, löschbarem oder nicht löschbarem Arbeitsspeicher, beschreibbarem oder wiederbeschreibbarem Arbeitsspeicher und so weiter. In manchen Beispielen kann die Logik verschiedene Softwareelemente beinhalten, wie etwa Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, API, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon.
  • Gemäß manchen Beispielen kann ein computerlesbares Medium ein nichttransitorisches Speichermedium zum Speichern oder Vorhalten von Anweisungen beinhalten, die bei Ausführung durch eine Maschine, ein(e) Rechenvorrichtung oder -system bewirken, dass die Maschine, die Rechenvorrichtung oder das System Verfahren und/oder Operationen gemäß den beschriebenen Beispielen durchführt. Die Anweisungen können jede beliebige geeignete Art von Code beinhalten, wie etwa Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code und dergleichen. Die Anweisungen können gemäß einer vordefinierten Computersprache, Art und Weise oder Syntax implementiert sein, um ein(e) Maschine, Rechenvorrichtung oder -system anzuweisen, eine gewisse Funktion durchzuführen. Die Anweisungen können unter Verwendung einer beliebigen geeigneten höheren, niedrigeren, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert sein.
  • Ein oder mehrere Aspekte wenigstens eines Beispiels können durch repräsentative Anweisungen implementiert sein, die auf wenigstens einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie von einer Maschine, einer Rechenvorrichtung oder einem System gelesen werden, die Maschine, die Rechenvorrichtung oder das System veranlasst, Logik herzustellen, um die hier beschriebenen Techniken durchzuführen. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert und für verschiedene Kunden oder Herstellungseinrichtungen geliefert werden, um in die Herstellungsmaschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Vorkommnisse des Ausdrucks „ein Beispiel“ beziehen sich nicht notwendigerweise alle auf dasselbe Beispiel oder dieselbe Ausführungsform. Ein beliebiger hier beschriebener Aspekt kann mit einem beliebigen anderen hier beschriebenen Aspekt oder ähnlichen Aspekt kombiniert werden, unabhängig davon, ob die Aspekte mit Bezug auf dieselbe Figur oder dasselbe Element beschrieben werden. Teilung, Auslassung oder Einschluss von Blockfunktionen, wie in den begleitenden Figuren dargestellt, bedeutet nicht, dass die Hardwarekomponenten, Schaltungen, Software und/oder Elemente zum Implementieren dieser Funktionen in Ausführungsformen notwendigerweise zu teilen, auszulassen oder einzuschließen sind.
  • Manche Beispiele können unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“ und Ableitungen davon beschrieben sein. Diese Begriffe sind nicht notwendigerweise als Synonyme gedacht. Beispielsweise können Beschreibungen, in denen die Ausdrücke „verbunden“ und/oder „gekoppelt“ verwendet werden, anzeigen, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander stehen. Der Ausdruck „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch zusammenwirken oder miteinander interagieren.
  • Die Ausdrücke „erster“, „zweiter“ und dergleichen bezeichnen hier keine Reihenfolge, Quantität oder Wichtigkeit, sondern werden vielmehr verwendet, um ein Element von einem anderen zu unterscheiden. Die Ausdrücke „ein/eine/eines“ bezeichnen hierin keine Mengenbegrenzung, sondern bezeichnen das Vorhandensein wenigstens eines der genannten Gegenstände. Der Ausdruck „gesetzt“, der hier unter Bezugnahme auf ein Signal verwendet wird, bezeichnet einen Zustand des Signals, in dem das Signal aktiv ist und der durch Anwenden eines beliebigen Logikpegels, entweder logisch 0 oder logisch 1, auf das Signal erreicht werden kann. Die Ausdrücke „folgen“ oder „nach“ können unmittelbar nachfolgend oder nach einem oder mehreren anderen Ereignis(sen) folgend bedeuten. Auch andere Abfolgen von Schritten können gemäß alternativen Ausführungsformen durchgeführt werden. Darüber hinaus können abhängig von den jeweiligen Anwendungen zusätzliche Schritte hinzugefügt oder entfernt werden. Eine beliebige Kombination von Änderungen kann verwendet werden, und ein Durchschnittsfachmann, der von dieser Offenbarung profitiert, würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • Disjunktive Sprache, wie etwa der Ausdruck „wenigstens eines von X, Y oder Z“, sofern nicht ausdrücklich anders angegeben, wird in dem Kontext verstanden, wie er allgemein verwendet wird, um darzustellen, dass ein Element, ein Begriff usw. entweder X, Y oder Z oder eine beliebige Kombination davon sein kann (z. B. X, Y und/oder Z). Somit soll und sollte eine solche disjunktive Ausdrucksweise im Allgemeinen nicht implizieren, dass bestimmte Ausführungsformen erfordern, dass jeweils wenigstens eines von X, wenigstens eines von Y oder wenigstens eines von Z vorhanden ist. Außerdem sollte konjunktive Sprache, wie etwa der Ausdruck „wenigstens eines von X, Y und Z“, sofern nicht ausdrücklich anders angegeben, auch als X, Y, Z oder eine beliebige Kombination davon, einschließlich „X, Y und/oder Z“, verstanden werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/183509 [0001]

Claims (21)

  1. Speicherchip, umfassend: eine Schaltungsanordnung zum Detektieren einer Rowhammer-Bedrohung; einen Ausgang; eine Gegendrucksignal-Erzeugerschaltungsanordnung, die zwischen die Rowhammer-Detektionsschaltungsanordnung und den Ausgang gekoppelt ist, wobei das Gegendrucksignal-Erzeugungssignal ein Gegendrucksignal erzeugen soll, das von dem Ausgang als Reaktion auf die Detektion einer Rowhammer-Bedrohung durch die Rowhammer-Detektionsschaltungsanordnung gesendet werden soll.
  2. Speicherchip nach Anspruch 1, wobei der Ausgang ein Alert_n-Ausgang ist.
  3. Speicherchip nach Anspruch 1, wobei die Rowhammer-Bedrohung umfasst, dass mehrere Reihen einer Speicherzellenanordnung innerhalb des Speicherchips gleichzeitig einen Reihenaktivierungsschwellenwert erreichen.
  4. Speicherchip nach Anspruch 1, wobei das Gegendrucksignal einen Impuls mit einer Breite innerhalb eines bestimmten Impulsbreitenminimums und Impulsbreitenmaximums umfasst.
  5. Speicherchip nach Anspruch 1 und 4, wobei der Speicherchip einen Modusregister (MR) - Modusraum zum Aufzeichnen des Impulsbreitenminimums umfasst.
  6. Speicherchip nach Anspruch 1 und 5, wobei der Speicherchip einen MR-Raum umfasst, um Informationen bezüglich der Rowhammer-Bedrohung bereitzustellen.
  7. Speicherchip nach Anspruch 1, wobei die Informationen ein Zeitfenster beschreiben sollen, innerhalb dessen eine Speichersteuerung das Senden von Lese-, Schreib- und Aktivierungsbefehlen an den Speicherchip beenden soll, als Folge davon, dass die Speichersteuerung das Gegendrucksignal empfangen hat.
  8. Speicherchip nach Anspruch 1, wobei die Informationen beeinflussen sollen, wie viele Auffrischungs (REFRESH) -Befehle eine Speichersteuerung an den Speicherchip als Reaktion auf das Gegendrucksignal senden soll.
  9. Speicherchip nach Anspruch 8, wobei die Auffrischungsbefehle Auffrischungsverwaltungs (RFM) -Befehle sind.
  10. Speicherchip nach Anspruch 1, wobei das Gegendrucksignal in einem Paket über den Ausgang gesendet werden soll.
  11. Speichersteuerung, Folgendes umfassend: einen Eingang; eine Gegendrucksignal-Detektionsschaltungsanordnung, die mit dem Eingang gekoppelt ist, wobei die Gegendrucksignal-Detektionsschaltungsanordnung ausgelegt ist zum Detektieren eines Gegendrucksignals, das am Eingang empfangen wird; und eine Befehlsschaltungsanordnung, die mit der Gegendrucksignal-Detektionsschaltungsanordnung gekoppelt ist, wobei die Befehlsschaltungsanordnung das Senden von Lese-, Schreib- und Aktivierungsbefehlen an einen Speicherchip einstellen soll, als Folge davon, dass die Speichersteuerung das Gegendrucksignal empfangen hat, wobei der Speicherchip das Gegendrucksignal als Reaktion auf eine Rowhammer-Bedrohung erzeugt hat.
  12. Speichersteuerung nach Anspruch 11, wobei der Eingang ein Alert n-Ausgang ist.
  13. Speichersteuerung nach Anspruch 11, wobei das Gegendrucksignal einen Impuls mit einer Breite innerhalb eines bestimmten Impulsbreitenminimums und Impulsbreitenmaximums umfasst.
  14. Speichersteuerung nach Anspruch 11, wobei die Speichersteuerung einen MR-Raum innerhalb des Speicherchips lesen soll, um Informationen bezüglich einer Rowhammer-Bedrohung zu erhalten.
  15. Speichersteuerung nach Anspruch 11, wobei die Speichersteuerung das Senden der Lese-, Schreib- und Aktivierungsbefehle für einen vordefinierten Zeitraum einstellen soll.
  16. Speichersteuerung nach Anspruch 11, wobei die Speichersteuerung als Reaktion auf das Gegendrucksignal Auffrischungsbefehle an den Speicherchip senden soll.
  17. Speichersteuerung nach Anspruch 1, wobei die Speichersteuerung auch ein Zyklische-Redundanzprüfung-Schreibfehlersignal und ein Befehls-/Adress-Paritätsfehlersignal am Eingang empfangen soll.
  18. Rechensystem, umfassend: a) mehrere Verarbeitungskerne; b) eine Netzwerkschnittstelle; c) einen Speicherchip, wobei der Speicherchip umfasst: i) eine Schaltungsanordnung zum Detektieren einer Rowhammer-Bedrohung; ii) einen Ausgang; iii) eine Gegendrucksignal-Erzeugerschaltungsanordnung, die zwischen die Rowhammer-Detektionsschaltung und den Ausgang gekoppelt ist, wobei das Gegendrucksignal-Erzeugungssignal ein Gegendrucksignal erzeugen soll, das vom Ausgang als Reaktion auf die Detektion einer Rowhammer-Bedrohung durch die Rowhammer-Detektionsschaltung gesendet werden soll; d) eine Speichersteuerung, die mit dem Speicherchip gekoppelt ist, wobei die Speichersteuerung umfasst: i) einen Eingang; ii) eine Gegendrucksignal-Detektionsschaltungsanordnung, die mit dem Eingang gekoppelt ist, wobei die Gegendrucksignal-Detektionsschaltungsanordnung das am Eingang empfangene Gegendrucksignal detektieren soll; und iii) eine Befehlsschaltungsanordnung, die mit der Gegendrucksignal-Detektionsschaltungsanordnung gekoppelt ist, wobei die Befehlsschaltungsanordnung das Senden von Lese-, Schreib- und Aktivierungsbefehlen an den Speicherchip einstellen soll, als Folge davon, dass die Speichersteuerung das Gegendrucksignal empfangen hat.
  19. Rechensystem nach Anspruch 18, wobei der Ausgang ein Alert_n-Ausgang ist.
  20. Rechensystem nach Anspruch 18, wobei die Rowhammer-Bedrohung umfasst, dass mehrere Reihen einer Speicherzellenanordnung innerhalb des Speicherchips gleichzeitig einen Reihenaktivierungsschwellenwert erreichen.
  21. Rechensystem nach Anspruch 18, wobei die Speichersteuerung als Reaktion auf das Gegendrucksignal Auffrischungsbefehle an den Speicherchip senden soll.
DE102022106019.5A 2021-05-03 2022-03-15 Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion Pending DE102022106019A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163183509P 2021-05-03 2021-05-03
US63/183,509 2021-05-03
US17/315,303 US20210264999A1 (en) 2021-05-03 2021-05-08 Method and apparatus for memory chip row hammer threat backpressure signal and host side response
US17/315,303 2021-05-08

Publications (1)

Publication Number Publication Date
DE102022106019A1 true DE102022106019A1 (de) 2022-11-03

Family

ID=77366979

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022106019.5A Pending DE102022106019A1 (de) 2021-05-03 2022-03-15 Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion

Country Status (5)

Country Link
US (1) US20210264999A1 (de)
JP (1) JP2022172443A (de)
KR (1) KR20220150202A (de)
CN (1) CN115359821A (de)
DE (1) DE102022106019A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11562783B2 (en) * 2020-08-27 2023-01-24 Micron Technology, Inc. Apparatuses, systems, and methods for resetting row hammer detector circuit based on self-refresh command
US11749333B2 (en) * 2020-12-10 2023-09-05 SK Hynix Inc. Memory system
US20230063890A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Measuring change in a channel characteristic to detect memory device attack
US11942137B2 (en) 2021-11-08 2024-03-26 Samsung Electronics Co., Ltd. Memory controller and memory system including the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180064940A (ko) * 2016-12-06 2018-06-15 삼성전자주식회사 해머 리프레쉬 동작을 수행하는 메모리 시스템
US10832792B1 (en) * 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11011215B1 (en) * 2019-12-19 2021-05-18 Micron Technology, Inc. Apparatus with an internal-operation management mechanism
US11342039B2 (en) * 2020-10-27 2022-05-24 Micron Technology, Inc. Word line characteristics monitors for memory devices and associated methods and systems
KR20220111444A (ko) * 2021-02-02 2022-08-09 삼성전자주식회사 리프레쉬 동작을 수행하는 메모리 장치, 그 동작방법 및 메모리 시스템

Also Published As

Publication number Publication date
US20210264999A1 (en) 2021-08-26
JP2022172443A (ja) 2022-11-16
KR20220150202A (ko) 2022-11-10
CN115359821A (zh) 2022-11-18

Similar Documents

Publication Publication Date Title
DE102022106019A1 (de) Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE112018004322T5 (de) Nichtflüchtiges speichersystem mit hostseitiger befehlseinspeisung
DE102010013228B4 (de) Verfahren und System, um die Operationen eines registrierten Speichermoduls zu verbessern
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102020132768A1 (de) Rückgängigmachen und erneutes ausführen von weicher post-package-reparatur
DE102015223187A1 (de) Ein-Chip-Systeme zum Steuern von Leistung mittels Auslastungen, Verfahren zum Betreiben dieser, und Computervorrichtungen, die diese umfassen
DE102020103570A1 (de) Host-definierte bandbreitenzuweisung für ssd-aufgaben
DE102020133664A1 (de) Initialisierung und Leistungsausfallisolation eines Speichermoduls in einem System
DE102017106713A1 (de) Rechensystem, nichtflüchtiges Speichermodul und Verfahren zum Betreiben einer Speichervorrichtung
DE102023110723A1 (de) Randomisierung von gezielten auffrischungsverwaltungs(directed refresh management - drfm)-pseudo-zielzeilenauffrischungs(pseudo target row refresh - pttr)-befehlen
DE112015003638T5 (de) Speichermodul und -verfahren für optimierte Energienutzung
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE102020119400A1 (de) Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung
DE102022102434A1 (de) Flüchtiges Register zum Erkennen eines Stromverlusts
DE102020110584A1 (de) Nvram-speichermodul mit hard-schreibdrosselung
DE102020103372A1 (de) Proaktive verringerung der neulese-auslösung
DE112015004405B4 (de) Nichtflüchtiges speichermodul
DE112022000450T5 (de) Verbesserte d3-cold und schnellere wiederherstellung
DE102014002302A1 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
DE102020116190A1 (de) Slc-/qlc-doppelprogrammierung und ressourcenfreigabe