FR3066842B1 - Logique de correction de row hammer pour dram avec processeur integre - Google Patents

Logique de correction de row hammer pour dram avec processeur integre Download PDF

Info

Publication number
FR3066842B1
FR3066842B1 FR1770532A FR1770532A FR3066842B1 FR 3066842 B1 FR3066842 B1 FR 3066842B1 FR 1770532 A FR1770532 A FR 1770532A FR 1770532 A FR1770532 A FR 1770532A FR 3066842 B1 FR3066842 B1 FR 3066842B1
Authority
FR
France
Prior art keywords
row
rows
count value
refresh
rank
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
FR1770532A
Other languages
English (en)
Other versions
FR3066842A1 (fr
Inventor
Fabrice Devaux
Gilles Hamou
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.)
Upmem SAS
Original Assignee
Upmem SAS
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 Upmem SAS filed Critical Upmem SAS
Priority to FR1770532A priority Critical patent/FR3066842B1/fr
Priority to PCT/FR2018/051200 priority patent/WO2018215715A1/fr
Priority to JP2019564461A priority patent/JP7142946B2/ja
Priority to US16/615,636 priority patent/US11049544B2/en
Priority to CN201880034535.7A priority patent/CN110741436B/zh
Priority to KR1020197038136A priority patent/KR102480349B1/ko
Publication of FR3066842A1 publication Critical patent/FR3066842A1/fr
Application granted granted Critical
Publication of FR3066842B1 publication Critical patent/FR3066842B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

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

Abstract

L'invention est relative à un dispositif mémoire comprenant un ou plusieurs bancs (126), chaque banc comprenant une pluralité de rangs mémoire, le dispositif mémoire comprenant par ailleurs : une logique de détection de déclenchement du Row Hammer (123) configurée pour surveiller, pour chaque banc, les commandes activation émises à la fois par un contrôleur mémoire externe et par un ou plusieurs processeurs internes du dispositif mémoire, afin de déclencher des opérations de rafraîchissement en conséquence.

Description

