Brevet FR3121262A1 — publié le 20220930

L’invention porte sur un procédé de protection d’un dispositif mémoire (1) de l’effet de martelage de rang. Le dispositif mémoire (1) comprenant une unité DRAM (U) formée d’une pluralité de matrices de points mémoire (MAT1-MATN) subdivisées en une pluralité de blocs mémoire (B1-BM). Le dispositif mémoire (1) comprend des compteurs d’activation (CTR1-CTRM) respectivement associés aux blocs mémoire (B1-BM). Le procédé l’exécution, à chaque activation d’un rang d’un bloc donné (Bi), d’une étape d’incrémentation du compteur d’activation (CTRi) associé au bloc donné (Bi) ; et l’initiation du rafraichissement préventif de tous les rangs du bloc donné (Bi), lorsque le compteur d’activation (CTRi) de ce bloc donné (Bi) excède une valeur seuil (Si). Le procédé de protection comprenant également une au moins des opérations visant à: inclure, dans le rafraichissement préventif, au moins une partie des rangs d’au moins un bloc directement adjacent (Bi+1, Bi-1) au bloc donné (Bi) ; incrémenter, lors de l’activation du rang ou de certains rangs du bloc donné (Bi), le compteur d’activation (CTRi-1, CTRi+1) d’au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc donné (Bi) et initier le rafraichissement préventif de tous les rangs du bloc adjacent (Bi-1, Bi+1), lorsque le compteur d’activation (CTRi-1, CTRi+1) associé à ce bloc adjacent (Bi-1, Bi+1) excède une valeur seuil (Si-1, Si+1). Figure à publier avec l’abrégé : Aucune Dispositif mémoire et procédé de protection d’un dispositif mémoire de l’effet de martelage d’un 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 ». Un martèlement de portée p signifie qu’un rang agresseur d’indice topologique i, est susceptible d’affecter des rangs victimes compris entre les indices topologiques i -p et i +p. Plus un rang victime est topologiquement éloigné du rang agresseur (c’est-à-dire que plus l’indice du rang victime est différent de l’indice du rang agresseur), moins cet impact sera important. Cette portée est dépendante de nombreux facteurs, notamment de la finesse de gravure de la mémoire DRAM. Elle peut être estimée ou mesurée pour un type de mémoire DRAM donné. ARRIERE PLAN TECHNOLOGIQUE DE L’INVENTION On rappelle que la mémoire DRAM d’un système informatique conventionnel est usuellement formée de barrettes (par exemple au format DIMM) de puces DRAM. Chaque barrette est subdivisée en une pluralité de rangées (« rank ») formée chacune d’une partie des puces DRAM. Chaque rangée est elle-même subdivisée en bancs logiques s’étendant sur les puces DRAM de cette rangée. La portion d’un banc d’une puce DRAM incorpore une pluralité de matrices (encore désignés « mat ») de points mémoire. Cette matrice forme une organisation matérielle élémentaire des points mémoire d’une puce DRAM, et chaque matrice a une certaine indépendance vis-à-vis des autres et est notamment isolée du point de vue de l’effet de martelage de rang des autres matrices de cette puce, notamment par des circuits de décodage de rangs et de colonne, et par des circuits d’amplification (« sense amplifier »). La matrice est quant à elle formée de rangs topologiquement contigus de points mémoires, généralement plusieurs centaines de rangs par matrice. On sait que la mémoire DRAM doit être rafraichie, c’est-à-dire que les rangs qui la composent doivent être lus et réécrits périodiquement sans modifications, dans le but de prévenir la perte d’informations. Ces opérations de rafraichissement des rangs sont usuellement désignées « rafraichissements périodiques », et sont conduites sous la forme de cycles conduisant à rafraichir tous les rangs de la mémoire. Le document US9214216 propose un procédé de protection d’une mémoire DRAM contre l’effet de martelage de rang. Ce procédé consiste à compter les accès aux matrices de points mémoire par l’intermédiaire d’une pluralité de compteurs respectivement associés à ces matrices. Lorsqu’un compteur associé à une des matrices de points mémoire excède une valeur seuil, cette matrice est entièrement rafraichie préventivement (c’est-à-dire l’ensemble de ses rangs) afin d’éviter l’occurrence d’une erreur par martelage. Ce procédé repose sur le fait que les rangs victimes sont nécessairement confinés à la matrice de points mémoire du rang agresseur, car ces matrices sont physiquement isolées les uns des autres : un rang agresseur ne peut faire de rangs victimes en dehors de sa propre matrice, même lorsque la portée du martèlement est importante. Cette solution est toutefois insatisfaisante, car elle dépend de la propriété des matrices d’être physiquement et électriquement isolées les unes des autres du point de vue de l’effet de martelage de rang. Or la taille des matrices peut s’avérer trop grande pour permettre une gestion optimale de la prévention de l’effet de martelage de rang. OBJET DE L’INVENTION Un but de l’invention est de proposer une solution permettant d’améliorer cet état de la technique. Plus précisément, un but de l’invention est de fournir un procédé de protection d’un dispositif de mémoire DRAM de l’effet de martelage de rang qui ne dépende pas de l’immunité des blocs entre eux, et qui permette une prévention de l’effet de martelage de rang plus efficace. 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 mémoire de l’effet de martelage de rang, le dispositif mémoire comprenant une unité DRAM formée d’une pluralité de matrices de points mémoire subdivisées en une pluralité de blocs mémoire composés de rangs mémoire contigus, et le dispositif mémoire comprenant également des compteurs d’activation respectivement associés aux blocs mémoire. Le procédé comprend les opérations suivantes : exécuter, à chaque activation d’un rang d’un bloc donné, une étape d’incrémentation du compteur d’activation associé au bloc donné ; initier le rafraichissement préventif de tous les rangs du bloc donné, lorsque le compteur d’activation de ce bloc donné excède une valeur seuil et réinitialiser le compteur associé au bloc donné. Le procédé comprend également une au moins des opérations visant à : inclure, dans le rafraichissement préventif, au moins une partie des rangs d’au moins un bloc directement adjacent au bloc donné, et/ou incrémenter, lors de l’activation du rang ou de certains rangs du bloc donné, le compteur d’activation d’au moins un bloc directement adjacent au bloc donné et initier le rafraichissement préventif de tous les rangs du bloc adjacent, lorsque le compteur d’activation associé à ce bloc adjacent excède une valeur seuil (Si-1, Si+1). D’une façon générale, dans ces explications, toute incrémentation d’un compteur d’activation va déclencher un rafraichissement du bloc associé à ce compteur si ce compteur atteint la valeur seuil et ceci indépendamment de la cause de cette incrémentation : que cela soit une incrémentation du fait d’une activation ciblant ce bloc précisément, ou que cela soit une incrémentation du fait d’une activation ciblant un bloc directement adjacent ou indirectement adjacent et dans la portée de martelage. Le déclenchement du rafraichissement d’un bloc donné suite à l’incrémentation du compteur associé, déclenche la réinitialisation de ce compteur, typiquement sa remise à zéro. Il est à noter que le fait qu’un autre bloc que ce bloc donné soit entièrement ou partiellement rafraichi parce qu’inclus dans le rafraichissement préventif associé au bloc donné, n’entraine pas la remise à zéro du compteur associé à cet autre bloc, seul le compteur du bloc donné étant remis à 0. Selon d’autres caractéristiques avantageuses et non limitatives de l’invention, prises seules ou selon toute combinaison techniquement réalisable : le rafraichissement préventif inclut tous les rangs du au moins un bloc directement adjacent au bloc donné, lorsque le compteur d’activation de ce bloc donné excède une valeur seuil ; le rafraichissement préventif inclut certains au moins des rangs d’une pluralité de blocs adjacents au bloc mémoire donné ; le rafraichissement préventif inclut, en plus des rangs du bloc donné, uniquement un sous-ensemble de rangs topologiquement contigus au bloc donné, lorsque le compteur d’activation de ce bloc donné excède une valeur seuil ; l’incrémentation du compteur d’activation du au moins un bloc directement adjacent au bloc donné est réalisée lors de l’activation de n’importe quel rang du bloc donné ; l’incrémentation du compteur d’activation du au moins un bloc directement adjacent au bloc donné est réalisée uniquement lors de l’activation d’un sous-ensemble de rangs formé des premiers et derniers rangs du bloc mémoire donné ; on incrémente les compteurs respectivement associés à une pluralité de blocs adjacents au bloc mémoire donné. Selon un autre aspect, l’invention concerne un dispositif mémoire comprenant une unité DRAM formée d’une pluralité de matrices de points mémoire subdivisées en une pluralité de blocs mémoire composés de rangs mémoire contigus. Le dispositif mémoire comprend : un bloc logique de prévention associée à des compteurs d’activation respectivement associés aux blocs mémoire, le bloc logique de prévention étant configuré pour incrémenter, à chaque activation d’un rang d’un bloc donné, le compteur d’activation associé au bloc mémoire donné ; un bloc logique de rafraichissement configuré pour, lorsque le compteur d’activation de ce bloc mémoire donné excède une valeur seuil, réinitialiser le compteur associé au bloc donné et initier le rafraichissement préventif de tous les rangs du bloc mémoire donné en incluant, dans ce rafraichissement préventif, au moins une partie des rangs d’au moins un bloc directement adjacent au bloc mémoire donné. Selon d’autres caractéristiques avantageuses et non limitatives de cet aspect de l’invention, prises seules ou selon toute combinaison techniquement réalisable : les compteurs d’activation sont compris dans le bloc logique de prévention ; les blocs mémoire sont respectivement constitués d’uniques rangs mémoire, et dans lequel un compteur d’activation associé à un bloc mémoire est constitué par un champ de bits réservé du rang mémoire constituant ce bloc ; le bloc logique de rafraichissement est configuré pour initier le rafraichissement de tous les rangs du au moins un bloc directement adjacent au bloc mémoire donné, lorsque le compteur d’activation de ce bloc mémoire donné excède une valeur seuil ; le bloc logique de rafraichissement est configuré pour initier le rafraichissement, en plus de l’ensemble des rangs du bloc mémoire donné, d’un sous-ensemble seulement de rangs topologiquement contigus au bloc donné, lorsque le compteur d’activation de ce bloc donné excède une valeur seuil. Selon un autre aspect encore de l’invention, celle-ci concerne un dispositif mémoire comprenant une unité DRAM formée d’une pluralité de matrices de points mémoire subdivisées en une pluralité de blocs mémoire composés de rangs mémoire contigus. Le dispositif mémoire selon cet aspect de l’invention comprend : un bloc logique de prévention comprenant des compteurs d’activation respectivement associés aux blocs mémoire, le bloc logique de prévention étant configuré pour incrémenter, à chaque activation d’un rang d’un bloc donné, le compteur d’activation associé au bloc mémoire donné ainsi qu’au moins un compteur d’activation associé à au moins un bloc directement adjacent au bloc mémoire donné ; un bloc logique de rafraichissement configuré pour, lorsqu’un compteur d’activation associé à un bloc mémoire déterminé excède une valeur seuil, initier le rafraichissement préventif de tous les rangs du bloc mémoire déterminé et réinitialiser le compteur associé au à ce bloc déterminé. Selon d’autres caractéristiques avantageuses et non limitatives de cet aspect de l’invention, prises seules ou selon toute combinaison techniquement réalisable : le bloc logique de prévention est configuré pour incrémenter le au moins un compteur d’activation associé à au moins un bloc directement adjacent au bloc donné lors de l’activation de n’importe quel rang du bloc donné ; le bloc logique de prévention est configuré pour incrémenter le au moins un compteur d’activation associé à au moins un bloc directement adjacent au bloc donné uniquement lors de l’activation d’un sous-ensemble de rangs formé des premiers et/ou derniers rangs du bloc mémoire donné. Le dispositif mémoire selon l’un ou l’autre des aspects de l’invention peut comprendre une puce DRAM, un contrôleur de mémoire ou un circuit tampon, et les blocs logiques de prévention et de rafraichissement être compris dans la puce DRAM, dans le contrôleur de mémoire ou dans le circuit tampon. BREVE DESCRIPTION DES FIGURES 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 un dispositif mémoire DRAM permettant de mettre en œuvre un procédé de protection conforme à l'invention ; Les figures 2a et 2b représentent des procédés de protection conforme à l’invention. Procédé de protection d’un dispositif mémoire (1) de l’effet de martelage de rang, le dispositif mémoire (1) comprenant une unité DRAM (U) formée d’une pluralité de matrices de points mémoire (MAT1-MATN) subdivisées en une pluralité de blocs mémoire (B1-BM) composés de rangs mémoire contigus, et le dispositif mémoire (1) comprenant également des compteurs d’activation (CTR1-CTRM) respectivement associés aux blocs mémoire (B1-BM), le procédé comprenant les opérations suivantes : exécuter, à chaque activation d’un rang d’un bloc donné (Bi), une étape d’incrémentation du compteur d’activation (CTRi) associé au bloc donné (Bi) ; initier un rafraichissement préventif de tous les rangs du bloc donné (Bi), lorsque le compteur d’activation (CTRi) de ce bloc donné (Bi) excède une valeur seuil (Si), et réinitialiser le compteur (CTRi) associé au bloc donné (Bi); le procédé de protection comprenant également une au moins des opérations visant à : inclure, dans le rafraichissement préventif, au moins une partie des rangs d’au moins un bloc directement adjacent (Bi+1, Bi-1) au bloc donné (Bi), et/ou incrémenter, lors de l’activation du rang ou de certains rangs du bloc donné (Bi), le compteur d’activation (CTRi-1, CTRi+1) d’au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc donné (Bi) et initier le rafraichissement préventif de tous les rangs du au moins un bloc directement adjacent (Bi-1, Bi+1), lorsque le compteur d’activation (CTRi-1, CTRi+1) associé à ce bloc adjacent (Bi-1, Bi+1) excède une valeur seuil (Si-1, Si+1). Procédé de protection selon la revendication précédente dans lequel le rafraichissement préventif inclut tous les rangs du au moins un bloc directement adjacent (Bi+1, Bi-1) au bloc donné (Bi), lorsque le compteur d’activation (CTRi) de ce bloc donné (Bi) excède une valeur seuil (Si). Procédé de protection selon l’une des revendications précédentes dans lequel le rafraichissement préventif inclut certains au moins des rangs d’une pluralité de blocs adjacents (Bi—k, Bi-1 ; Bi+1, Bi+k) au bloc mémoire donné (Bi). Procédé de protection selon la revendication 1 dans lequel le rafraichissement préventif inclut, en plus des rangs du bloc donné (Bi), uniquement un sous-ensemble de rangs topologiquement contigus au bloc donné (Bi), lorsque le compteur d’activation (CTRi) de ce bloc donné (Bi) excède une valeur seuil (Si). Procédé de protection selon l’une des revendications précédentes dans lequel l’incrémentation du compteur d’activation (CTRi-1, CTRi+1) du au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc donné (Bi) est réalisée lors de l’activation de n’importe quel rang du bloc donné (Bi). Procédé de protection selon l’une des revendications 1 à 4 dans lequel l’incrémentation du compteur d’activation (CTRi-1, CTRi+1) du au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc donné (Bi) est réalisée uniquement lors de l’activation d’un sous-ensemble de rangs formé des premiers et derniers rangs du bloc mémoire donné (Bi). Procédé de protection selon l’une des revendications 1 à 6 dans lequel on incrémente les compteurs (CTRi-k, CTRi-1 ; CTRi+1, CTRi+k) respectivement associés à une pluralité de blocs adjacents (Bi-k, Bi—1 ; Bi+1, Bi+k) au bloc mémoire donné (Bi). Dispositif mémoire (1) comprenant une unité DRAM (U) formée d’une pluralité de matrices de points mémoire (MAT1-MATN) subdivisées en une pluralité de blocs mémoire (B1-BM) composés de rangs mémoire contigus, le dispositif mémoire comprenant : un bloc logique de prévention (PL) associée à des compteurs d’activation (CTR1-CTRM) respectivement associés aux blocs mémoire (B1-BM), le bloc logique de prévention (PL) étant configuré pour incrémenter, à chaque activation d’un rang d’un bloc donné (Bi), le compteur d’activation (CTRi) associé au bloc mémoire donné (Bi) ; un bloc logique de rafraichissement (RCU) configuré pour, lorsque le compteur d’activation (CTRi) de ce bloc mémoire donné (Bi) excède une valeur seuil (Si), réinitialiser le compteur (CTRi) associé au bloc donné (Bi) et initier le rafraichissement préventif de tous les rangs du bloc mémoire donné (Bi) en incluant, dans ce rafraichissement préventif, au moins une partie des rangs d’au moins un bloc directement adjacent (Bi+1, Bi-1) au bloc mémoire donné (Bi). Dispositif mémoire (1) selon la revendication précédente dans lequel les compteurs d’activation (CTR1-CTRM) sont compris dans le bloc logique de prévention (PL). Dispositif mémoire (1) selon la revendication 8 dans lequel les blocs mémoire (B1-BM) sont respectivement constitués d’uniques rangs mémoire, et dans lequel un compteur d’activation associé à un bloc mémoire est constitué par un champ de bits réservé du rang mémoire constituant ce bloc. Dispositif mémoire (1) selon l’une des revendications 8 à 10 dans lequel le bloc logique de rafraichissement (RCU) est configuré pour initier le rafraichissement de tous les rangs du au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc mémoire donné (Bi), lorsque le compteur d’activation (CTRi) de ce bloc mémoire donné (Bi) excède une valeur seuil (Si). Dispositif mémoire (1) selon l’une des revendications 8 à 10 dans lequel le bloc logique de rafraichissement (RCU) est configuré pour initier le rafraichissement d’un sous-ensemble seulement de rangs topologiquement contigus au bloc donné (Bi), lorsque le compteur d’activation (CTRi) de ce bloc donné (Bi) excède une valeur seuil (Si). Dispositif mémoire (1) comprenant une unité DRAM (U) formée d’une pluralité de matrices de points mémoire (MAT1-MATN) subdivisées en une pluralité de blocs mémoire (B1-BM) composés de rangs mémoire contigus, le dispositif mémoire comprenant : un bloc logique de prévention (PL) comprenant des compteurs d’activation (CTR1-CTRM) respectivement associés aux blocs mémoire (B1-BM), le bloc logique de prévention (PL) étant configuré pour incrémenter, à chaque activation d’un rang d’un bloc donné (Bi), le compteur d’activation (CTRi) associé au bloc mémoire donné (Bi) ainsi qu’au moins un compteur d’activation (CTRi-1, CTRi+1) associé à au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc mémoire donné (Bi); un bloc logique de rafraichissement (RCU) configuré pour, lorsqu’un compteur d’activation associé à un bloc mémoire déterminé excède une valeur seuil, initier le rafraichissement préventif de tous les rangs du bloc mémoire déterminé et réinitialiser le compteur associé au à ce bloc déterminé. Dispositif mémoire (1) selon la revendication précédente dans lequel le bloc logique de prévention (PL) est configuré pour incrémenter le au moins un compteur d’activation (CTRi-1, CTRi+1) associé à au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc donné (Bi) lors de l’activation de n’importe quel rang du bloc donné (Bi). Dispositif mémoire (1) selon la revendication 13 dans lequel le bloc logique de prévention (PL) est configuré pour incrémenter le au moins un compteur d’activation (CTRi-1, CTRi+1) associé à au moins un bloc directement adjacent (Bi-1, Bi+1) au bloc donné (Bi) uniquement lors de l’activation d’un sous-ensemble de rangs formé des premiers et/ou derniers rangs du bloc mémoire donné (Bi). Dispositif mémoire (1) selon l’une des revendications 8 à 15, comprenant une puce DRAM, un contrôleur de mémoire ou un circuit tampon, et dans lequel les blocs logiques de prévention et de rafraichissement (RCU) sont compris dans la puce DRAM, dans le contrôleur de mémoire ou dans le circuit tampon.