Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY DEVICE AND METHOD FOR PROTECTING A MEMORY DEVICE FROM THE EFFECT OF ROW HAMMERING
Document Type and Number:
WIPO Patent Application WO/2022/207999
Kind Code:
A1
Abstract:
The invention relates to a method for protecting a memory device (1) from the effect of row hammering. The memory device (1) comprises a DRAM unit (U) formed by a plurality of memory point matrices (MAT1-MATN) subdivided into a plurality of memory blocks (B1-BM). The memory device (1) comprises activation counters (CTR1-CTRM) respectively associated with the memory blocks (B1-BM). The method comprises the execution, with each activation of a row of a given block (Bi), of a step of incrementing the activation counter (CTRi) associated with the given block (Bi); and the initiation of the preventive refresh of all the rows of the given block (Bi) when the activation counter (CTRi) of this given block (Bi) exceeds a threshold value (Si). The protection method also comprises at least one of the operations aimed at: - including, in the preventive refresh, at least some of the rows of at least one block directly adjacent (Bi+1, Bi-1) to the given block (Bi); - incrementing, during the activation of the row or of certain rows of the given block (Bi), the activation counter (CTRi-1, CTRi+1) of at least one block directly adjacent (Bi-1, Bi+1) to the given block (Bi) and initiating the preventive refresh of all the rows of the adjacent block (Bi-1, Bi+1) when the activation counter (CTRi-1, CTRi+1) associated with this adjacent block (Bi-1, Bi+1) exceeds a threshold value (Si-1, Si+1).

Inventors:
DEVAUX FABRICE (CH)
Application Number:
PCT/FR2022/050523
Publication Date:
October 06, 2022
Filing Date:
March 22, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UPMEM (FR)
International Classes:
G11C11/406; G11C11/408; G11C11/4078; G11C29/52
Foreign References:
US10885966B12021-01-05
US20210012832A12021-01-14
US20170213586A12017-07-27
US20190228813A12019-07-25
US9214216B22015-12-15
Attorney, Agent or Firm:
BREESE, Pierre (FR)
Download PDF:
Claims:
REVENDICATIONS

1.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 (Bl-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 (Bl-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 rafraîchissement 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 rafraîchissement 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 rafraîchissement 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).

2. Procédé de protection selon la revendication précédente dans lequel le rafraîchissement 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).

3. Procédé de protection selon l'une des revendications précédentes dans lequel le rafraîchissement 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).

4. Procédé de protection selon la revendication 1 dans lequel le rafraîchissement 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).

5. 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).

6. 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).

7. 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).

8. 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 (Bl-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 (Bl-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 rafraîchissement (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 rafraîchissement préventif de tous les rangs du bloc mémoire donné (Bi) en incluant, dans ce rafraîchissement 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).

9. 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).

10. Dispositif mémoire (1) selon la revendication 8 dans lequel les blocs mémoire (Bl-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.

11. Dispositif mémoire (1) selon l'une des revendications

8 à 10 dans lequel le bloc logique de rafraîchissement (RCU) est configuré pour initier le rafraîchissement 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).

12. Dispositif mémoire (1) selon l'une des revendications

8 à 10 dans lequel le bloc logique de rafraîchissement (RCU) est configuré pour initier le rafraîchissement 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).

13. 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 (Bl- 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 (Bl-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 rafraîchissement (RCU) configuré pour, lorsqu'un compteur d'activation associé à un bloc mémoire déterminé excède une valeur seuil, initier le rafraîchissement préventif de tous les rangs du bloc mémoire déterminé et réinitialiser le compteur associé au à ce bloc déterminé.

14. 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).

15. 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).

16. 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 rafraîchissement (RCU) sont compris dans la puce DRAM, dans le contrôleur de mémoire ou dans le circuit tampon.

Description:
DISPOSITIF MEMOIRE ET PROCEDE DE PROTECTION D'UN DISPOSITIF MEMOIRE 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 « rafraîchissements 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 rafraîchissement 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 rafraîchissement 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 rafraîchissement 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 rafraîchissement 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 rafraîchissement 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 rafraîchissement 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 rafraîchissement 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 rafraîchissement préventif inclut certains au moins des rangs d'une pluralité de blocs adjacents au bloc mémoire donné ; le rafraîchissement 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 rafraîchissement 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 rafraîchissement préventif de tous les rangs du bloc mémoire donné en incluant, dans ce rafraîchissement 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 rafraîchissement est configuré pour initier le rafraîchissement 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 rafraîchissement est configuré pour initier le rafraîchissement, 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 rafraîchissement configuré pour, lorsqu'un compteur d'activation associé à un bloc mémoire déterminé excède une valeur seuil, initier le rafraîchissement 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 figure 1 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. DESCRIPTION DETAILLEE DE L' INVENTION