Logique de correction de ROW HAMMER pour DRAM AVEC PROCESSEUR INTEGRE
Domaine de l’invention
La présente description concerne le domaine des circuits DRAM (dynamic random accès s memory) avec processeurs intégrés.
Exposé de l’art antérieur
L’effet Row Hammer (« martelage de rang ») est le fait que, à l’intérieur d’un banc (« bank ») mémoire DRAM donné, activer de manière répétée un rang (« row ») DRAM donné puisse causer aux rangs physiquement adjacents l’inversion de la valeur de certains de leurs bits. Le rang qui est trop activé sera appelé « rang agresseur » et ses deux rangs adjacents seront appelés « rangs victimes ».
En particulier, l’activation d’un rang mémoire à l’intérieur d’un banc DRAM implique d’avoir ce banc dans un état préchargé, cet état ayant été préalablement atteint à travers une commande de pré-chargement, puis en jouant une commande d’activation. Une fois activé, le rang peut être accédé pour les besoins d’une opération de lecture ou d’écriture.
Si on compte les activations qui visent un rang donné, alors quand ce comptage atteint une certaine valeur, le rang devient un agresseur et les 2 rangs adjacents deviennent ses victimes.
La solution à ce problème consiste à détecter qu’un rang est sur le point de devenir un agresseur, et, avant que ce ne soit le cas, à rafraîchir les deux rangs adjacents (ses victimes potentielles), de tels rafraîchissements étant appelés dans ce document des « rafraîchissements préventifs ».
Ce faisant, et du point de vue de l’effet Row Hammer, rafraîchir deux rangs adjacents « réinitialise » le nombre d’activations de l’agresseur potentiel.
Indépendamment du problème de Row Hammer, la mémoire DRAM nécessite d’être rafraîchie de toutes les manières. La spécification DDR4 indique que tous les rangs d’un banc DDR4 doivent être rafraîchis toutes les 64 ms, les rafraîchissements correspondants étant appelés « rafraîchissements périodiques ».
B16077FR
Par conséquent, le problème du Row Hammer ne peut arriver que si, à l’intérieur d’une fenêtre temporelle de 64 ms, un rang donné est activé suffisamment de fois pour devenir un agresseur.
Fes études sur le phénomène du Row Hammer montrent que l’agression d’un rang victime est le résultat de la somme des agressions des deux rangs adjacents. Par exemple, s’il faut 250000 activations pour qu’un rang devienne un agresseur, la logique de mitigation du Row Hammer devrait considérer 125000 activations comme valeur de déclenchement, puisque deux agresseurs peuvent « coopérer » pour agresser un même rang victime.
Pour résumer, une valeur de déclenchement du Row Hammer intrinsèque, qui prend en compte les pires cas possibles, comme la co-agression, est maintenant un paramètre additionnel qui fait partie de la description de tout procédé DRAM récent.
Si, à l’intérieur d’une fenêtre de rafraîchissement, le nombre d’activations d’un rang donné est sur le point d’atteindre cette valeur de déclenchement du Row Hammer intrinsèque, alors les deux rangs adjacents doivent être préventivement rafraîchis.
Fe brevet décrit une solution pour mitiger l’effet Row Hammer, mais il a les inconvénients suivants :
• Fa méthode ne convient pas pour la mémoire DRAM intégrant un processeur, • Fa méthode complètement détaillée (et aucune autre méthode ne peut être directement inférée de ce texte,) ne permet pas de détecter des conditions du Row Hammer dans des scénarios relativement simples, quand les paramètres sont calculés tels qu’expliqué par cette méthode précise, • Fa méthode détaillée nécessite complètement, pour chaque commande d’activation, le classement des entrées d’une table, avec quelques dizaines d’entrées. Un tel classement constitue un processus consommateur de temps qu’il serait difficile de réaliser en moins de 45 ns, le temps minimal séparant deux activations de rang à l’intérieur d’un même banc DDR4.
F’un des objectifs de réalisation de la présente description est de remédier au moins partiellement à l’une ou plusieurs de ces limitations.
US 201400· ne convient pas pour une DRAM intégrant un processeur
B16077FR
Fa soumission du brevet publié sous WO 2017/055732 expose comment il est faisable d’avoir un processeur intégré à l’intérieur d’une puce DRAM compatible DDR4.
Fe brevet n’est pas adapté à une DRAM avec un processeur interne, puisque le contrôleur de mémoire externe ne connaît pas les activations générées par le processeur interne de la DRAM, alors que la possibilité pour qu’un rang donné devienne un agresseur résulte de la somme :
• des activations générées par le contrôleur de mémoire externe visant ce rang donné, • et des activations générées par le processeur interne de la mémoire DRAM visant ce rang donné.
06704 A1 ne fonctionne pas dans certains scénarios simples
Fa valeur de déclenchement intrinsèque considérée est 125000 activations de rang, et tous les paramètres significatifs sont calculés suivant la méthode exposée dans US 21
Fa fenêtre temporelle N commence au temps T.
Fa rangée 20000 est rafraîchie entre T+16 ms et T+32 ms.
Entre les temps T+32 ms et T+64 ms, le rang 20000 est activé 120000 fois, soit moins que la valeur de déclenchement intrinsèque 125000, donc aucun rafraîchissement préventif n’est initié pour ses rangs voisins.
Suivant la fenêtre temporelle N, la nouvelle fenêtre temporelle N+l commence à T+64 ms, et la table de logique de détection est initialisée, puisque initialisée au commencement de chaque fenêtre temporelle (comme expliqué dans US 20140006704 A), cette initialisation conduisant en particulier à la mise à zéro du compteur d’activations associé au rang 20000.
Entre les temps T+64 ms et T+80 ms, le rang 20000 n’est pas encore rafraîchi (il sera rafraîchi entre 64+16 ms et 64+32 ms), et le rang 20000 est activé 10000 fois de plus, donc :
Ee rang 20 000 a été activé plus de 125 000 fois (130 000 fois) sur une période de temps inférieure à 64 ms (de T+32 ms à T+80 ms) et pourtant, le besoin de rafraîchissements
B16077FR préventifs pour ses deux voisins n’a pas été découvert par la logique proposée par US 2I
US 20140006704 A1 ne convient pas à l’intégration à une DRAM
Un contrôleur DRAM externe fera typiquement partie d’un ASIC fabriqué sur un processus adapté pour créer de la logique rapide, un tel processus étant appelé processus logique (« logic process »).
Fes DRAM sont fabriqués avec des processus spécialisés, permettant aux condensateurs utilisés pour les cellules mémoire d’être construits, et la logique construite en utilisant de tels processus est bien plus lente que si elle l’était en utilisant un processus logique.
Par conséquent, un algorithme implémenté dans une DRAM sera typiquement bien plus lent que le même algorithme implémenté dans un ASIC.
Fa seule méthode expliquée dans US 2014000 nécessite le tri d’une table de comptages d’activations de rang (il n’y a nulle part d’explication pratique expliquant comment se débarrasser du tri de la table).
Trier est une procédure coûteuse, qui peut être suffisamment rapide si elle est implémentée sur un processus logique, mais elle n’est probablement pas assez rapide quand elle est implémentée sur un processus DRAM, en particulier en considérant que l’ensemble de l’algorithme doit être exécuté en moins de 45 ns, le temps minimum séparant deux commandes d’activations visant un même banc.
Résumé
F’une des concrétisations de la description présentée est de solutionner au moins partiellement l’un ou plus des problèmes de l’art antérieur.
Selon un des aspects, il est fourni un dispositif mémoire comprenant un ou plusieurs bancs, chaque banc comprenant une pluralité de rangs mémoire, le dispositif mémoire comprenant par ailleurs : un port d’accès externe configuré pour permettre à un contrôleur mémoire externe d’activer, puis d’accéder aux rangs mémoire de chaque banc ; un ou plusieurs processeurs internes capables d’activer, puis d’accéder aux rangs mémoire de chaque banc ; une logique de détection de déclenchement du Row Hammer configurée pour surveiller, pour chaque banc, les commandes de activations provenant d’une part du contrôleur mémoire externe et d’autre part d’un ou plusieurs processeurs internes, la
B16077FR logique de détection de déclenchement comprenant du stockage mémoire : une ou plusieurs tables indiquant, pour chaque rang d’un sous-ensemble de rangs de chaque banc, une valeur de comptage basée sur le nombre de commandes d'activations visant le rang, où le sous-ensemble de rangs associé à la valeur de comptage dans une ou plusieurs tables est variable dynamiquement, pour indiquer les rangs les plus fréquemment activés, basé sur la détection des commandes d’activations visant chaque rang de chaque banc ; une valeur de comptage supplémentaire indiquant le nombre maximum de commandes d’activations qui auraient pu viser l’un des rangs ne faisant pas partie à ce moment du dit sous-ensemble de rangs ; et dans lequel la logique de détection du déclenchement du Row Hammer est configurée pour comparer chacune des dites valeurs de comptage avec un niveau de seuil afin d’identifier un ou plusieurs rangs dans le sous-ensemble de rangs, et de déclencher une opération de rafraîchissement de l’un ou plusieurs des rangs adjacents à chaque rang identifié.
Suivant l’un des modes de réalisation, une ou plusieurs tables comprennent une entrée associée à chaque rang du sous-ensemble de rang, chaque entrée comprenant ladite valeur de comptage, dans laquelle le nombre d’entrées dans la ou lesdites tables supplémentaires est inférieure à un centième du nombre de rang dans chaque banc.
Suivant l’un des modes de réalisation, le dispositif mémoire comprend par ailleurs une logique d'envoi de rafraîchissement préventif pour un ou plusieurs rangs adjacents de chaque rang identifié en émettant des requêtes de rafraîchissement à la place des requêtes de rafraîchissement périodiques générées par le contrôleur de mémoire expert, retardant de ce fait une ou plusieurs desdites requêtes de rafraîchissement périodiques.
Selon l’un des modes de réalisation, la quantité de temps de laquelle les requêtes de rafraîchissement périodiques sont retardés n’excède pas une quantité maximum qui permette à chaque banc mémoire de retenir correctement ces données au fil du temps.
Selon l’un des modes de réalisation, la logique d'envoi de rafraîchissement préventif comprend une mémoire mémorisant une indication sur le rang, ou les rangs adjacents de chacun des rangs identifiés comme devant être rafraîchis.
Selon l’un des modes de réalisation, un protocole externe utilisé par le contrôleur de mémoire externe permet au dispositif mémoire de prendre l’initiative de générer des rafraîchissements.
B16077FR
Selon l’un des modes de réalisation, la logique de détection de déclenchement du Row Hammer est configurée, après chaque commande d’activation provenant du contrôleur externe mémoire ou de l’un des processeurs internes : pour modifier la valeur de comptage associée au rang visé par la commande d’activation si le rang visé appartient au sous-ensemble de rangs ; ou pour remplacer une entrée dans une ou plusieurs des tables par une entrée correspondant au rang visé par la commande d’activation si la valeur de comptage de cette entrée est égale à la valeur de comptage supplémentaire; ou pour modifier la valeur de comptage supplémentaire si le rang visé n’appartient pas à l’un des sous-ensembles de rangs et qu’aucune des valeurs de comptage dans l’une ou plusieurs des tables n’est égale à la valeur de comptage supplémentaire.
Selon un aspect supplémentaire, il est fourni une méthode pour protéger un dispositif mémoire de l’effet Row Hammer, le dispositif mémoire comprenant un ou plusieurs bancs, chacun des bancs comprenant plusieurs rangs mémoire, la méthode comprenant : surveiller, par de la logique de détection de déclenchement du Row Hammer et pour chaque banc, les commandes d’activation de rang générée par d’une part un contrôleur externe mémoire et d’autre part un ou plusieurs processeurs internes ; mémoriser, par de la logique de détection de déclenchement du Row Hammer, une ou plusieurs tables indiquant, pour chaque rang d’un sous-ensemble de rangs de chaque banc, une valeur de comptage basée sur le nombre de commandes d’activation visant le rang, dans lequel le sous-ensemble de rangs associé à la valeur de comptage dans une ou plusieurs tables est dynamiquement variable pour indiquer les rangs les plus fréquemment activés basée sur une détection des commandes d’activation visant chaque rang de chaque banc ; mémoriser, par une logique de détection de déclenchement du Row Hammer, une valeur de comptage supplémentaire indiquant le nombre maximum de commandes d’activation qui pourrait avoir visé n’importe lequel des rangs ne faisant pas à ce moment partie dudit sous-ensemble de rangs ; comparer, par une logique de détection de déclenchement du Row Hammer, chacune des valeurs de comptage avec un niveau de seuil afin d’identifier un ou plusieurs rangs dans une ou plusieurs tables ; et déclencher, par une logique de détection de déclenchement, une opération de rafraîchissement de l’un ou plusieurs rangs adjacents à chacun des rangs identifiés.
Selon l’un des modes de réalisation, la méthode comprend aussi l’implémentation, par une logique d'envoi de rafraîchissement préventif, une opération de rafraîchissement pour un ou plusieurs rangs adjacents à chacun des rangs identifiés en émettant des requêtes de rafraîchissement à la place des requêtes de rafraîchissement périodiques générées par le
B16077FR contrôleur externe mémoire, retardant par là une ou plusieurs desdites requêtes de rafraîchissement périodique.
Selon l’un des modes de réalisation, la méthode comprend aussi : après chaque commande d’activation émise par le contrôleur mémoire externe ou par un des processeurs internes : modifier la valeur de comptage associée avec le rang visé par la commande d’activation si le rang visé appartient au sous-ensemble de rangs ; et remplacer une entrée dans une ou plusieurs tables par une entrée correspondant au rang visé par la commande d’activation si la valeur de comptage de cette entrée est égale à la valeur de comptage supplémentaire ; et modifier la valeur de comptage supplémentaire si le rang visé n’appartient pas ou sous-ensemble de rangs et aucune des valeurs de comptage dans une ou plusieurs tables m’est égale à la valeur de comptage supplémentaire.
Brève description des dessins
Fes avantages et les caractéristiques précédentes et autres vont apparaître à partir de la description détaillée suivante des modes de réalisation, fourni à titre d'exemple non limitatif, avec références au dessin associé, dans lequel :
Fa figure 1 illustre schématiquement une partie d’un système de calcul (« computing System ») comprenant un dispositif mémoire qui intègre des processeurs selon un exemple de mode de réalisation.
Principes d’opération des modes de réalisation de la présente invention
Pour chaque banc de la DRAM, les modes de réalisation décrits ci-après par exemple comprennent deux blocs :
• Une unité de détection de déclenchement, et • Une unité d'envoi de rafraîchissement où l’unité de détection de déclenchement nourrit l’unité d'envoi de rafraîchissement.
A chaque commande d’activation concernant le banc, l’unité de détection de déclenchement, détaillée ci-après, indique si le rang visé par cette commande d’activation a potentiellement atteint la valeur de déclenchement. Fe terme « potentiellement » reflète le fait que des faux positifs sont possibles, mais sans conséquence puisque suffisamment peu fréquents, comme montré ci-après.
B16077FR
E’unité d'envoi de rafraîchissement comprend par exemple une FIFO, appelée ici la FIFO de rafraîchissement préventif, et quand une commande d’activation, visant un rang donné, est marquée comme ayant atteint sa valeur de comptage de déclenchement, alors les deux index des deux rangs voisins de ce rang donné sont calculés puis poussés dans cette FIFO.
Quand la FIFO de rafraîchissement préventif n’est pas vide, les rafraîchissements préventifs devront être émis, mais le banc DRAM de pourra par initier ces rafraîchissements préventifs de sa propre initiative :
• Du point de vue du protocole, la puce mémoire DRAM est un esclave du contrôleur externe mémoire DRAM, et avoir un banc d’une puce DRAM capable d’effectuer des rafraîchissements de sa propre initiative romprait le protocole entièrement.
Fe contrôleur externe mémoire qui est connecté à la DRAM génère régulièrement des requêtes de rafraîchissement périodique. Un rafraîchissement périodique ne spécifie pas l’index du rang à rafraîchir : cet index étant généré par une logique DRAM interne appelée logique de compteur de rafraîchissement (puisque c’est généralement juste un compteur).
Donc dans les modes de réalisation de cette présente invention, chaque banc a sa propre logique de compteur de rafraîchissement et chaque fois qu’un banc DRAM reçoit une requête de rafraîchissement périodique générée par le contrôleur externe DRAM alors :
• si la FIFO de rafraîchissement préventif pour ce banc n’est pas vide alors l’index du rang à rafraîchir n’est pas fourni par le compteur de rafraîchissement, mais est sorti du FIFO de rafraîchissement préventif, le compteur de rafraîchissement de ce banc restant inchangé.
• si la FIFO de rafraîchissement préventif est vide alors l’index du rang à rafraîchir est fourni par le compteur de rafraîchissement de ce banc, celui-ci étant mis à jour.
Puisque l’exécution des rafraîchissements préventifs est rythmée par les rafraîchissements périodiques, la valeur de déclenchement doit être réduite du nombre d’activations qui peuvent être faites durant le délai pire-cas entre la découverte qu’un rafraîchissement périodique est nécessaire et son exécution effective, ce délai pire-cas résultant :
B16077FR • du fait que plusieurs rafraîchissements préventifs ont pu être accumulés dans la FIFO, ceci étant facilité par le fait que les rafraîchissements préventifs sont générés par paires • du besoin d’attendre pour la réalisation effective de chaque rafraîchissement préventif en attente, une requête de rafraîchissement périodique.
En ignorant la latence intrinsèque de la logique, le délai pire-cas est à peu près Max_Triggered x 2 x Max_Timed_Refresh_Period, où :
• Max_Triggered est le nombre de rangs d’un banc qui peuvent être activés suffisamment de fois pour atteindre la valeur de déclenchement dans une fenêtre temporelle de 64 ms, • Max_Timed_Refresh_Period est le temps maximum entre deux requêtes de rafraîchissement périodique.
Extension de la fenêtre de rafraîchissement
L’exécution effective des rafraîchissements préventifs retarde les rafraîchissements périodiques, mais le délai maximum est suffisamment petit pour être sans conséquence :
Un banc DRAM typique ayant 65536 rangs, le contrôleur de mémoire externe génère en moyenne, pour un banc, un rafraîchissement périodique tous les 976 ns (64 ms / 65536).
Typiquement une commande d’activation peut être émise toutes les 45 ns vers un banc donné, ce qui signifie que pour une fenêtre temporelle de 64 ms, moins de 1423000 commandes d’activation peuvent viser un même banc, ce nombre étant appelé Max_activate_in_window.
Considérant une valeur intrinsèque de Row Hammer de 125000, cela signifie que dans une fenêtre de 64 ms, il peut y avoir un maximum de 11 agresseurs dans un banc DRAM donné.
Considérant l’exemple précédent, dans le pire cas, au lieu de rafraîchir 65536 rangs en 64 ms, alors 65536+(11x2) rangs peuvent être rafraîchis, ce qui conduit à l’extension de la fenêtre de rafraîchissement de 64 ms à 64,022 ms. Une si petite extension n’est absolument pas un problème puisque le chiffre de 64 ms est une valeur prudemment basse.
B16077FR
Figure 1
La figure 1 synthétise l’explication jusqu’ici :
Un contrôleur externe mémoire 111, qui fait par exemple partie d’un ASIC 110, est couplé à un dispositif de mémoire 120 à travers un bus attaché à l’interface du dispositif mémoire 121 du dispositif mémoire 120.
Un banc 126 peut être accédé par le contrôleur de mémoire externe 111 et par le processeur intégré 122.
Une logique de détection de déclenchement 123 surveille les commandes d’activation générés par le contrôleur mémoire externe 111 et par le processeur intégré 122.
La logique de détection de déclenchement 123 indique, à travers l’assertion d’un signal TRIG reached, quand l’activation du rang couramment activé implique que ce rang peut potentiellement atteindre la valeur de déclenchement.
La logique d'envoi de rafraîchissement 124 reçoit le signal TRIG reached et détermine alors les index des deux rangs qui sont adjacents au rang « sur le point de devenir » agresseur, puis par exemple pousse ces deux index dans la FIFO de la logique d'envoi de rafraîchissement 124.
La FIFO est par exemple vidée en préemptant les créneaux de rafraîchissement périodique. Les rafraîchissements correspondants ne sont par exemple pas perdus mais simplement retardés, puisque la logique de compteur de rafraîchissement 125 n’est pas mise à jour.
L’unité de détection de déclenchement
Comme il deviendra apparent plus tard, l’algorithme utilisé par l’unité de détection de déclenchement est par exemple approximatif, et pour compenser cela, la valeur de déclenchement effective retenue Trig_Eff est par exemple :
• initialement basée sur la moitié de la valeur de déclenchement intrinsèque, la raison pour cela étant détaillé plus loin, • encore réduite pour prendre en compte le délai de pire cas pour avoir un rafraîchissement préventif effectivement réalisé, comme précédemment expliqué. Puisque le délai pire-cas dépend principalement du nombre maximum de
B16077FR rafraîchissements préventifs en attente, qui dépendent de Trig_Eff, la valeur Trig_Eff exacte est par exemple calculée itérativement.
Fa conséquence pratique est que plus de rafraîchissements préventifs que strictement nécessaire pourraient être émis. Ce n’est pas un problème puisque le nombre de ces rafraîchissements préventifs reste marginal par rapport au nombre de rafraîchissements périodiques :
• puisque les rafraîchissements préventifs volent des créneaux de rafraîchissement périodique, il n’y a pas de pénalité de performance résultant de l’émission de rafraîchissements préventifs inutiles • le seul impact pratique est que la fenêtre de 64 ms de rafraîchissement peut être étendue plus que strictement nécessaire. Ceci est sans conséquence puisque cette extension reste très petite en pourcentage.
Alors qu’il génère des faux positifs, l’algorithme proposé ne génère par de faux négatifs, à la différence du système décrit dans US 2014000
Algorithme de l’unité de détection de déclenchement
E’unité de logique de détection de déclenchement comprend par exemple une table, la table RACT (Row Activate Count Table) qui a Nbr_of_entries entrées, où Nbr_of_entries est par exemple calculée comme suit :
Nbr_of_entries = INT (Max_activate_in_window / Trig_Eff)
Où la fonction INT retourne sa valeur d’entrée arrondie à la valeur entière immédiatement inférieure ou égale.
Chaque entrée RACT comprend par exemple deux champs :
• Un champ ROW_COUNT qui est suffisamment large pour contenir une valeur jusqu’à Trig Efif, • Un champ R0W_INDEX qui est suffisamment large pour contenir toutes les valeurs possibles d’index de rangs, et une valeur additionnelle qui n’est jamais un index de rang, appelée no_row.
B16077FR
De plus, la logique de détection de déclenchement comprend par exemple un registre appelé OTHER_ROWS_COUNT, suffisamment large pour contenir une valeur jusqu’à Trig_Eff-l.
N’importe quelle référence de temps périodique peut être utilisée, mais pour la simplicité de l’explication, dans un banc, une fenêtre de rafraîchissement est dite commencée par exemple quand :
• la logique de compteur de rafraîchissement du banc désigne à ce moment le rang 0, • une requête de rafraîchissement périodique est générée par le contrôleur de mémoire externe.
A chaque fois qu’une fenêtre de rafraîchissement démarre, la logique de détection du déclenchement par exemple :
• met à zéro les champs ROW_COUNT de toutes les entrées de RACE • initialise les champs R0W_INDEX de toutes les tables RACE à no_row, • met à zéro le registre OFHER_ROWS_COUNE.
Chaque fois qu’une commande d’activation, visant un rang avec un index J, est exécutée par un banc, alors la logique de détection de déclenchement lit par exemple les entrées de RACE pour atteindre un premier objectif et un second objectif, le second n’étant pris en compte que si le premier n’est pas atteint :
• Ee premier objectif est de trouver une entrée de RACE dont le champ R0W_INDEX a la valeur J, • Le second objectif est de trouver une entrée de RACE dont le champ R0W_C0UNE est égal à OEHER_ROWS_COUNE.
Premier objectif atteint
Dès que le premier objectif est atteint, alors la lecture des entrées est par exemple stoppée et :
le champ R0W_C0UNE de l’entrée trouvée est incrémenté,
B16077FR • si la valeur du champ ROW_COUNT de l’entrée trouvée est égale à Trig_Eff, alors :
o le champ R0W_INDEX de l’entrée trouvée est par exemple mis à no row.
o les index des rangs des deux voisins du rang J sont par exemple poussés dans la FIFO de rafraîchissement préventif.
Premier objectif non atteint est second objectif atteint
Dans l’explication suivante, l’index de la table RACT de l’entrée trouvée est appelée Fidx (Found Index), donc nous avons :
OTHER_ROWS_COUNT == RACT[Fidx].ROW_COUNT
Fa logique de détection de déclenchement effectue alors :
• RACT[Fidx].ROW_COUNT est incrémenté, • RACT[Fidx] .ROWJNDEX est mise à J.
Premier et second objectifs non atteints • OTHER_ROW_COUNT est incrémenté
Dans cet algorithme, un rang est toujours associé à un compteur d’activation, un rang R par exemple étant :
• soit associé au nombre d’activations contenu par le champ ROW_COUNT d’une entrée de RACT dont le champ R0W_INDEX est égal à R, • ou associé au nombre d’activations contenu dans le registre OTHER_ROWS_COUNT.
F’algorithme assure par exemple que le nombre couramment associé à un rang est toujours supérieur ou égal au nombre d’activations réel depuis le début de la fenêtre de rafraîchissement.
F’algorithme assure aussi par exemple que OTHER_ROWS_COUNT est plus petit que les champs RACT.ROW_COUNT les plus petits, donc l’algorithme assure que si le
B16077FR nombre d’activations effective du rang R atteint Trig_Eff, ceci arrivera dans une entrée de RACT, et non dans le registre OTHER_ROWS_COUNT.
Dimensionner la FIFO de rafraîchissement préventif
Puisque les rafraîchissements préventifs s’accumulent potentiellement dans la FIFO de rafraîchissement préventif, dans certains modes de réalisation une limite haute aux nombres maximum de rafraîchissements préventifs qui peuvent être poussés dans cette FIFO est déterminée, afin de la dimensionner convenablement.
Une entrée n’atteint la valeur Trig Eff qu’en ayant compté Trig_Eff activations, visant potentiellement différents rangs (c’est ainsi que des faux positifs peuvent arriver) ou en visant un rang unique (et c’est certainement un vrai positif).
Il est donc impossible que la logique de détection au déclenchement génère plus qu’une paire de rafraîchissement préventif pas entrée de RACT.
Variante d’algorithme
Dans l’algorithme décrit précédemment, la valeur de registre OTHER_ROWS_COUNT est par exemple nécessairement inférieure ou égale au champ ROW_COUNT le plus petit des entrées de RACT.
Donc OTHER_ROW_COUNT ne peut atteindre Trig_Eff, car sinon la valeur aurait entraîné une entrée supplémentaire RACT.
Fa logique de détection de déclenchement est fondamentalement un cache, dont l’associativité est égale au nombre d’entrées. E’algorithme précédemment expliqué a son associativité réduite chaque fois qu’une entrée atteint Trig_Eff, l’entrée étant effectivement enlevée puisque :
• Son ROW_INDEX est initialisée à no_row: aucun rang activé ne peut plus atteindre cette entrée • Son champ ROW_COUNT reste à la valeur Trig_Eff : il ne peut pas être égal à OTHER_ROWS_COUNT.
Fa variation suivante de l’algorithme initial maintient l’associativité constante en recyclant les entrées de RACT qui atteignent Trig_Eff :
B16077FR
Premier objectif atteint
Dès que le premier objectif est atteint, alors la lecture des entrées de RACT est par exemple stoppée et :
• Si la valeur du champ ROW COUNT de l’entrée trouvée est égale à Trig_Eff-l, alors :
• Fe champ R0W_INDEX de l’entrée trouvée est par exemple mis à no row.
• Ee champ ROW_COUNT l’entrée trouvée est par exemple mis à la valeur contenue par OTHER_ROWS_COUNT, • Ees index de rang des deux voisins du rang J sont par exemple poussés dans la FIFO de rafraîchissement préventif.
• Sinon le champ ROW_COUNT de l’entrée trouvée est incrémenté.
Premier objectif non atteint et second objectif atteint
Fa logique de détection de déclenchement implémente alors par exemple ce qui suit :
• RACT[Fidx].ROW_COUNT est incrémenté, • RACT[Fidx] .ROWJNDEX est mis à J.
Premier objectif et second objectif non atteints • OTHER_ROW_COUNT est par exemple incrémenté
Dimensionner la FIFO de rafraîchissement préventif pour la variante d’algorithme
Cette variante d’algorithme maintient l’associativité constante au lieu de la réduire graduellement, et conduit donc nécessairement à moins de faux positifs. Par conséquent, elle ne peut générer plus de rafraîchissements préventifs que l’algorithme initial, et donc ne peut pas générer plus de deux rafraîchissements préventifs par entrée RACT.
Justification du calcul Trig_Eff
B16077FR
Fa logique exposée est capable de détecter si un rang a atteint Trig_Eff. Donc, quand une nouvelle fenêtre de rafraîchissement commence, le « passé d’activation » maximum de n’importe quel rang vaut jusqu’à Trig_Eff_trig-l, puisqu’une telle valeur ne génère pas encore de rafraîchissement préventif.
Donc, avant d’atteindre la valeur Trig_Eff dans une fenêtre de rafraîchissement donnée, un rang peut avoir accumulé en fait (Trig_Eff-l) + (Trig_Eff-l), la première valeur (Trig_Eff-l) étant héritée de la fenêtre précédente de rafraîchissement. Donc la logique détectera en fait de manière fiable seulement (Trig_Eff x 2) -1 activations, expliquant pourquoi le calcul itératif Trig_Eff par exemple commence à partir de la moitié de la valeur de déclenchement intrinsèque.
Généralisations
Ees modes de réalisation de la présente description ont été décrits dans le contexte de bancs DRAM, mais évidemment les techniques ici décrites pourraient être appliquées à n’importe quel tableau mémoire qui serait équivalent à un banc haute densité DRAM (ayant une opération de rafraîchissement et souffrant de l’effet Row Hammer).
Des références ont été faites au protocole DDR4, à titre d’exemple, à différents endroits de ce document. Evidemment, les techniques ici décrites pourraient être appliquée à tous les protocoles mémoire affiliés, tels que :
• DDR, DDR2, DDR3, DDR4 dans leurs versions basse consommation, • GDDR, GDDR2, GDDR3, GDDR4, GDDR5, • HBM.
De plus les modes de réalisation ici décrits pourraient être appliqués aux dispositifs mémoire, avec des processeurs intégrés, utilisant des protocoles qui permettent à la DRAM de prendre des initiatives d’exécuter des rafraîchissements, comme le protocole HMC. Dans ce cas, l’unité d'envoi de rafraîchissement préventif décrite ici peut-être omise, seule restant l’unité de détection de déclenchement.
Pour simplifier, une fenêtre de rafraîchissement de 64 ms a été considérée, comme cette valeur est celle actuellement utilisée. Evidemment, les modes de réalisation ici décrits pourraient être appliqués à n’importe quelle durée de fenêtre de rafraîchissement qui serait utilisée par une technologie DRAM donnée, et même à une DRAM où les durées
B16077FR de rafraîchissement s’adaptent continuellement à la variation de paramètres externes, telle la température, le voltage, le niveau de radiation, etc...
De même, le nombre de rangs égal à 65536 a été donné comme un exemple parce qu’il est représentatif des DRAM actuellement fabriquées. Evidemment les modes de réalisation ici décrits pourraient être appliqués indépendamment du nombre de rangs présents dans le banc.
E’algorithme présenté jusqu’ici et ses variations peuvent être modifiées en de nombreuses façons tout en restant dans le cadre de l’invention. Fa liste suivante fournit des exemples de telles modifications qui peuvent être implémentées individuellement ou combinées dans n’importe quel sous combinaison, cette liste étant donnée à titre d’exemple et non à titre de limitation :
• Factoriser certaines des ressources matérielles décrites sur plusieurs bancs DRAM, • Remplacer une table avec différents champs avec différentes tables avec moins de champs, • Remplacer une table par différentes tables plus petites, l’algorithme étant modifié afin de manipuler plusieurs entrées à la fois • Utiliser un bit valide à la place d’une valeur no_row, ce bit valide étant positionné sur un champ additionnel de chaque entrée, ou dans une table additionnelle, • Décompter les commandes d’activation au lieu de les compter, le champ ROW_COUNT de RACT et le registre OTHER_ROWS_COUNT étant initialisés avec un nombre de commandes d’activation permise pour la fenêtre de rafraîchissement, • Grouper les rangs en paquets de rangs topologiquement adjacents, l’activation étant suivi au niveau du paquet de rangs, et quand le nombre d’activation atteint Trig_Eff, alors :
o Tous les rangs du paquet des agresseurs sont rafraîchis
B16077FR o Les deux rangs qui sont voisins du paquet agresseur sont rafraîchis (ou les deux paquets de rangs correspondants sont rafraîchis, si les rafraîchissements sont gérés au niveau de granularité du paquet de rangs).

