FR3111731A1 - Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang - Google Patents

Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang Download PDF

Info

Publication number
FR3111731A1
FR3111731A1 FR2006541A FR2006541A FR3111731A1 FR 3111731 A1 FR3111731 A1 FR 3111731A1 FR 2006541 A FR2006541 A FR 2006541A FR 2006541 A FR2006541 A FR 2006541A FR 3111731 A1 FR3111731 A1 FR 3111731A1
Authority
FR
France
Prior art keywords
bank
sub
refresh
preventive
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.)
Granted
Application number
FR2006541A
Other languages
English (en)
Other versions
FR3111731B1 (fr
Inventor
Fabrice Devaux
Renaud Ayrignac
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 FR2006541A priority Critical patent/FR3111731B1/fr
Priority to US16/984,212 priority patent/US10885966B1/en
Priority to FR2008742A priority patent/FR3111730B1/fr
Priority to US17/098,044 priority patent/US11361811B2/en
Priority to KR1020237002647A priority patent/KR20230026496A/ko
Priority to CN202180044218.5A priority patent/CN116018645A/zh
Priority to PCT/EP2021/064551 priority patent/WO2021259593A1/fr
Publication of FR3111731A1 publication Critical patent/FR3111731A1/fr
Application granted granted Critical
Publication of FR3111731B1 publication Critical patent/FR3111731B1/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/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/408Address circuits
    • 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
    • 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
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays
    • GPHYSICS
    • 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
    • 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/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/81Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a hierarchical redundancy scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

L’invention porte sur un procédé de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang, le dispositif de mémoire comprenant une pluralité de bancs composés de rangs mémoire, le procédé étant mise en œuvre par au moins une logique de prévention configurée pour associer respectivement des sections contiguës de rangs d’un banc à des sous-bancs et pour exécuter, à chaque activation d’un rang d’un sous-banc (b) de la mémoire, une étape d’incrémentation d’un nombre requis de rafraichissement préventif (REFRESH_ACC ; REFRESH_ACC/PARAM_D) du sous-banc (b) à l’aide d’un seuil d’activations (PARAM_D) du sous-banc (b). La logique de prévention est également configurée pour exécuter une séquence de rafraichissement préventif des sous-banc selon leur nombre requis de rafraichissement préventif. L’invention porte également sur un dispositif de mémoire DRAM ou contrôleur d’une telle mémoire comprenant la logique de prévention de l’effet de martelage de rang. ( Figure 1a )

Description

Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang
DOMAINE DE L’INVENTION
La présente invention concerne le domaine des circuits DRAM (« dynamic random access memory » ou « mémoire dynamique à accès aléatoire » en français) et particulièrement la gestion de l’effet « ROW Hammer ». Cet effet de « martelage de rang » est le fait que, à l’intérieur d’un banc d’une mémoire DRAM donné, activer de manière répétée un rang de la DRAM donné puisse causer aux rangs physiquement adjacents l’inversion de la valeur de certains de leurs bits. Le rang qui est activé répétitivement est appelé « rang agresseur » et les rangs adjacents appelés « rangs victimes ».
ARRIERE PLAN TECHNOLOGIQUE DE L’INVENTION
Le document FR3066842A1 détaille un algorithme de prévention de l’effet de martelage de rang mettant en œuvre l’utilisation d’une table. Cet algorithme est particulièrement adapté à une valeur critique de martelage relativement importante, typiquement de 40000 ou plus. Or, l’utilisation de géométries de fabrication des mémoires DRAMs de plus en plus fines a conduit à observer pour ces mémoires des valeurs critiques de martelage relativement faibles, par exemple aussi faible que 4800.
Dans le document précité, le nombre d’entrées de la table utilisée au cours du déploiement de l’algorithme est inversement proportionnel à la valeur critique de martelage, ce qui impose un nombre d’entrées de 8 fois plus grand s’il fallait exploiter l’algorithme proposé pour des mémoires DRAMs exploitant ces géométries plus fines. Parcourir un tel nombre d’entrées dans le temps séparant deux commandes d’activation d’un rang, même réparties sur plusieurs tables accédées en parallèle, est problématique.
De plus, le martelage de rang affecte également dans ces mémoires DRAMs à géométrie fine, certes dans une moindre mesure, des rangs victimes proches, mais non immédiatement adjacents au rang agresseur martelé. Or la solution proposée par le document FR3066842 ne gère que le martelage qui affecterait uniquement les deux rangs voisins immédiatement adjacents au rang agresseur martelé, un tel phénomène étant référé dans ce document comme étant un martelage de portée 1.
D’une manière générale, un martelage de portée 1 signifie qu’un rang agresseur d’index topologique i d’un banc mémoire, est susceptible d’affecter les rangs i -1 et i +1. Un martelage de portée 2 signifie que les rangs i -2 et i +2 seraient également affectés, mais dans une moindre mesure, et ainsi de suite pour les portées supérieures. Un niveau d’agression de martelage de portée p subit par un rang victime i peut s’exprimer comme la somme pondérée des activations des 2 x p rangs voisins :
+ (nombre d’activations du rang i - p) x RH_coeff_p
+ (nombre d’activations du rang i -( p -1))x RH_coeff_(p-1)
+ . . .
+ (nombre d’activations du rang i -2)x RH_coeff_2
+ (nombre d’activations du rang i -1)x 1
+ (nombre d’activations du rang i +1)x 1
+ (nombre d’activations du rang i +2)x RH_coeff_2
+ . . .
+ (nombre d’activations du rang i +( p -1))x RH_coeff_(p-1)
+ (nombre d’activations du rang i + p) x RH_coeffi_p
Quand le niveau d’agression résultant de cette somme dépasse une valeur critique, alors les données stockées dans le rang i ont été éventuellement altérées. La valeur critique est définie de tel façon que le coefficient (RH_coeff) appliqué pour le nombre d’activations des rangs i -1 et i +1 soit 1, de telle façon que la définition d’un niveau d’agression d’ordre 1 corresponde à la définition habituelle et antérieure du martelage de rang. Bien entendu les coefficients RH_coeff_n deviennent de plus en plus faibles à mesure que l’on s’éloigne du rang martelé. C’est pourquoi il n’est utile que de considérer des phénomènes de ROW Hammer de portée limitée (1, 2, 3 …).
Une logique capable de surveiller les phénomènes de martelage de rang de portée 2 ou plus, en utilisant cette définition générale de somme pondérée, serait probablement trop complexe et trop lente pour être intégrée de manière efficace dans une mémoire DRAM.
Un algorithme capable de gérer un martelage de rang d’une portée supérieure à 1 (2, 3, …), affectant donc également, avec néanmoins une force moindre, les rangs voisins non immédiatement adjacent au rang agresseur martelé, est donc nécessaire.
OBJET DE L’INVENTION
Un but principal de l’invention est de proposer un procédé de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang adressant au moins en partie ces limitations. Plus spécifiquement, un but de l’invention est de proposer un procédé de suivi des activations des rangs d’un banc de mémoire DRAM suffisamment simple pour s’effectuer sans problème dans le temps minimal séparant deux activations, et permettant de prévenir les effets du martelage de portée supérieure à 1. Le procédé s’applique tout particulièrement à des mémoires dont la valeur critique de martelage est relativement faible, par exemple inférieur à 40000, bien que ce procédé puisse pratiquement être déployé pour tout type de mémoire DRAM.
La présente invention peut être intégrée soit dans le contrôleur mémoire, soit dans un dispositif mémoire DRAM. La mémoire DRAM peut intégrer des processeurs.
BREVE DESCRIPTION DE L’INVENTION
En vue de la réalisation de ce but, l’objet de l’invention propose un procédé de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang, le dispositif de mémoire comprenant une pluralité de bancs composés de rangs mémoire, le procédé étant mise en œuvre par au moins une logique de prévention configurée pour associer respectivement des sections contiguës de rangs d’un banc à des sous-bancs et pour exécuter, à chaque activation d’un rang d’un sous-banc de la mémoire, une étape d’incrémentation d’un nombre requis de rafraichissement préventif du sous-banc à l’aide d’un seuil d’activations du sous-banc.
Selon l’invention, la logique de prévention est également configurée pour exécuter une séquence de rafraichissement préventif comprenant :
- une étape de repérage d’un besoin de rafraichissement préventif d’un sous-banc du dispositif de mémoire ;
- une étape de déclenchement d’une opération de rafraichissement d’un rang d’index courant du sous-banc en question ;
- une étape d’incrémentation de l’index courant du sous-banc.
L’opération de rafraichissement forme une étape d’un cycle de rafraichissement préventif conduisant à rafraichir au moins les rangs du sous-banc repéré, et le seuil d’activations du sous-banc est choisi pour qu’un cycle complet de rafraichissement préventif de ce sous-banc soit opéré avant que le nombre d’activations de rangs dans le sous-banc n’excède une valeur de martelage critique.
Selon d’autres caractéristiques avantageuses et non limitatives de l’invention, prises seules ou selon toute combinaison techniquement réalisable :
  • l’étape de repérage d’un besoin de rafraichissement préventif d’un sous-banc comprend l’identification d’un sous-banc dont le nombre requis de rafraichissement préventif est supérieur ou égale à 1, et la décrémentation de ce nombre d’un décrément prédéfini ;
  • l’étape d’incrémentation d’un nombre requis de rafraichissement préventif comprend :
    • une étape d’incrémentation d’un compteur d’activation du sous-banc comprenant le rang activé ;
    • l’incrémentation du nombre requis de rafraichissement préventif du sous-banc, si le compteur d’activation du sous-banc atteint le seuil d’activations;
    • la remise à une valeur de départ du compteur d’activation associé au sous-banc (b) si celui-ci a atteint le seuil d’activation;
  • le nombre requis de rafraichissement préventif du sous-banc est incrémenté d’un incrément déterminé inférieur ou égal à 1 à chaque activation d’un rang du sous-banc, ce nombre étant si nécessaire encodé par un moyen permettant de représenter des valeurs inférieures à 1, comme par exemple non limitatif, l’utilisation d’une représentation fractionnaire;
  • le décrément prédéfini est 1 ;
  • l’étape de repérage d’un besoin de rafraichissement préventif du sous-banc comprend l’identification d’un sous-banc dont le nombre requis de rafraichissement préventif est maximum ;
  • un cycle de rafraichissement préventif conduit également à rafraichir les rangs de la marge basse et/ou la marge basse du sous-banc ;
  • le rang activé du sous-banc est l’un des premiers rangs, ou respectivement l’un des derniers rangs, du sous-banc et l’étape d’incrémentation comprend également l’incrémentation du nombre requis de rafraichissement préventif associé au sous-banc inférieur au rang activé, ou respectivement l’incrémentation du nombre requis de rafraichissement préventif associé au sous-banc supérieur au rang activé ;
  • l’étape d’incrémentation du nombre requis de rafraichissement préventif comprend l’incrémentation d’un compteur de rafraichissement en attente, la séquence de rafraichissement préventif comprend une étape de décrémentation du compteur de rafraichissement en attente, et la séquence de rafraichissement préventif est exécutée répétitivement tant que le compteur de rafraichissement en attente excède une valeur plancher ;
  • le seuil d’activations d’un sous-banc est variable avec la température, la tension d’alimentation, la fréquence des activations d’un sous-banc, les caractéristiques de la mémoire ;
  • le seuil d’activations (PARAM_D) est distinct d’un sous-banc à un autre ;
  • l’étape de déclenchement d’une opération de rafraichissement comprend l’insertion du rafraichissement préventif dans un trafic de commande à destination du banc de la mémoire dans lequel réside le sous-banc ;
  • le cycle complet de rafraichissement préventif du sous-banc conduit à rafraichir une pluralité de fois certains rangs du sous-banc ;
  • le seuil d’activations définit un coefficient d’avancement variable durant un cycle complet de rafraichissement préventif d’un sous-banc ;
  • la logique de prévention est associée à une pluralité de bancs.
Selon un autre aspect, l’invention propose un dispositif de mémoire DRAM ou contrôleur d’un dispositif de mémoire DRAM comprenant une logique de prévention de l’effet de martelage de rang configurée pour mettre en œuvre un procédé de protection tel que présenté.
Selon d’autres caractéristiques avantageuses et non limitatives de l’invention, prises seules ou selon toute combinaison techniquement réalisable :
  • la mémoire DRAM comprend au moins un processeur intégré ;
  • le dispositif de mémoire DRAM ou le contrôleur d’un dispositif de mémoire DRAM comprend une pluralité de blocs de rangs de remplacement, les blocs de rangs de remplacement étant séparés les uns des autres par tout moyen empêchant un rang d’un bloc de remplacement d’agresser par martelage un rang d’un autre bloc de remplacement, les rangs d’un bloc de remplacement étant destinés à remplacer des rangs défectueux d’un seul sous-banc.
D’autres caractéristiques et avantages de l’invention ressortiront de la description détaillée de l’invention qui va suivre en référence aux figures annexées sur lesquels :
La représente une partie des étapes d’un mode de mise en œuvre du procédé de protection d’un dispositif de mémoire DRAM ;
La représente une séquence de rafraichissement préventif d’un mode de mise en œuvre du procédé de protection d’un dispositif de mémoire DRAM.
DESCRIPTION DETAILLEE DE L’INVENTION
Définition et rappels
Dans ce document on désigne par « index topologique » d’un rang l’ordre physique de ce rang à l’intérieur d’un banc DRAM. Par défaut, quand il est fait mention d’index de rang, ou plus simplement de rang, il s’agit d’index topologique de rang. Un index logique de rang se réfère à l’index de rang passé comme paramètre d’une commande ACTIVATE d’activation d’un rang, tel que définie dans les protocoles JEDEC DDR3/4/5 et similaire. En fonction de l’implémentation, un rang d’index logiquei, peut avoir cette même valeuricomme index topologique, ou une valeurjdifférente, et dans ce cas de figure, une fonction permet d’obtenirjà partir dei.
On rappelle que les rangs d’un banc de mémoire DRAM sont rafraichis périodiquement, afin de compenser la perte de charge de leurs points mémoires avec le temps. Le temps dans lequel tous les rangs d’un banc sont rafraichis est appelé fenêtre de rafraichissement. Les fenêtres de rafraichissement se suivent temporellement, la fin de la fenêtre de rafraichissementrétant suivie par le début de la fenêtre de rafraichissementr+1.
Les rangs peuvent être également être rafraichis préventivement afin de prévenir l’effet de martelage. Comme décrit par le document FR3066842A1, l’exécution de rafraichissements préventifs peut se faire dans des créneaux temporels de rafraichissement initialement prévus pour des rafraichissements périodiques, ces derniers étant par ce fait retardés. Il en résulte que les fenêtres de rafraichissement où des rafraichissements préventifs ont été insérés ont des durées supérieures aux fenêtres de rafraichissement ou seuls des rafraichissements périodiques sont réalisés, cette augmentation de la durée des fenêtres de rafraichissement ne posant pas de problème tant qu’elle reste modérée. Une alternative consiste par exemple à réserver à l’avance des créneaux temporels pour les rafraichissements préventifs, avec un taux fixe ou variable par rapport aux rafraichissements périodiques, ou par rapport au nombre d’activations de rangs réalisées.
Algorithme rapide de prévention du martelage de rang
On présente maintenant dans le détail un premier mode de mise en œuvre d’un procédé de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang. Ce procédé est mis en œuvre par au moins une logique de prévention. Le banc mémoire, comprenantRrangs, est divisé enNsous-bancs de tailles identiques, ou identiques à 1 rang près, un sous-banc comprenantSouS+1 rangs, oùSest égale à la division entière deRparN. (S=R/N).
Pour la simplicité des explications, les sous-bancs sont considérés comme possédant un même nombre de rangs. La personne du métier saura extrapoler les explications données ci-après pour les appliquer au cas où certains sous-bancs ont plus de rangs que les autres.
Composés de rangs ordonnés topologiquement, les sous-bancs sont ordonnés topologiquement entre eux et d’une manière générale un sous-bancbcontient les rangs d’index topologiquesSxbà (Sx (b+1)) – 1. On peut de la sorte désigner un rang par son index topologique de rang relatif, de la manière suivante :
  • la notation sous-banc[b][ 0 ] désigne le premier rang du sous-bancb,
  • la notation sous-banc[b][ 1 ] désigne le second rang du sous-bancb,
  • la notation sous-banc[b][ 2 ] désigne le troisième rang du sous-bancb,
  • . . .
  • la notation sous-banc[b][i] désigne le (i+1) ième rang du sous-bancb,
  • la notation sous-banc[b][S-1 ] désigne le dernier rang du sous-bancb.
La logique de prévention est associée à au moins un banc et comprend des éléments mémorisant pouvant comprendre :
  • Une variable ou compteur de rafraichissement en attente nommée NBR_REFRESH_PENDING.
  • Une structure de donnée, telle qu’une table, nommée RH_TABLE, comprenantNentrées (Nétant le nombre de sous-bancs), chaque entrée de cette table comprenant trois champs :
    • Un champ nommé FRACTION_ACC, formant un compteur d’activation et comptant de 0 à la valeur PARAM_D - 1. PARAM_D est un paramètre pouvant être constant pour une implémentation donnée et définissant un seuil d’activations du sous-banc.
    • Un champ REFRESH_ACC, pouvant prendre une valeur allant de 0 à une valeur suffisante. Ce champ définit dans le premier mode de mise en œuvre un nombre requis de rafraichissement préventif d’un sous-banc.
    • Un index courant nommé RELATIVE_INDEX, pouvant prendre une valeur allant de 0 àS-1.
A la réinitialisation du dispositif mémoire DRAM (RESET), la logique est initialisée comme suit :
  • Le compteur de rafraichissement en attente NBR_REFRESH_PENDING est mis à 0.
  • Tous les champs de toutes les entrées de la structure de donnée RH_TABLE sont mis à 0,
Dans le premier mode de mis en œuvre décrit, et en référence à la , au cours du fonctionnement normal du dispositif de mémoire DRAM et à chaque activation d’un banc qui cible un rang appartenant à un sous-banc b, la logique de prévention exécute les traitements suivants :
  • si RH_TABLE[b].FRACTION_ACC == PARAM_D-1, alors :
    • RH_TABLE[b]. FRACTION_ACC est mis à 0,
    • RH_TABLE[b]. REFRESH_ACC est incrémenté de 1,
    • NBR_REFRESH_PENDING est incrémenté de 1
  • autrement RH_TABLE[b]. FRACTION_ACC est incrémenté de 1.
Dit autrement, dans ce premier mode de mise en œuvre, à chaque activation d’un rang d’un sous-bancbde la mémoire, on exécute une étape d’incrémentation d’un nombre requis de rafraichissement préventif REFRESH_ACC en réalisant les étapes suivantes :
  • si le compteur d’activation FRACTION_ACC du sous-bancbatteint le seuil d’activations PARAM_D, on incrémente le nombre requis de rafraichissement préventif REFRESH_ACC du sous-bancb, le compteur de rafraichissement en attente NBR_REFRESH_PENDING est incrémenté et on remet à une valeur de départ le compteur d’activation FRACTION_ACC associé au sous-bancb.
  • dans le cas contraire, on incrémente le compteur d’activation FRACTION_ACC du sous-bancbcomprenant le rang activé.
De manière concourante, en tâche de fond, la logique de prévention de ce premier mode de mise en œuvre exécute une séquence de rafraichissement préventif représentée sur la . Tant que le compteur de rafraichissement en attente NBR_REFRESH_PENDING n’est pas nul (et plus généralement tant qu’il excède une valeur plancher), alors la logique de prévention insère dès que possible, dans le flot de commandes en direction du banc, un rafraichissement préventif, dont elle calcule l’index topologique comme suit :
  • La structure de donnée RH_TABLE est parcourue afin d’identifier une entréej(i.e. un sous-banc) ayant un nombre requis de rafraichissement préventif REFRESH_ACC présentant la valeur la plus élevée. Si plusieurs entrées sont à égalité, l’une d’entre elles est choisie. De la sorte, on identifie, au cours d’une étape de repérage, le sous-bancjdu dispositif de mémoire ayant un besoin de rafraichissement préventif.
  • le champ RH_TABLE[j].REFRESH_ACC est décrémenté de 1, c’est-à-dire que le nombre requis de rafraichissement préventif associé au sous-bancjest décrémenté de 1.
  • la logique décrémente le compteur de rafraichissement en attente NBR_REFRESH_PENDING.
  • L’index topologique relatif du rang du sous-bancjchoisi pour le rafraichissement préventif est la valeur de la structure de donnée RH_TABLE[j].RELATIVE_INDEX et on déclenche une opération de rafraichissement d’un rang d’index courant RELATIVE_INDEX du sous-bancjen question.
  • RH_TABLE[j].RELATIVE_INDEX est incrémenté moduloS, c’est-à-dire que l’on incrémente l’index courant RELATIVE_INDEX du sous-banc j, modulo S pour parcourir en cycle ce sous-banc.
On note que l’emploi d’un compteur de rafraichissement en attente NBR_REFRESH_PENDING tel que cela a été présenté dans ce mode particulier de mise en œuvre n’est pas indispensable. Au lieu d’être conditionnée par la non-nullité de ce compteur NBR_REFRESH_PENDING, l’exécution de la séquence de rafraichissement préventif (et notamment le repérage d’un besoin de rafraichissement préventif d’un sous-bancj) peut être réalisé inconditionnellement, sans même savoir si une entrée de la structure de données retient un nombre requis de rafraichissement préventif REFRESH_ACC non nul.
La recherche dans la structure de donnée RH_TABLE n’est pas limitée, contrairement à la solution proposée par FR3066842A1, par le temps minimum très court séparant deux activations, mais par le temps nettement plus long et flexible séparant l’insertion de deux rafraichissements préventifs.
Principe général de fonctionnement
Le rafraichissement, par la logique de l’invention, de la totalité des rangs d’un sous-banc donné forme un cycle de rafraichissement préventif de ce sous-banc. Contrairement aux fenêtres de rafraichissements, un cycle de rafraichissement préventif n’est pas associé à une notion de temps ou de délai, le temps pris par un cycle de rafraichissement préventif n’étant pas limité : si les rangs d’un sous-banc ne sont jamais activés, le cycle de rafraichissement courant de ce sous-banc n’avance pas, et donc prend un temps infini.
Chaque activation d’un rang appartenant à un sous-banc, contribue à l’avancement du cycle de rafraichissement préventif courant de ce sous-banc, ce cycle de rafraichissement balayant circulairement ce sous-banc. Le seuil d’activations PARAM_D permet d’établir un pourcentage d’avancement du cycle de rafraichissement d’un sous-banc pour chaque activation d’un rang de ce sous-banc. Ce paramètre (i.e. ce pourcentage d’avancement, aussi désigné par « coefficient d’avancement » dans la suite de cette description) est choisi de telle façon qu’un cycle de rafraichissement préventif est effectué en moins d’activations que le nombre minimal d’activations nécessaire pour endommager le contenu d’un rang par martelage.
Ainsi, si le compteur d’activation FRACTION_ACC fait 5-bit de large, les valeurs possibles pour le seuil d’activations PARAM_D vont de 1 à 32 :
  • PARAM_D == 1
    • 1 activation donne 1 rafraichissement préventif
    • coefficient de rafraichissement préventif = 100 %
  • PARAM_D == 2
    • 2 activations donnent 1 rafraichissement préventif
    • coefficient de rafraichissement préventif = 50 %
  • . . .
  • PARAM_D == 31
    • 31 activations donnent 1 rafraichissement préventif
    • coefficient de rafraichissement préventif = 3.2 %
  • PARAM_D == 32
    • 32 activations donnent 1 rafraichissement préventif
    • coefficient de rafraichissement préventif = 3.1 %
A titre d’exemple, et en considérant un banc composé de 65536 rangs divisé en 256 sous-bancs de 256 rangs chacun, la structure de données RH_TABLE a 256 entrées, une pour chaque sous-banc. Pour une valeur de martelage critique d’un rang vis à vis du rang immédiatement adjacent de 5000, un procédé conforme à l’invention ne calcule pas de valeur d’agression subit, et il n’a donc pas besoin des coefficients de martelage pour les portées supérieures à 1. Il faut néanmoins qu’en 5000 activations, les 256 rangs d’un sous banc aient été rafraichis préventivement, c’est-à-dire que le coefficient d’avancement doit être de 256 / 5000, soit 5.12 %. Une valeur du seuil d’activations PARAM_D de 19, offrant un coefficient d’avancement de 5.2 %, fournit le coefficient d’avancement le plus faible qui soit approprié.
Il devient alors impossible, avec un tel coefficient d’avancement, entre deux cycles de rafraichissement préventif, de marteler un rang suffisamment de fois pour endommager les contenus des rangs voisins, car ces rangs voisins auront été préventivement rafraichis avant d’atteindre la valeur critique de martelage. Plus un sous-banc a une taille petite, plus le coefficient d’avancement requis est faible, et donc plus la pénalité de performance (% de rafraichissement préventif par activation) est faible. Le coefficient d’avancement doit tenir compte de la latence maximale entre la découverte qu’un rafraichissement préventif est en attente et sa réalisation effective.
Gestion des Effets aux jonctions des sous-bancs
Les sous-bancs d’un banc de la DRAM peuvent être physiquement séparés par une distance telle que l’activation d’un rang situé proche d’une des deux extrémités d’un sous-banc ne crée pas de dommage par martelage sur des rangs d’un sous-banc voisin. C’est le cas notamment quand les sous-bancs sont séparés par des rangées d’amplificateurs intermédiaires de lecture (ou « row of intermediary sense amplifiers » selon la terminologie anglo-saxonne usuelle dans ce domaine). Dans ce cas, la logique décrite dans la section précédente prévient déjà correctement les effets du martelage.
Quand des effets du martelage traversent les jonctions de sous-bancs, une première solution d’incursion du cycle de rafraichissement dans les sous-bancs voisins peut être mise en œuvre. Cette solution utilise le concept de marge basse et de marge haute :
  • La marge basse d’un sous-bancb, est l’ensemble des derniers rangs du sous-bancb-1, qui peuvent être affectés par l’activation d’un des premiers rangs du sous-bancb.
  • La marge haute d’un sous-bancb, est l’ensemble des premiers rangs du sous-bancb+1, qui peuvent être affectés par l’activation d’un des derniers rangs du sous-bancb.
Un cycle complet de rafraichissement d’un sous-banc est alors étendu de telle sorte qu’il comprenne les marges haute et basse de ce sous-banc, rafraichissant par le fait des rangs appartenant aux sous-bancs précédant et suivant. Si nécessaire le champ mémorisant l’index courant RELATIVE_INDEX est élargi d’un bit afin d’avoir une dynamique suffisante pour balayer les marges en plus du sous-banc.
Une autre solution au problème de martelage aux jonctions de sous-bancs vise à incrémenter le nombre requis de rafraichissement préventif REFRESH_ACC associé à un sous-banc voisin. Cette solution peut être mise en œuvre par application des règles suivantes :
  • lors d’une activation d’un des premiers rangs du sous-bancb, le champ RH_TABLE[b-1 ].REFRESH_ACC est incrémenté de 1.
  • lors d’une activation d’un des derniers rangs du sous-bancb, le champ RH_TABLE[b+1 ].REFRESH_ACC est incrémenté de 1.
Dit autrement, lorsque le rang activé du sous-banc b est l’un des premiers rangs du sous bancbon incrémente le nombre requis de rafraichissement préventif REFRESH_ACC associé au sous-banc du rang activé et également au sous-banc inférieurb-1du rang activé. Similairement, lorsque le rang activé du sous-banc b est l’un des derniers rangs du sous bancbon incrémente le nombre requis de rafraichissement préventif REFRESH_ACC associé au sous-banc du rang activé et également au sous-banc supérieurb+1du rang activé. Ces premiers/derniers rangs peut, à titre d’exemple, concerner les 2, 3 ou 5 premiers/derniers rangs du sous bancb.
D’une manière plus générale encore, cette approche peut être intégrée au premier mode de mise en œuvre décrit du procédé de mise à jour lors d’une activation de rang : lors d’une activation, il faut incrémenter le nombre de rafraichissements préventifs REFRESH_ACC de tous les sous-bancs qui contiennent une ligne subissant une influence par martelage de cette activation.
Ordre de balayage des index dans un sous-banc
Indépendamment du fait qu’un cycle de rafraichissement inclue des marges ou pas, l’ordre de balayage des rangs n’a pas d’importance, du moment qu’il est fixe pour un sous banc donné. Pour la simplicité des explications, une incrémentation, moduloS, a été assumée, mais tout ordre de balayage convient, du moment que chaque rang du sous-banc considéré, ainsi que les marges éventuelles, soit atteint par le balayage. On peut notamment prévoir, de manière très avantageuse de sur-rafraichir les rangs, identifiés comme plus sensibles au martelage de rang, du dispositif mémoire DRAM.
Les cycles de rafraichissements peuvent ainsi être tels que les rangs identifiés, lors des tests de fabrication, comme plus particulièrement sensibles au martelage, peuvent être configurés de telle façon que les cycles de rafraichissement parcourant les sous-bancs auxquels ils appartiennent les rafraichiront plusieurs fois. Les multiples rafraichissements d’un rang sensible donné sont avantageusement répartis régulièrement dans le cycle de rafraichissement correspondant.
Les rangs identifiés comme robustes quant à eux peuvent n’être rafraichis qu’une fois lors d’un cycle de rafraichissement.
Ainsi, et à titre d’exemple, si un rang sensibleSest rafraichi 2 fois dans un cycle de rafraichissement, ces deux rafraichissements étant répartis de façon sensiblement équilibrée dans le cycle de rafraichissement correspondant, alors le rangSest protégé contre une valeur de martelage critique deux fois plus faible que celle des autres rangs du sous-banc correspondant.
A utre s mode s de mise en œuvre du procédé
Des variations au premier mode de mise en œuvre du procédé peuvent exploiter des représentations alternatives du pourcentage d’avancement du cycle de rafraichissement par activation, assurant qu’un cycle complet de rafraichissement préventif d’un sous-banc soit opéré avant que le nombre d’activations de rangs dans le sous-banc n’excède la valeur critique de martelage.
Ainsi, et selon un autre mode de mise en œuvre du procédé, dit « par représentation fractionnelle équivalent », on peut se passer du compteur d’activation FRACTION_ACC. Dans un tel mode, le champ REFRESH_ACC de la structure de données RH_TABLE est élargi de la largeur qu’avait le compteur d’activation FRACTION_ACC.
Dans un tel cas, le nombre requis de rafraichissement préventif est donné par la valeur du ratio REFRESH_ACC / PARAM_D et le procédé comprend, à chaque activation, l’incrémentation systématique d’un pas de 1 du champ REFRESH_ACC. Quand un rafraichissement préventif est effectué alors le champ REFRESH_ACC correspondant est décrémenté du seuil d’activations PARAM_D au lieu d’être décrémenté de 1 comme c’est le cas dans le premier mode de mise en œuvre.
Cette représentation présente l’inconvénient de rendre plus difficile la mise à jour du compteur de rafraichissement en attente NBR_REFRESH_PENDING, mais comme déjà indiqué, cette variable n’est pas indispensable à la mise en œuvre d’un procédé conforme à l’invention.
Selon encore un autre mode de réalisation du procédé, dit par « représentation fractionnelle libre », le coefficient d’avancement est incrémenté par le ratio PARAM_N / PARAM_D où PARAM_N est un paramètre qui peut être constant pour une implémentation donnée.
Dans ce mode de mise en œuvre, lors d’une activation, le champ REFRESH_ACC est incrémenté de PARAM_N, et quand un rafraichissement préventif est effectué alors le champ REFRESH_ACC correspondant est décrémenté de PARAM_D. le nombre requis de rafraichissement préventif est donné dans ce mode de mise en œuvre par la valeur du ratio REFRESH_ACC / PARAM_D.
Dans les modes de mise en œuvre, le nombre requis de rafraichissement préventif (REFRESH_ACC ou REFRESH_ACC/PARAM_D selon les modes de mises en œuvre) d’un sous-bancbest donc incrémenté d’un incrément déterminé égal à 1 lorsque le nombre d’activations atteint le seuil PARAM_D, ou égal à PARAM_N, à chaque activation d’un rang du sous-bancb. Ce nombre est décrémenté de 1 ou de PARAM_D, selon les modes de mise en œuvre, à la réalisation d’un rafraichissement préventif.
Lorsque le martelage est susceptible de traverser les jonctions de sous-bancs, le procédé peut être adapté à l’utilisation du paramètre PARAM_N :
  • lors d’une activation d’un des premiers rangs du sous-bancb, le champ RH_TABLE[b-1].REFRESH_ACC est incrémenté d’une valeur inférieure ou égale à PARAM_N.
  • lors d’une activation d’un des derniers rangs du sous-bancb, le champ RH_TABLE[b+1].REFRESH_ACC est incrémenté d’une valeur inférieure ou égale à PARAM_N.
La valeur d’incrémentation est choisie inférieure à PARAM_N si la puissance de l’effet du martelage à travers une jonction de sous-bancs est plus faible qu’entre deux rangs voisins d’un même sous-banc.
Simplification de la recherche dans la structure de données RH_TABLE pour repér er un besoin de rafraichissement préventif d’un sous-banc
La personne du métier comprendra que, tout en restant dans le cadre de la présente invention, la séquence de rafraichissement préventif s’exécutant en tâche de fond peut être simplifiée. A titre d’exemple, au lieu de rechercher dans la structure de donnée RH_TABLE l’entrée ayant un champ REFRESH_ACC avec la valeur la plus élevée (représentatif du nombre requis de rafraichissement préventif), on pourra choisir dans cette structure la première entrée ayant un champ REFRESH_ACC présentant une valeur exprimant le fait qu’au moins un rafraichissement est en attente (par exemple un nombre supérieur ou égal à 1 dans le cas du premier mode de mise en œuvre du procédé).
Il est à noter que le fait d’utiliser un algorithme de recherche simplifié peut avoir pour conséquence la nécessité de prévoir des marges accrues dans le calcul des paramètres du procédé, notamment dans le cas où l’obtention d’un créneau temporel pour effectuer un rafraichissement préventif souffre d’une latence significative. La seule contrainte que doit préférentiellement respecter la séquence de rafraichissement préventif s’exécutant en tâche de fond est d’éviter une famine : une entrée de la structure de données RH_TABLE ayant son champ de nombre requis de rafraichissement préventif REFRESH_ACC non nul, ne doit pas être déniée la possibilité d’avancer le cycle de rafraichissement préventif correspondant pendant un temps indéfini.
Usage par défaut d’un créneau temporel de rafraichissement préventif
Si un créneau temporel pour faire un rafraichissement préventif est disponible, et ne peut être exploité que pour ce genre de rafraichissement, et si une recherche dans la structure de donnée RH_TABLE ne fournit pas de candidat pour un rafraichissement ciblé, alors la meilleure politique par défaut consiste à choisir d’avancer le cycle de rafraichissement du sous-banc donc l’entrée dans la structure RH_TABLE à son champ REFRESH_ACC (ou le champ FRACTION_ACC) le plus grand, donc le plus proche du seuil déterminant le fait qu’un rafraichissement préventif soit en attente.
L’exécution de ce rafraichissement préventif, au lieu de décrémenter REFRESH_ACC (de 1 ou de PARAM_D), met le champ REFRESH_ACC (ou le champ FRACTION_ACC) à 0, évitant ainsi à REFRESH_ACC d’acquérir une valeur négative ou incohérente.
Insertion des rafraichissement s préventifs
La logique de prévention du martelage insère des rafraichissements préventifs dans le trafic de commande à destination du banc. Ceci peut être fait, par exemple, des manières suivantes :
  • en empruntant des créneaux temporels de rafraichissements périodiques, les rafraichissements périodiques étant retardés d’un délai suffisamment court pour que cela ne pose pas de problèmes,
  • en ayant dans le protocole mémoire, un quota suffisant de créneaux temporels pour des rafraichissements préventifs,
  • en indiquant au contrôleur mémoire que celui-ci doit générer un ou plusieurs créneaux temporels pour des rafraichissements préventifs, dont la logique de prévention fournira les index topologiques de rang.
La personne du métier comprendra que la résolution du problème d’insertion du trafic de rafraichissement préventif dépend également de la place (contrôleur de la mémoire DRAM ou DRAM elle-même) où la logique ici décrite est utilisée. Il est à noter que si la logique est placée dans une mémoire DRAM comprenant un ou plusieurs processeurs intégrés, le procédé d’insertion décrit par le document FR3066842A1 peut être utilisé. D’autres procédés, nécessitant ou pas une coordination avec le contrôleur mémoire, peuvent être aussi utilisés.
Logique de prévention commune à plusieurs bancs
Au lieu d’associer une logique de prévention de ROW Hammer à chaque banc, une telle logique peut être associée à plusieurs bancs. Par exemple si une même logique est associée à deux bancs B1 et B2, alors quand un rang est activé dans un sous bancbde B1 ou de B2, l’entrée de la table RH_TABLE[b] est mise à jour comme expliqué précédemment. Quand la logique détecte qu’un rafraichissement préventif doit être effectué pour le rangR, alors les rangsRdes bancs B1 et B2 sont rafraichis préventivement.
Remplacement de rangs & martelage
Lors de la fabrication d’une mémoire DRAM, un rang détecté comme défectueux peut être remplacé par un rang de rechange (« spare ROW » en anglais), un ensemble de rangs de remplacement étant disponible pour la réparation des bancs mémoires. Ces remplacements se font par la programmation, électrique ou laser, de fusibles de configuration de réparation. La topologie du banc mémoire est de ce fait changée. Par exemple le rang d’index topologique 30 et le rang d’index topologique 2030 d’un même banc mémoire sont remplacés par les rangs de remplacement 0 et 1 respectivement, ces deux derniers étant physiquement adjacents.
La logique de prévention ne va pas naturellement envisager de possibilité de martelage entre les rangs 30 et 2030 car ils sont trop éloignés l’un de l’autre, appartenant à des sous-bancs qui ne sont même pas voisins. Mais en fait ils peuvent s’affecter via un effet martelage, car les rangs les remplaçant sont en fait adjacents.
Pour résoudre une telle situation, on regroupe les rangs de remplacement en blocs de remplacement, ces derniers étant configurés pour respecter les principes suivants :
  • A l’intérieur d’un bloc de remplacement, les rangs sont séparés par la distance séparant habituellement deux rangs, et donc ils peuvent causer du martelage entre eux.
  • Les blocs de remplacement sont séparés les uns des autres par des blindages électriques ou tout autre moyen empêchant un rang d’un bloc de remplacement de causer du ROW Hammer sur un rang d’un autre bloc de remplacement. Par exemple ces blindages peuvent être réalisés par des rangs, non utilisés comme mémoire, dont les lignes de sélections sont maintenues à une valeur électrique constante.
  • Les rangs d’un bloc de remplacement ne peuvent servir qu’à remplacer des rangs défectueux que d’un seul sous-banc, et plusieurs blocs de remplacement peuvent par contre servir à remplacer des rangs défectueux d’un seul sous-banc.
Le respect de ces principes assure que la justesse d’un procédé conforme à l’invention n’est pas affectée par le remplacement de rang dans les sous-bancs.
Bien entendu l'invention n'est pas limitée aux modes de mise en œuvre décrits et on peut y apporter des variantes de réalisation sans sortir du cadre de l'invention tel que défini par les revendications.
Ainsi, on pourra par exemple envisager :
  • D’exprimer le coefficient d’avancement du cycle de rafraichissement préventif par d’autres méthodes et représentations mathématiques ;
  • D’exprimer un coefficient d’avancement variable durant un cycle de rafraichissement préventif, dont la moyenne des valeurs sur un cycle de rafraichissement est égale à la valeur qui aurait été utilisée pour un ratio constant.
  • D’avancer le cycle de rafraichissement préventif par groupe de rafraichissements préventifs au lieu de l’avancer rafraichissement préventif par rafraichissement préventif ;
  • D’avoir un coefficient d’avancement du cycle de rafraichissement préventif fluctuant en fonction de la fréquence des activations ;
  • D’avoir un coefficient d’avancement du cycle de rafraichissement préventif fluctuant en fonction de la température ou de la tension d’alimentation, ces paramètres influant sur la puissance du phénomène de ROW Hammer ;
  • D’avoir un coefficient d’avancement du cycle de rafraichissement préventif fluctuant en fonction des caractéristiques variables du procédé de fabrication (par exemple vitesse des transistors ou bien capacités, fuites électriques, résistances, inductances des différents constituants du circuit) ;
  • D’avoir un coefficient d’avancement du cycle de rafraichissement d’avancement préventif adapté à la sensibilité particulière des rangs composant les sous-bancs : lors des tests de fabrications, une telle sensibilité peut être déterminée, et chaque sous-banc peut être associé à un coefficient d’avancement qui lui est propre. Les coefficients d’avancement spécifique à chaque sous-banc étant enregistrés dans des fusibles laser, électriques ou autres, ou bien chargé lors de l’initialisation depuis une mémoire non volatile ou tout autre moyen similaire.

Claims (18)

  1. Procédé de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang, le dispositif de mémoire comprenant une pluralité de bancs composés de rangs mémoire, le procédé étant mise en œuvre par au moins une logique de prévention configurée pour associer respectivement des sections contiguës de rangs d’un banc à des sous-bancs et pour exécuter, à chaque activation d’un rang d’un sous-banc (b) de la mémoire, une étape d’incrémentation d’un nombre requis de rafraichissement préventif (REFRESH_ACC ; REFRESH_ACC/PARAM_D) du sous-banc (b) à l’aide d’un seuil d’activations (PARAM_D) du sous-banc (b);
    la logique de prévention étant également configurée pour exécuter une séquence de rafraichissement préventif comprenant :
    - une étape de repérage d’un besoin de rafraichissement préventif d’un sous-banc (j) du dispositif de mémoire ;
    - une étape de déclenchement d’une opération de rafraichissement d’un rang d’index courant (RELATIVE_INDEX) du sous-banc (j) en question ;
    - une étape d’incrémentation de l’index courant (RELATIVE_INDEX) du sous-banc (j) ;
    l’opération de rafraichissement formant une étape d’un cycle de rafraichissement préventif conduisant à rafraichir au moins les rangs du sous-banc (j), et le seuil d’activations (PARAM_D) du sous-banc (j) étant choisi pour qu’un cycle complet de rafraichissement préventif de ce sous-banc (j) soit opéré avant que le nombre d’activation de rangs dans le sous-banc (j) n’excède une valeur de martelage critique.
  2. Procédé de protection selon la revendication précédente dans lequel l’étape de repérage d’un besoin de rafraichissement préventif d’un sous-banc (j) comprend l’identification d’un sous-banc (j) dont le nombre requis de rafraichissement préventif (REFRESH_ACC ; REFRESH_ACC/PARAM_D) est supérieur ou égale à 1, et la décrémentation de ce nombre d’un décrément prédéfini.
  3. Procédé de protection selon la revendication précédente dans lequel l’étape d’incrémentation d’un nombre requis de rafraichissement préventif (REFRESH_ACC) comprend :
    - une étape d’incrémentation d’un compteur d’activation (FRACTION_ACC) du sous-banc (b) comprenant le rang activé ;
    - l’incrémentation du nombre requis de rafraichissement préventif (REFRESH_ACC) du sous-banc (b), si le compteur d’activation (FRACTION_ACC) du sous-banc (b) atteint le seuil d’activations (PARAM_D) ;
    - la remise à une valeur de départ du compteur d’activation (FRACTION_ACC) associé au sous-banc (b) quand celui-ci atteint le seuil d’activation.
  4. Procédé de protection selon la revendication 2 dans lequel le nombre requis de rafraichissement préventif (REFRESH_ACC/PARAM_D) du sous-banc (b) est incrémenté d’un incrément déterminé inférieur ou égal à 1 (PARAM_N/PARAM_D) à chaque activation d’un rang du sous-banc (b).
  5. Procédé de protection selon l’une des revendications 3 et 4 dans lequel le décrément prédéfini est 1.
  6. Procédé de protection selon l’une des revendications 2 à 5 dans lequel l’étape de repérage d’un besoin de rafraichissement préventif du sous-banc (j) comprend l’identification d’un sous-banc (j) dont le nombre requis de rafraichissement préventif (REFRESH_ACC) est maximum.
  7. Procédé de protection selon l’une des revendications précédentes dans lequel un cycle de rafraichissement préventif conduit également à rafraichir les rangs d’une marge basse et/ou d’une marge haute du sous-banc (j).
  8. Procédé de protection selon l’une des revendications 1 à 6 dans lequel le rang activé du sous-banc (b) est l’un des premiers rangs, ou respectivement l’un des derniers rangs, du sous-banc (b) et l’étape d’incrémentation comprend également l’incrémentation du nombre requis de rafraichissement préventif (REFRESH_ACC ; REFRESH_ACC/PARAM_D) associé au sous-banc inférieur (b-1) au rang activé, ou respectivement l’incrémentation du nombre requis de rafraichissement préventif (REFRESH_ACC ; REFRESH_ACC/PARAM_D) associé au sous-banc supérieur (b+1) au rang activé.
  9. Procédé de protection selon la revendication 1 dans lequel l’étape d’incrémentation du nombre requis de rafraichissement préventif comprend l’incrémentation d’un compteur de rafraichissement en attente (NBR_REFRESH_PENDING), la séquence de rafraichissement préventif comprend une étape de décrémentation du compteur de rafraichissement en attente (NBR_REFRESH_PENDING), et la séquence de rafraichissement préventif est exécutée répétitivement tant que le compteur de rafraichissement en attente (NBR_REFRESH_PENDING) excède une valeur plancher.
  10. Procédé de protection selon l’une des revendications précédentes dans lequel le seuil d’activations (PARAM_D) d’un sous-banc est variable avec la température, la tension d’alimentation, la fréquence des activations d’un sous-banc, les caractéristiques de la mémoire.
  11. Procédé de protection selon l’une des revendications précédentes dans lequel le seuil d’activations (PARAM_D) est distinct d’un sous-banc à un autre.
  12. Procédé de protection selon l’une des revendications précédentes dans lequel l’étape de déclenchement d’une opération de rafraichissement comprend l’insertion du rafraichissement préventif dans un trafic de commande à destination du banc de la mémoire dans lequel réside le sous-banc (j).
  13. Procédé de protection selon l’une des revendications précédentes dans lequel le cycle complet de rafraichissement préventif du sous-banc (i) conduit à rafraichir une pluralité de fois certains rangs du sous-banc (i).
  14. Procédé de protection selon l’une des revendications précédentes dans lequel le seuil d’activations (PARAM_D) définit un coefficient d’avancement variable (1/ PARAM_D ; PARAM_N/PARAM_D) durant un cycle complet de rafraichissement préventif d’un sous-banc (j).
  15. Procédé de protection selon l’une des revendications précédentes dans lequel la logique de prévention est associée à une pluralité de bancs.
  16. Dispositif de mémoire DRAM ou contrôleur d’un dispositif de mémoire DRAM comprenant une logique de prévention de l’effet de martelage de rang configurée pour mettre en œuvre un procédé de protection selon l’une des revendication 1 à 15.
  17. Dispositif de mémoire DRAM ou contrôleur d’un dispositif de mémoire DRAM selon la revendication précédente dans lequel la mémoire DRAM comprend au moins un processeur intégré.
  18. Dispositif de mémoire DRAM ou contrôleur d’un dispositif de mémoire DRAM selon l’une des deux revendications précédentes comprenant une pluralité de blocs de rangs de remplacement, les blocs de rangs de remplacement étant séparés les uns des autres par tout moyen empêchant un rang d’un bloc de remplacement d’agresser par martelage un rang d’un autre bloc de remplacement, les rangs d’un bloc de remplacement étant destinés à remplacer des rangs défectueux d’un seul sous-banc.
FR2006541A 2020-06-23 2020-06-23 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang Active FR3111731B1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR2006541A FR3111731B1 (fr) 2020-06-23 2020-06-23 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US16/984,212 US10885966B1 (en) 2020-06-23 2020-08-04 Method and circuit for protecting a DRAM memory device from the row hammer effect
FR2008742A FR3111730B1 (fr) 2020-06-23 2020-08-27 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US17/098,044 US11361811B2 (en) 2020-06-23 2020-11-13 Method and circuit for protecting a DRAM memory device from the row hammer effect
KR1020237002647A KR20230026496A (ko) 2020-06-23 2021-05-31 로우 해머 효과로부터 dram 메모리 소자를 보호하는 방법 및 회로
CN202180044218.5A CN116018645A (zh) 2020-06-23 2021-05-31 用于保护dram存储器装置免受行锤效应的方法和电路
PCT/EP2021/064551 WO2021259593A1 (fr) 2020-06-23 2021-05-31 Procédé et circuit de protection d'un dispositif de mémoire dram contre l'effet d'attaques répétées

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2006541A FR3111731B1 (fr) 2020-06-23 2020-06-23 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
FR2006541 2020-06-23

Publications (2)

Publication Number Publication Date
FR3111731A1 true FR3111731A1 (fr) 2021-12-24
FR3111731B1 FR3111731B1 (fr) 2023-01-06

Family

ID=74045279

Family Applications (2)

Application Number Title Priority Date Filing Date
FR2006541A Active FR3111731B1 (fr) 2020-06-23 2020-06-23 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
FR2008742A Active FR3111730B1 (fr) 2020-06-23 2020-08-27 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR2008742A Active FR3111730B1 (fr) 2020-06-23 2020-08-27 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang

Country Status (2)

Country Link
US (1) US10885966B1 (fr)
FR (2) FR3111731B1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11361811B2 (en) * 2020-06-23 2022-06-14 Upmem Method and circuit for protecting a DRAM memory device from the row hammer effect
US11809743B2 (en) * 2020-09-21 2023-11-07 Advanced Micro Devices, Inc. Refresh management list for DRAM
US11755235B2 (en) * 2020-11-13 2023-09-12 Ciena Corporation Increasing random access bandwidth of a DDR memory in a counter application
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
FR3121261B1 (fr) * 2021-03-29 2024-03-08 Upmem dispositif mémoire DRAM configuré pour permettre une gestion d’un effet de martelage de rang d’une portée p supérieure ou égale à 2
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
KR20230051873A (ko) 2021-10-12 2023-04-19 삼성전자주식회사 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈
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
CN117912512A (zh) * 2022-10-12 2024-04-19 长鑫存储技术有限公司 控制电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140095780A1 (en) * 2012-09-28 2014-04-03 Kuljit S. Bains Distributed row hammer tracking
US20180342283A1 (en) * 2017-05-24 2018-11-29 Samsung Electronics Co., Ltd. Memory device performing care operation for disturbed row and operating method thereof
FR3066842A1 (fr) 2017-05-24 2018-11-30 Upmem Logique de correction de row hammer pour dram avec processeur integre
US20200090729A1 (en) * 2018-09-17 2020-03-19 Samsung Electronics Co., Ltd. Memory module including register clock driver detecting address frequently accessed

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002216471A (ja) * 2001-01-17 2002-08-02 Mitsubishi Electric Corp 半導体記憶装置
US20100195393A1 (en) * 2009-01-30 2010-08-05 Unity Semiconductor Corporation Data storage system with refresh in place
KR102086460B1 (ko) * 2013-06-28 2020-03-10 에스케이하이닉스 주식회사 반도체 장치 및 그의 리프레쉬 방법
US9690505B2 (en) * 2013-09-27 2017-06-27 Hewlett Packard Enterprise Development Lp Refresh row address
KR102399475B1 (ko) * 2015-12-28 2022-05-18 삼성전자주식회사 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치
US10410710B2 (en) * 2017-12-27 2019-09-10 Micron Technology, Inc. Systems and methods for performing row hammer refresh operations in redundant memory
KR102358563B1 (ko) * 2018-05-09 2022-02-04 삼성전자주식회사 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
EP3591565A1 (fr) * 2018-07-04 2020-01-08 Koninklijke Philips N.V. Dispositif de calcul ayant une résistance accrue contre des attaques rowhammer
WO2020076986A1 (fr) 2018-10-09 2020-04-16 Micron Technology, Inc. Procédés pour atténuation d'attaques répétées et dispositifs de mémoire et systèmes les utilisant

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140095780A1 (en) * 2012-09-28 2014-04-03 Kuljit S. Bains Distributed row hammer tracking
US20180342283A1 (en) * 2017-05-24 2018-11-29 Samsung Electronics Co., Ltd. Memory device performing care operation for disturbed row and operating method thereof
FR3066842A1 (fr) 2017-05-24 2018-11-30 Upmem Logique de correction de row hammer pour dram avec processeur integre
US20200090729A1 (en) * 2018-09-17 2020-03-19 Samsung Electronics Co., Ltd. Memory module including register clock driver detecting address frequently accessed

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KIM DAE-HYUN ET AL: "Architectural Support for Mitigating Row Hammering in DRAM Memories", IEEE COMPUTER ARCHITECTURE LETTERS, IEEE, US, vol. 14, no. 1, 1 January 2015 (2015-01-01), pages 9 - 12, XP011585141, ISSN: 1556-6056, [retrieved on 20150619], DOI: 10.1109/LCA.2014.2332177 *
SEYEDZADEH SEYED MOHAMMAD ET AL: "Counter-Based Tree Structure for Row Hammering Mitigation in DRAM", IEEE COMPUTER ARCHITECTURE LETTERS, IEEE, US, vol. 16, no. 1, 1 January 2017 (2017-01-01), pages 18 - 21, XP011653942, ISSN: 1556-6056, [retrieved on 20170616], DOI: 10.1109/LCA.2016.2614497 *

Also Published As

Publication number Publication date
FR3111731B1 (fr) 2023-01-06
FR3111730A1 (fr) 2021-12-24
FR3111730B1 (fr) 2023-06-16
US10885966B1 (en) 2021-01-05

Similar Documents

Publication Publication Date Title
FR3111731A1 (fr) Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US10790005B1 (en) Techniques for reducing row hammer refresh
FR3066842B1 (fr) Logique de correction de row hammer pour dram avec processeur integre
US9997228B2 (en) Refresh control device with plurality of oscillator circuits
TWI525436B (zh) 回應於資料之存取以執行記憶體裝置更新之技術
US7894272B2 (en) Multi-level memory cell utilizing measurement time delay as the characteristic parameter for level definition
US7567473B2 (en) Multi-level memory cell utilizing measurement time delay as the characteristic parameter for level definition
JP6874081B2 (ja) クロスバーアレイにおける漏れ電流の補償
US20090073785A1 (en) Multi-level memory cell utilizing measurement time delay as the characteristic parameter for level definition
KR102434161B1 (ko) 차등 메모리 스택 저항을 갖는 메모리 어레이
US7602631B2 (en) Multi-level memory cell utilizing measurement time delay as the characteristic parameter for level definition
US11361811B2 (en) Method and circuit for protecting a DRAM memory device from the row hammer effect
EP3182292A1 (fr) Procédé de prédiction d'une donnée a précharger dans une mémoire cache
EP0516516B1 (fr) Mémoire avec cellule mémoire EEPROM à effet capacitif et procédé de lecture d'une telle cellule mémoire
FR3043488A1 (fr)
EP3080815B1 (fr) Système et procédé de gestion de l'usure d'une mémoire électronique
JP2017059285A (ja) 半導体記憶装置及びその制御方法
EP3382709B1 (fr) Cellule mémoire sram
WO2022207999A1 (fr) Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang
FR2955195A1 (fr) Dispositif de comparaison de donnees dans une memoire adressable par contenu sur seoi
JP2013242944A (ja) 半導体記憶装置
US10354713B2 (en) DRAM and method for determining binary logic using a test voltage level
EP0013523B1 (fr) Procédé d'inscription d'un caractère témoin dans une mémoire à stockage de charges électriques et dispositif obtenu par ce procédé
TW201928965A (zh) 動態隨機存取記憶體及其操作方法
WO2009040204A1 (fr) Procede de generation de masques dans un objet communiquant et objet communiquant correspondant

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20211224

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4