La figure 1 représente un dispositif mémoire 1 permettant de mettre en œuvre un procédé de protection conforme à l'invention.

Le dispositif 1 comprend une unité DRAM U composée d'une pluralité de matrices de points mémoire MAT1-MATN, plus simplement désignés « matrices » dans la suite de cette description. Comme cela a été présenté en introduction de cette demande, de telles matrices sont composées de rangs de points mémoire topologiquement contigus. Elles sont isolées, du point de vue de l'effet de martelage de rang, les unes des autres, notamment par des circuits de décodage de rangs et de colonnes, et des circuits d'amplification. L'activation d'un rang d'une matrice déterminée MAT1, même répétée, ne peut générer de rangs victimes de ce martelage dans une matrice distincte. Dit autrement, les rangs victimes du martelage d'un rang agresseur d'une matrice déterminée MAT1 appartiennent nécessairement à la même matrice déterminée MAT1 que ce rang agresseur.

Dans le dispositif mémoire 1 de la figure 1, les matrices MAT1- MATN de l'unité DRAM U peuvent être comprises dans une puce DRAM ou dans une pluralité de telles puces, disposées par exemple sur une barrette. L'unité DRAM U peut correspondre à une partition physique ou logique de certaines au moins des matrices composant le dispositif de mémoire DRAM 1. Ce dispositif 1 peut comprendre plus d'une unité DRAM U.

Dans le dispositif mémoire 1 représenté sur la figure 1, l'unité DRAM U est associée à au moins un bloc logique de rafraîchissement RCU. Ce bloc logique RCU met en œuvre des opérations de rafraîchissement des rangs des matrices MAT1-MATN composant l'unité DRAM U du dispositif 1. Ces rafraîchissements peuvent correspondre à des rafraîchissements périodiques des rangs de l'unité U ou à des rafraîchissements préventifs visant à spécifiquement prévenir l'effet de martelage de rang, comme cela sera présenté plus en détail dans la suite de cette description.

Un dispositif mémoire conforme à l'invention peut comprendre une pluralité de tels blocs logiques de rafraîchissement RCU, par exemple un bloc logique de rafraîchissement RCU dans chaque puce DRAM lorsque l'unité DRAM U est composé de matrices MAT1-MATN issues d'une pluralité de puces DRAM. Le bloc logique de rafraîchissement ou la pluralité de blocs logiques de rafraîchissement RCU associé (e) à une unité DRAM U peut alternativement être compris(e) dans un contrôleur mémoire du dispositif 1 un ou dans un circuit tampon de ce dispositif 1.

Le bloc logique de rafraîchissement RCU coordonne et initie les opérations de rafraîchissement des rangs composant l'unité DRAM U, et notamment les rafraîchissements périodiques et les rafraîchissements préventifs des rangs de cette unité DRAM. Le bloc peut notamment être configuré pour initier l'insertion des rafraîchissements préventifs dans le trafic de commande à destination de l'unité DRAM U. Ceci peut être fait, par exemple et sans que cette liste ne forme une énumération exhaustive, selon l'une des manières suivantes :

• en empruntant des créneaux temporels de rafraîchissements périodiques, les rafraîchissements 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 réservés pour des rafraîchissements préventifs ;