Claims (10)

  1. REVENDICATIONS
    1. Un dispositif mémoire comprenant un ou plusieurs bancs (126), chaque banc comprenant plusieurs rangs de mémoire, le dispositif mémoire comprenant par ailleurs :
    un port d’accès externe (121) configuré pour permettre à un contrôleur de mémoire externe (111) d’activer, puis d’accéder, aux rangs mémoire de chaque banc ;
    un ou plusieurs processeurs internes (122) capables d’activer, puis d’accéder, aux rangs mémoire de chaque banc ;
    une logique de détection de déclenchement du Row Hammer (123) configuré pour surveiller, pour chaque banc, les commandes d’activation émises par le contrôleur de mémoire externe et par un ou plusieurs Processeurs internes, la logique de détection du déclenchement du Row Hammer comprenant de la mémoire mémorisant :
    une ou plusieurs tables indiquant, pour chaque rang d’un sousensemble de rangs de chaque banc, une valeur de comptage basée sur le nombre de commandes d’activation visant le rang, dans lequel le sous-ensemble de rangs associés à la valeur de comptage dans l’une ou plusieurs tables est dynamiquement variable pour indiquer les rangs les plus fréquemment activés basée sur une détection des commandes d’activation visant chaque rang de chaque banc ;
    une valeur de comptage supplémentaire indiquant le nombre maximum de commandes d’activation qui pourraient avoir visé n’importe quel rang ne faisant pas partie dudit sous-ensemble de rangs ; et dans lequel la logique de détection de déclenchement du Row Hammer est configurée pour comparer de chacune desdites valeurs de comptage avec un niveau de seuil afin d’identifier un ou plusieurs rangs dans le sous-ensemble de rangs, et de déclencher une opération de rafraîchissement d’un ou plusieurs rangs adjacents à chaque rang identifié.
    B16077FR
  2. 2. Le dispositif mémoire de la revendication 1, dans lequel une ou plusieurs tables comprennent une entrée associée avec chaque rang du sous-ensemble de rangs, chaque entrée comprenant ladite valeur de comptage, dans laquelle le nombre d’entrées de ladite où desdites tables est inférieur au centième du nombre de rangs de chaque banc.
  3. 3. Le dispositif mémoire de la revendication 1 ou 2, comprenant par ailleurs une logique d'envoi de rafraîchissement préventif (124) configurée pour implémenter une opération de rafraîchissement pour l’un ou plusieurs des rangs adjacents de chaque rang identifié en émettant des requêtes de rafraîchissement à la place des requêtes de rafraîchissement périodique générées par le contrôleur mémoire externe, retardant ce faisant une ou plusieurs desdites requêtes de rafraîchissement périodique.
  4. 4. Le dispositif mémoire de la revendication 3, dans lequel la durée de laquelle lesdites requêtes de rafraîchissement périodique sont retardées n’excède pas une durée maximum qui permette à chaque mémoire de retenir correctement ses données dans le temps.
  5. 5. Le dispositif mémoire de la revendication 3 ou 4, dans lequel la logique d'envoi de rafraîchissement préventif comprend une mémoire (FIFO) stockant, pour chaque rang identifié, une indication de l’un ou plusieurs rangs adjacents à rafraîchir.
  6. 6. Le dispositif mémoire de la revendication 1 ou 2, dans lequel un protocole externe utilisé par le contrôleur de mémoire externe permet aux dispositifs mémoire de prendre l’initiative de générer des rafraîchissements.
  7. 7. Le dispositif mémoire de n’importe quel des revendications 1 à 6, dans lequel la logique de détection de déclenchement du Row Hammer est configurée, après chaque commande d’activation émise par le contrôleur de mémoire externe ou par un des processeurs internes, pour :
    - modifier la valeur de comptage associée au rang visé par la commande d’activation si le rang visé fait partie du sous-ensemble de rangs; et
    - remplacer une entrée dans une ou plusieurs tables par une entrée correspondant au rang visé par la commande d’activation si la valeur de comptage de cette entrée est égale à la valeur de comptage supplémentaire; et
    B16077FR
    - modifier la valeur de comptage supplémentaire si le rang visé ne fait pas partie du sous-ensemble de rangs et aucune des valeurs de comptage dans une ou plusieurs tables n’est égale à la valeur de comptage supplémentaire.
  8. 8. Une méthode de protection du dispositif mémoire de l’effet Row Hammer, le dispositif mémoire comprenant un ou plusieurs bancs (126), chaque banc comprenant plusieurs rangs mémoire, la méthode comprenant :
    surveiller, par la logique de détection de déclenchement du Row Hammer (123) et pour chaque banc, les commandes d’activation de rang émises par le contrôleur de mémoire externe et par un ou plusieurs processeurs internes du dispositif mémoire, chaque commande d’activation de rang causant au rang dudit banc d’être activé avant d’être accédé par le contrôleur mémoire externe ou par un ou plusieurs processeurs internes ;
    stocker, par la logique de détection de déclenchement du Row Hammer, une ou plusieurs tables indiquant pour chaque rang d’un sous-ensemble de rangs de chaque banc, une valeur de comptage basée sur le nombre de commandes d’activation visant le rang, dans lequel le sous-ensemble de rangs associé à une valeur de comptage dans une ou plusieurs tables est dynamiquement variable pour indiquer les rangs les plus fréquemment activés basée sur la détection des commandes d’activation visant chaque rang de chaque banc;
    mémoriser, par la logique de détection de déclenchement du Row Hammer, une valeur de comptage supplémentaire indiquant le nombre maximum de commandes d’activations qui ont pu viser n’importe quel rang ne faisant pas partie dudit sous-ensembles de rangs ;
    comparer, par la logique de détection de déclenchement du Row Hammer, chacune des valeurs de comptage avec un niveau de seuil afin d’identifier un ou plusieurs rangs dans une ou plusieurs tables ; et déclencher, par la logique de détection de déclenchement du Row Hammer, une opération de rafraîchissement d’un ou plusieurs rangs adjacents au rang identifié.
  9. 9. La méthode de la revendication 8, comprenant par ailleurs l’implémentation, par la logique d'envoi de rafraîchissement préventif (124), d’une opération de
    B16077FR rafraîchissement pour un ou plusieurs rangs adjacents de chaque rang identifié en émettant des requêtes de rafraîchissement à la place des requêtes de rafraîchissement périodique générées par le contrôleur de mémoire externe, retardant ce faisant un ou plusieurs desdites requêtes de rafraîchissement périodique.
    5 10. Fa méthode de la revendication 8 ou 9, comprenant par ailleurs : après chaque commande d’activation émise par le contrôleur de mémoire externe ou par l’un des processeurs internes :
    - modifier la valeur de comptage associée au rang visé par la commande d’activation si le rang visé fait partie du sous-ensemble de rang ; et
  10. 10 - remplacer une entrée dans une ou plusieurs tables par une entrée correspondant au rang visé par la commande d’activation si la valeur de comptage de cette entrée est égale à la valeur supplémentaire de comptage ; et
    - modifier la valeur de comptage supplémentaire si le rang visé ne fait pas partie du sous-ensemble de rangs et aucune des valeurs de comptage dans une ou plusieurs tables de n’est égale à la valeur de comptage supplémentaire.