• en indiquant à un contrôleur mémoire que celui-ci doit générer un ou plusieurs créneaux temporels pour des rafraîchissements préventifs. 1/ insertion des rafraîchissements préventifs dans le trafic de commande à destination de l'unité DRAM U dépend de l'architecture du dispositif mémoire 1 et des protocoles mis en œuvre. Cette architecture peut ainsi mettre en œuvre, outre des puces DRAM elles-mêmes, un contrôleur mémoire et/ou un circuit tampon (par exemple connu sous l'acronyme RCD) entre le contrôleur mémoire et les puces DRAM. D'autres approches, nécessitant ou pas une coordination avec un contrôleur mémoire, peuvent être aussi utilisées.

Dans le dispositif mémoire DRAM 1 représenté sur la figure 1, l'unité DRAM U est également associée à au moins un bloc logique de prévention PL. Ce bloc logique PL est destiné à protéger cette unité DRAM U de l'effet de martelage de rang. Tout comme le bloc logique de rafraîchissement RCU, un dispositif mémoire 1 conforme à 1'invention peut comprendre un unique bloc logique ou une pluralité de blocs logiques de prévention PL, intégré (e) aux puces DRAM qui compose le dispositif 1, à un contrôleur de mémoire de ce dispositif 1, ou à un circuit tampon de ce dispositif 1.

Le bloc logique de prévention PL reçoit les commandes Cde et les adresses Add d'accès aux rangs composant l'unité DRAM U. Le bloc logique de prévention PL comprend ou est associé à une pluralité de compteurs activation CTR1-CTRM. Les compteurs d'activation CTR1-CTRM sont respectivement associés à des blocs de rangs mémoire Bl-BM. Un bloc de rangs mémoire (plus simplement désignés « bloc mémoire » dans la suite de cette description) est constitué d'un regroupement de rangs topologiquement contigus à l'intérieur d'une matrice de rangs MAT. Dit autrement, et comme cela est visible sur la figure 1, chaque matrice est subdivisée en une pluralité de blocs mémoire de rangs topologiquement contigus. Chaque bloc mémoire Bi est donc adjacent à un bloc mémoire directement inférieur Bi-1 et à un bloc mémoire directement supérieur Bi+1, sauf bien entendu pour le premier bloc mémoire et le dernier bloc mémoire d'une matrice. Il n'est pas nécessaire que les matrices MAT1-MATN soient toutes subdivisées en un nombre identique de blocs mémoire.

En tout état de cause, et quelle que soit la manière dont les matrices MAT1-MATN de l'unité DRAM U sont divisées en blocs mémoire contiguës Bl-BM, le bloc logique de prévention PL comprend, ou est associé à, des compteurs d'activation CTR1-CTRM respectivement associés aux blocs mémoire Bl-BM. À titre d'illustration uniquement un bloc mémoire B peut être composé de 32 rangs mémoire et une matrice MAT peut typiquement comprendre entre 8 et 16 blocs mémoire.

Le bloc logique de prévention PL est configurée pour, à chaque commande d'activation d'un rang d'un bloc mémoire donné Bi (et désigné au moins en partie par l'adresse Add), incrémenter le compteur d'activation CTRi associé à ce bloc mémoire donné Bi.

Les blocs mémoire Bl-BM sont également respectivement associés, dans le bloc logique de prévention PL, à des valeurs seuil. Lorsque le compteur d'activation CTRi associé à un bloc Bi excède la valeur seuil Si associée à ce bloc, tous les rangs composant ce bloc mémoire Bi doivent être rafraichis. Les valeurs seuils peuvent être identiques entre elles ou spécifiques à chaque bloc mémoire. Elles peuvent être fixes ou déterminées (collectivement ou individuellement) pour chaque bloc mémoire, par exemple à l'issue d'un procédé de test des composants formant le dispositif 1, selon la sensibilité de ces composants à l'effet de martelage. On peut envisager de faire varier ces valeurs seuils, par exemple avec la température de fonctionnement du dispositif 1, une température relativement plus élevée rendant certains composants généralement plus sensibles à l'effet de martelage. Typiquement, et pour illustration uniquement, ce seuil peut être compris entre 4000 et 8000.

Pour assurer ce fonctionnement, le bloc logique de prévention PL est donc configuré pour comparer la valeur d'un compteur Bi à la valeur seuil Si qui lui est associée, après chaque incrémentation de ce compteur CTRi, c'est-à-dire après chaque activation d'un rang du bloc Bi associé au compteur CTRi. En cas d'atteinte de cette valeur seuil ou de son dépassement, le bloc logique de prévention PL adresse une commande au bloc logique de rafraichissement RCU afin que ce bloc initie le rafraîchissement du bloc mémoire Bi entier, c'est-à-dire le rafraîchissement de l'ensemble des rangs qui composent ce bloc mémoire Bi. A cet effet, le bloc logique de rafraîchissement RCU peut comprendre une table pour mémoriser les blocs mémoire ou les rangs désignés par le bloc logique de prévention PL, en attente de leur rafraîchissement préventif. Le compteur CTRi est ensuite remis à zéro, afin d'engager un nouveau cycle d'incrémentation.

Cette approche n'est toutefois pas suffisante pour immuniser complètement l'unité DRAM U des effets de martelage de certains rangs agresseurs. En effet, l'activation répétée d'un rang d'un bloc peut affecter le rang d'un bloc mémoire adjacent d'une même matrice, car les blocs mémoire d'une même matrice ne sont pas physiquement isolés les uns des autres. Le rafraîchissement préventif d'un bloc donné ne peut donc prévenir des effets de martelage qui se produirait sur un rang victime d'un bloc adjacent.

Quand la portée de l'effet de martelage est inférieure à la taille d'un bloc, l'effet du martelage d'un rang d'un bloc donné Bi peut s'étendre à un rang victime des blocs adjacents Bi-1 et Bi+1. Dans le cas le plus général, et sans supposer que la portée soit nécessairement inférieure à la taille d'un bloc, l'effet du martelage d'un rang d'un bloc donné Bi peut s'étendre à un rang victime des blocs adjacents Bi-k - Bi+k, dont les indices sont donc compris entre i-k et i+k (l'indice i étant exclus) , avec k = 1 + E[(p-l)/n], où la fonction E est la partie entière, p la portée du martelage et n la taille d'un bloc. Dis autrement, dans une approche conforme à l'invention, on considère à des fins de simplification de l'algorithme que l'effet du martelage d'un rang agresseur i est identique pour les 2p rangs adjacents (p rangs victimes de part et d'autre de ce rang agresseur), et que cet effet peut donc apparaître avec la même intensité dans tous les blocs qui intersectent ces 2p rangs adjacents.

Aussi, et afin de prévenir, limiter ou de réduire ce risque lié au martelage d'un rang de l'unité DRAM U, un dispositif mémoire conforme à l'invention est augmenté d'un au moins de deux mécanismes logiques additionnels, représentés respectivement sur les figures 2a et 2b.

On retrouve bien dans ces figures les opérations déjà présentées d'incrémentation du compteur CTRi à l'activation d'un rang d'un bloc Bi associé à ce compteur. On retrouve également l'opération de comparaison du compteur CTRi au seuil Si associé, et l'opération de rafraîchissement du bloc entier Bi, si ce seuil Si est atteint ou dépassé.

On considère dans les explications qui suivent de l'invention que la taille des blocs d'une matrice est supérieure ou égale à la portée p de martelage. En conséquence de cette hypothèse, l'étendue k définie plus haut est égale à 1, c'est-à-dire que l'effet du martelage d'un rang d'un bloc est confiné aux blocs directement adjacents. On étendra ces explications en toute fin de l'exposé à des blocs de toutes tailles. Selon une première approche représentée sur la figure 2a, le dispositif mémoire 1 est non seulement configuré pour initier le rafraîchissement préventif de tous les rangs d'un bloc mémoire donné Bi pour lequel la valeur seuil d'activation Si a été excédée ou atteinte, mais également au moins une partie des rangs du ou des blocs topologiquement adjacents Bi-1, Bi+1 à ce bloc mémoire donné Bi, c'est-à-dire du bloc directement supérieur Bi+1 et/ou directement inférieur Bi-1.

On appelle « zone de rafraîchissement » l'ensemble des rangs rafraîchis quand le compteur CTRi d'un bloc Bi donné atteint ou dépasse la valeur seuil. Cette zone rafraîchit doit au moins comprendre les p rangs disposés d'un côté et/ou de l'autre du bloc Bi donné, contiguement à ce bloc, p désignant la portée de martelage.

Ainsi, on pourra choisir d'inclure, dans la zone de rafraîchissement, tous les rangs des deux blocs directement adjacents Bi-1, Bi+1 au bloc mémoire donné Bi. Il n'est toutefois pas nécessaire que tous les rangs de chacun des deux blocs directement adjacents Bi-1, Bi+1 soit inclus dans la zone de rafraîchissement. Et dans une variante, on peut ainsi choisir d'inclure dans cette zone uniquement un sous-ensemble de au moins p rangs de ces blocs mémoire directement topologiquement contigus au bloc donné, c'est-à-dire de de part et d'autre de ce bloc.