FR1770532A 2017-05-24 2017-05-24 Logique de correction de row hammer pour dram avec processeur integre Active FR3066842B1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
FR1770532A FR3066842B1 (fr) 2017-05-24 2017-05-24 Logique de correction de row hammer pour dram avec processeur integre
PCT/FR2018/051200 WO2018215715A1 (fr) 2017-05-24 2018-05-18 Logique de correction de row hammer pour dram avec processeur integre
JP2019564461A JP7142946B2 (ja) 2017-05-24 2018-05-18 統合プロセッサを備えたdramのロウハンマー修正ロジック
US16/615,636 US11049544B2 (en) 2017-05-24 2018-05-18 Row hammer correction logic for dram with integrated processor
CN201880034535.7A CN110741436B (zh) 2017-05-24 2018-05-18 用于具有集成处理器的dram的行锤效应校正逻辑模块
KR1020197038136A KR102480349B1 (ko) 2017-05-24 2018-05-18 집적 프로세서를 갖는 dram의 로우 해머 수정 로직

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1770532 2017-05-24
FR1770532A FR3066842B1 (fr) 2017-05-24 2017-05-24 Logique de correction de row hammer pour dram avec processeur integre

Publications (2)

Publication Number Publication Date
FR3066842A1 FR3066842A1 (fr) 2018-11-30
FR3066842B1 true FR3066842B1 (fr) 2019-11-08

Family

ID=60020231

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1770532A Active FR3066842B1 (fr) 2017-05-24 2017-05-24 Logique de correction de row hammer pour dram avec processeur integre

Country Status (6)

Country Link
US (1) US11049544B2 (fr)
JP (1) JP7142946B2 (fr)
KR (1) KR102480349B1 (fr)
CN (1) CN110741436B (fr)
FR (1) FR3066842B1 (fr)
WO (1) WO2018215715A1 (fr)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354408B2 (en) * 2019-08-15 2022-06-07 Nxp Usa, Inc. Technique for detecting and thwarting row-hammer attacks
US11222685B2 (en) * 2020-05-15 2022-01-11 Advanced Micro Devices, Inc. Refresh management for DRAM
US11561862B2 (en) 2020-05-29 2023-01-24 Advanced Micro Devices, Inc. Refresh management for DRAM
FR3111731B1 (fr) 2020-06-23 2023-01-06 Upmem Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US11361811B2 (en) 2020-06-23 2022-06-14 Upmem Method and circuit for protecting a DRAM memory device from the row hammer effect
US11120860B1 (en) * 2020-08-06 2021-09-14 Micron Technology, Inc. Staggering refresh address counters of a number of memory devices, and related methods, devices, and systems
US11809743B2 (en) * 2020-09-21 2023-11-07 Advanced Micro Devices, Inc. Refresh management list for DRAM
US20220129200A1 (en) * 2020-10-26 2022-04-28 Qualcomm Incorporated Dram with quick random row refresh for rowhammer mitigation
US11749333B2 (en) * 2020-12-10 2023-09-05 SK Hynix Inc. Memory system
FR3120153B1 (fr) 2021-02-22 2024-02-16 Upmem Dispositif mémoire pourvu de circuits mémoire DRAM agences de manière à minimiser la taille d’un bloc mémoire permettant la gestion de l’effet de martelage de rang
FR3121262A1 (fr) * 2021-03-29 2022-09-30 Upmem Dispositif mémoire et procédé de protection d’un dispositif mémoire de l’effet de martelage d’un rang
EP4138078A1 (fr) * 2021-08-18 2023-02-22 ETH Zurich Procédé de protection de module dram contre les attaques par martèlement et module dram
KR20230051873A (ko) 2021-10-12 2023-04-19 삼성전자주식회사 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈
KR20230072283A (ko) 2021-11-17 2023-05-24 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
FR3130412B1 (fr) 2021-12-09 2023-12-22 Upmem Dispositif mémoire DRAM mettant un œuvre un mécanisme de gestion du martelage de rang
US20230359361A1 (en) * 2022-05-05 2023-11-09 Micron Technology, Inc. Frequency regulation for memory management commands

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463001B1 (en) * 2000-09-15 2002-10-08 Intel Corporation Circuit and method for merging refresh and access operations for a memory device
US8938573B2 (en) 2012-06-30 2015-01-20 Intel Corporation Row hammer condition monitoring
US9236110B2 (en) * 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
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
US10497409B2 (en) * 2014-12-17 2019-12-03 International Business Machines Corporation Implementing DRAM row hammer avoidance
JP2016212934A (ja) * 2015-05-01 2016-12-15 マイクロン テクノロジー, インク. 半導体装置及びその制御方法
US20170110178A1 (en) * 2015-09-17 2017-04-20 Intel Corporation Hybrid refresh with hidden refreshes and external refreshes
FR3042049A1 (fr) 2015-10-01 2017-04-07 Upmem
KR102358563B1 (ko) * 2018-05-09 2022-02-04 삼성전자주식회사 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR102458726B1 (ko) * 2018-08-03 2022-10-25 마이크론 테크놀로지, 인크 행 해머를 완화하기 위한 방법 및 이를 이용한 메모리 디바이스 및 시스템
US10950288B2 (en) * 2019-03-29 2021-03-16 Intel Corporation Refresh command control for host assist of row hammer mitigation