Si, bien entendu, le bloc mémoire donné est disposé à une extrémité d'une matrice, c'est-à-dire qu'il est constitué des premiers rangs ou des derniers rangs de la matrice, alors il ne possède qu'un seul bloc adjacent, et le rafraîchissement de ce bloc mémoire donné est étendu que par des rangs appartenant à cet unique bloc mémoire adjacent. Par souci de simplicité d'expression, on désignera par l'expression plurielle « blocs adjacents » d'un bloc donné, les blocs ou le bloc adjacent(s) à un bloc donné selon que ce bloc donné est disposé dans une partie centrale d'une matrice ou à une extrémité de la matrice.

Pour mettre en œuvre cette première approche, le bloc logique de rafraichissement RCU peut être configuré pour systématiquement initier le rafraîchissement des rangs formant la zone de rafraîchissement du bloc mémoire donné Bi et dont une référence est fournie par le bloc logique de prévention PL. Alternativement, le bloc logique de prévention PL peut fournir au bloc logique de rafraîchissement RCU, les références des blocs et/ou des rangs constituant la zone de rafraîchissement du bloc mémoire donné.

Selon une seconde approche représentée sur la figure 2b visant à prévenir les effets du martelage d'un bloc mémoire à l'autre, le bloc logique de prévention PL peut être configuré pour incrémenter, lors de l'activation d'un rang d'un bloc mémoire donné, le compteur d'activation associé aux blocs mémoire directement adjacents Bi-1, Bi+1, c'est-à-dire du bloc mémoire directement supérieur Bi+1 et directement inférieur Bi-1, au bloc donné Bi. Cette incrémentation additionnelle peut être exécutée lors de l'activation de n'importe quel rang du bloc mémoire donné, indifféremment.

Selon une variante de la seconde approche, les incrémentations additionnelles sont réalisées en fonction du rang qui est activé dans le bloc Bi : si la portée de l'effet de martelage est p, alors l'activation des p premiers rangs du bloc donné Bi entraine l'incrémentation du compteur associé au bloc directement adjacent inférieur Bi-1, l'activation des p derniers rangs du bloc donné Bi entraine l'incrémentation du compteur associé au bloc directement adjacent supérieur Bi+1, et : • Si la portée p est inférieure à la moitié du nombre de rangs du bloc donné Bi, alors l'activation des autres rangs que les p premiers ou p derniers de ce bloc n'entraine pas d'incrémentation des compteurs associés aux blocs Bi-1 et Bi+1,

• Si la portée p est supérieure à la moitié du nombre de rangs du bloc donné Bi, alors l'activation des rangs qui appartiennent à la fois aux p premiers rangs et au p derniers rang de ce bloc entraine l'incrémentation des compteurs associés aux blocs Bi-1 et Bi+1.

Si, bien entendu et tout comme dans la première approche, le bloc mémoire donné Bi est disposé à une extrémité d'une matrice, c'est-à-dire qu'il est constitué des premiers rangs ou des derniers rangs de la matrice, alors il ne possède qu'un seul bloc adjacent, et l'incrémentation additionnelle ne concerne que le compteur associé à cet unique bloc mémoire adjacent.

Ces deux approches et leurs variantes peuvent être facilement adaptées au cas où la portée p de l'effet de martelage est strictement plus grande que la taille n du bloc :

• pour la première approche ou sa variante, la zone de rafraîchissement du bloc donné Bi est élargie de telle façon qu'elle englobe autant de blocs adjacents du bloc donné Bi que nécessaire, par exemple non limitatif, la zone de rafraîchissement peut comprendre : certains des derniers rangs des blocs Bi-2, la totalité des rangs des blocs Bi- 1, Bi, Bi+1, et certains des premiers rangs du bloc Bi+2. Plus généralement, on pourra choisir d'inclure, dans la zone de rafraîchissement, une pluralité des blocs adjacents Bi—1 à Bi-k d'une part et Bi+1 à Bi+k d'autre part, au bloc mémoire donné Bi lui-même, avec k = 1 + E[(p-l)/n]. A nouveau, tous les rangs des blocs extrêmes Bi-k, Bi+k peuvent être inclus dans la zone de rafraîchissement, ou seuls des sous-ensembles de rangs respectivement contigus aux blocs Bi-k+1, Bi+k-1 d'indices i-k+1 et i+k-1.