Also Published As

Publication number Publication date
CN110741436A (zh) 2020-01-31
KR20200014805A (ko) 2020-02-11
FR3066842A1 (fr) 2018-11-30
US11049544B2 (en) 2021-06-29
WO2018215715A1 (fr) 2018-11-29
CN110741436B (zh) 2023-11-10
US20210012832A1 (en) 2021-01-14
JP7142946B2 (ja) 2022-09-28
KR102480349B1 (ko) 2022-12-22
JP2020521267A (ja) 2020-07-16

Similar Documents

Publication Publication Date Title
FR3066842B1 (fr) Logique de correction de row hammer pour dram avec processeur integre
US11222684B2 (en) Refresh control device and memory device for latching an address randomly
US10262717B2 (en) DRAM adjacent row disturb mitigation
US10572377B1 (en) Row hammer refresh for content addressable memory devices
FR3111730A1 (fr) Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US10388363B1 (en) Apparatuses and methods for detecting a row hammer attack with a bandpass filter
FR3023030A1 (fr)
EP3259674B1 (fr) Circuit dram muni d'un processeur integre
FR2809841A1 (fr) Procede et appareil pour reduire la puissance dans des memoires cache et systeme de traitement de donnees comportant des memoires chaches
FR3055715A1 (fr) Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue
FR3086788A1 (fr) Circuit memoire imc a cellules 6t
EP1876601B1 (fr) Procédé de rafraîchissement d'une mémoire vive dynamique, en particulier en mode veille et en mode de fonctionnement actif, et dispositif de mémoire vive dynamique correspondant, par exemple incorporé dans un téléphone mobile cellulaire
EP1248261A2 (fr) Procédé de gestion à accès aléatoire et rapide d'une mémoire dram
EP3671470A1 (fr) Procédé de gestion d'une mémoire cache d'un calculateur électronique
EP2043103B1 (fr) Dispositif de mémoire électronique
FR2970794A1 (fr) Systeme multi-cœurs et procede de coherence de donnees dans un tel systeme
WO2022207999A1 (fr) Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang
EP3693862A1 (fr) Procédé de gestion d'une mémoire cache d'un calculateur électronique
WO2022175619A1 (fr) Dispositif memoire pourvu de circuits memoire dram agences de maniere a minimiser la taille d'un bloc memoire permettant la gestion de l'effet de martelage de rang
FR3074936A1 (fr) Procede d'ecriture d'un ensemble d'informations, par exemple un code programme, cryptees dans une memoire externe d'un circuit integre et circuit integre correspondant
US20240062800A1 (en) Dynamic random access memory (dram) row hammering mitigation
He et al. Architecting a novel hybrid cache with low energy
TW202411995A (zh) 動態行錘管理
EP3729768A1 (fr) Procédé de construction automatique de scénarios d'attaques informatiques, produit programme d'ordinateur et système de construction associés
EP3155526A1 (fr) Recherche de correspondance d'élément dans une liste

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLSC Publication of the preliminary search report

Effective date: 20181130

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8