• Pour la seconde approche, le nombre de blocs dont les compteurs associés sont incrémentés est augmenté autant que nécessaire, par exemple non limitatif activer un rang d'un bloc donné Bi va incrémenter les compteurs associés aux blocs Bi-2, Bi-1, Bi, Bi+1, Bi+2. Plus spécifiquement, le bloc logique de prévention PL peut être configuré pour incrémenter les compteurs d'activation respectivement associés aux blocs mémoire Bi-k à Bi+k d'indices i-k à i+k, avec k = 1 + E[(p-l)/n].

• Pour la variante de la seconde approche, les compteurs associés aux blocs adjacents les plus proches du bloc donné Bi sont incrémentés à chaque activation d'un rang de Bi, et les compteurs associés aux deux blocs adjacents les moins proches du bloc donné Bi sont incrémentés ou pas en fonction du rang précis du bloc donné Bi qui a été activé. Par exemple non limitatif, activer un rang d'un bloc donné Bi peut incrémenter systématiquement les compteurs CTRI-1, CTRI, CTRi+1 associés à ce bloc et aux blocs directement adjacents Bi-1, Bi, Bi+1, et incrémenter, conditionnellement au rang précis du bloc donné Bi activé, les compteurs CTRi-2, CTRI+2 associés aux blocs non directement adjacents Bi-2, Bi+2.

Quand les blocs considérés sont situés aux extrémités du mat, ou proche de celles-ci, certains des blocs adjacents ne seront pas présents, et l'approche décrite est donc adaptée en conséquence.

Ainsi, et quelle que soit l'approche choisie parmi les approches qui viennent d'être présentées ou leurs variantes, on prévient, limite ou réduit l'effet de martelage de rang qui peut se produire entre des blocs mémoire directement ou indirectement adjacents d'une matrice, même lorsque la portée de l'effet de martelage est importante par rapport à la taille du bloc. Le rafraîchissement préventif initié par le bloc logique de rafraîchissement RCU mobilise un nombre réduit de rangs à chaque phase de rafraîchissement préventif par rapport au nombre total de rangs contenus dans une matrice MAT, ce qui est particulièrement avantageux.

On note que les rafraîchissements préventifs et périodiques qui sont initiés par le bloc logique de rafraîchissement contribuent également à l'effet de martelage. Aussi, les activations de rangs qui se produisent lors de ces rafraîchissements doivent être prises en compte par le bloc logique de prévention PL, à moins que des marges suffisantes aient été considérées dans les seuils de comptage déclenchant les opérations de rafraîchissement préventif, pour que cela ne soit pas nécessaire.

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 .

En particulier, les opérations du procédé de protections peuvent être mises en œuvre par d'autres blocs logiques que ceux, de préventions PL et de rafraîchissement RCU, qui ont été exposés dans la description détaillée, ou répartie entre ces blocs de manière différente à celle présentée dans cette description.

Le bloc logique de prévention peut notamment être mis en œuvre par deux logiques s'exécutant de manière asynchrone. Une première logique peut être ainsi configurée pour incrémenter le compteur associé à un bloc mémoire donné, lors de l'activation d'un rang de ce bloc et, éventuellement dans le cas de la seconde approche et de sa variante, les compteurs des blocs directement ou indirectement adjacents. Une seconde logique peut être configurée pour scruter, de manière asynchrone à la première logique, l'ensemble des compteurs CTR1-CTRM, et commander le bloc logique de rafraîchissement lorsque l'un de ces compteurs atteint ou excède le seuil qui lui est associé. Dans un tel cas, cette seconde logique peut être en charge de la réinitialisation du compteur. D'une manière générale donc, le bloc logique de rafraîchissement est configuré pour initier le rafraîchissement préventif de tous les rangs d'un bloc, lorsque le compteur d'activation associé à ce bloc excède une valeur seuil.

Les blocs logiques qui mettent en œuvre le procédé conforme à l'invention peuvent correspondre à des machines d'état.

Il est à noter que dans un mode de mise en œuvre particulier de l'invention, la taille des blocs est de 1 rang seulement. Dans ce mode de mise en œuvre, le compteur d'activation associé à chaque bloc peut être réalisé par l'élargissement de chaque rang de la matrice par un champ de bits suffisamment large pour stocker une valeur d'activation correspondant à la valeur seuil, i.e. un champ de 13 bits lorsque la valeur seuil est choisie à 8000. Ce mode de mis en œuvre est particulièrement adapté à la première approche de l'invention. Cette configuration est avantageuse dans le fait que réaliser le compteur d'activation par l'élargissement du rang est plus économique que de le réaliser via l'utilisation d'une mémoire dédiée.