Brevet FR3120153A1 — publié le 20220826

L’invention concerne un dispositif mémoire comprenant : - des circuits mémoire DRAM (100), dont la capacité totale est divisée en une première partie (102) et une deuxième partie (103) de taille supérieure à la première partie (102); - un circuit de contrôle configuré pour accéder aux circuits mémoire, le circuit de contrôle comprend: - un premier bloc (201) configuré pour exécuter un premier algorithme (201A) destiné à protéger la première partie (102) d’un effet de martelage de rang; - un deuxième bloc (202) configuré pour exécuter un deuxième algorithme (202A) destiné à protéger la deuxième partie (103) d’un effet de martelage de rang susceptible d’intervenir, le deuxième algorithme (202A) utilisant une table principale sauvegardée dans la première partie (102). Figure pour l’abrégé : f igur e 1 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 DOMAINE DE L’INVENTION La présente invention concerne le domaine des mémoires, et notamment le domaine des mémoires à accès aléatoire dynamique. En particulier, la présente invention porte sur la gestion de l’effet de martelage de rang de mémoire (« Row Hammer » selon la terminologie anglo-Saxonne). A cet égard, la présente invention propose une architecture d’un dispositif mémoire permettant de gérer et prévenir l’effet de martelage de rang de mémoire pour des dispositifs mémoire de grande capacité sans pénaliser les performances desdits dispositifs. ARRIERE PLAN TECHNOLOGIQUE DE L’INVENTION L’effet de martelage de rang (« Row Hammer » selon la terminologie Anglo-Saxonne) dans les mémoires à accès aléatoire dynamique (« DRAM » ou « Dynamic Random Access Memory » selon la terminologie Anglo-Saxonne) est bien connu de l’homme du métier. Cet effet trouve son origine dans l’activation répétée d’un rang d’un banc d’une mémoire DRAM. Plus particulièrement, lorsque le nombre d’activations d’un rang donné, dit « rang agresseur », dépasse une valeur critique de martelage, les rangs qui lui sont immédiatement adjacents, dits « rangs victimes », voient certains de leurs bits inversées. Afin de prévenir l’effet de martelage de rang, il peut être envisagé, avant qu’un rang devienne agresseur, de rafraichir les deux rangs victimes adjacents selon une procédure de rafraîchissement préventif. Une telle procédure de rafraîchissement préventif est, à cet égard, décrite dans le document FR 3066842. Ce document divulgue notamment un dispositif mémoire pourvu d’une logique de détection du déclenchement du martelage de rang. Cette logique de détection est configurée pour surveiller et/ou compter le nombre d’activations de chaque rang d’un banc ou d’un sous-banc du dispositif mémoire. Les données de comptage sont, à cet égard, mémorisées dans une ou plusieurs tables dont le nombre d’entrées est directement dépendant de la taille du dispositif mémoire (et notamment sa capacité). Ce dispositif mémoire connu de l’état de la technique est particulièrement performant dès lors que la valeur critique de martelage reste supérieure à 40000. Toutefois, l’augmentation de la capacité des dispositifs mémoire impose la considération de tables comprenant un plus grand nombre d’entrées, et par voie de conséquence, bien plus consommatrices de ressources. Par ailleurs, la seule considération d’un martelage de rang au niveau des rangs immédiatement adjacents au rang agresseur, telle que proposée dans le document FR 3066842 trouve ces limites lorsque le dispositif mémoire est fabriqué selon des géométries fines, et notamment selon des finesses inférieures à 20nm. En effet, la considération de motifs ou de géométries plus fin(e)s conduit inéluctablement à augmenter la portée de l’effet de martelage de rang. Notamment, un rang agresseur d’indice « i » d’un banc ou d’un sous-banc de mémoire affectera non seulement les rangs qui lui sont immédiatement adjacents (d’indices « i-1 » et « i+1 »), mais également, et dans une moindre mesure, les rangs d’indices « i-k » et « i+k » (avec « k » entier strictement supérieur à 1). L’augmentation de la portée de l’effet de martelage a ainsi deux conséquences. Elle contribue, en premier lieu, à l’augmentation de la taille de tables susceptibles d’être considérées dans le document FR 3066842. En second lieu, elle impose des valeurs critiques de martelage bien inférieures à 40000, voire inférieures à 4800. Ces deux effets combinés affectent directement l’efficacité de la logique de détection du déclenchement du martelage de rang proposée dans ce documents. Afin de pallier ces problèmes, il a été proposé dans le document US 10,885,966 un autre algorithme de prévention de l’effet de martelage de rang. Ce dernier met également en œuvre des tables, et considère une portée de l’effet de martelage au-delà des rangs immédiatement adjacents à un rang agresseur. Plus particulièrement, l’algorithme proposé, afin de limiter les ressources nécessaires à sa mise en œuvre, surveille les activations au niveaux de sous-bancs. Cet algorithme, encore plus efficace que celui proposé dans le document FR 3066842, peut être amélioré pour certaines architectures de dispositifs mémoire. Notamment, cet algorithme est généralement mis en œuvre au moyen d’un bloc de mémoire à accès aléatoire statique (« SRAM » ou « Static Random Access Memory » selon la terminologie Anglo-Saxonne). Toutefois, une capacité du dispositif mémoire accrue, et une taille des géométries employées faible augmentent d’autant la taille des tables nécessaires à la bonne exécution de l’algorithme de prévention de l’effet de martelage de rang. Ces facteurs imposent donc de considérer des blocs mémoires SRAM de plus grande capacité. Or, ce type de mémoire est consommateur d’espace, et est susceptible de renchérir significativement le coût total du système mémoire. OBJET DE L’INVENTION Un but de la présente invention est de proposer un dispositif mémoires mettant un œuvre un algorithme de prévention de l’effet de martelage de rang et pour lequel le bloc de mémoire SRAM présente une taille limitée. La présente invention se rapporte à un dispositif mémoire et, plus particulièrement, à un dispositif mémoire dont l’architecture permet de gérer efficacement l’effet de martelage de rang lorsque la densité dudit dispositif mémoire ainsi que sa capacité totale augmentent. Le dispositif mémoire comprend des circuits mémoire, du type « DRAM », dont la capacité totale est divisée en une première partie, dite « partie directement protégée », et une deuxième partie, dite « partie indirectement protégée » de taille supérieure à la première partie. Selon la présente invention, le dispositif mémoire comprend un circuit de contrôle qui met en œuvre deux algorithmes de protection dits, respectivement, premier algorithme et deuxième algorithme. Plus particulièrement, le circuit de contrôle comprend un premier bloc mettant en œuvre le premier algorithme et un deuxième bloc mettant en œuvre le deuxième algorithme. A cet égard, le premier algorithme est configuré pour protéger la première partie de l’effet de martelage de rang. Le deuxième algorithme, pour sa part, est configuré pour protéger le deuxième partie de l’effet de martelage de rang. Il met notamment en œuvre au moins une table sauvegardée dans la première partie, cette table étant appelée table principale. Le but de l’invention est atteint par un dispositif mémoire comprenant : - des circuits mémoire, ces circuits comprenant des mémoires du type « DRAM », dont la capacité totale est divisée en une première partie, dite « partie directement protégée », et une deuxième partie, dite « partie indirectement protégée » de taille supérieure à la première partie ; - un circuit de contrôle configuré pour accéder aux circuits mémoire, le circuit de contrôle comprend : - un premier bloc configuré pour exécuter un premier algorithme destiné à protéger la première partie d’un effet de martelage de rang ; - un deuxième bloc configuré pour exécuter un deuxième algorithme destiné à protéger la deuxième partie d’un effet de martelage de rang susceptible d’intervenir, le deuxième algorithme utilisant une table principale sauvegardée dans la première partie ; Selon un mode de réalisation, le circuit de contrôle comprend un bloc fonctionnel configuré pour exécuter des fonctions de calculs et des programmes dans la deuxième partie, et de manière avantageuse également dans la première partie. Selon un mode de réalisation, la première partie et la deuxième partie sont agencées de sorte que l’effet de martelage de rang imposé par un rang de l’une de la première partie ou de la deuxième partie ne soit pas ressenti par l’autre de la première partie ou de la deuxième partie. Selon un mode de réalisation, la première partie et la deuxième partie sont configurées selon l’une des configurations suivantes : - la première partie et la deuxième partie sont disjointes de manière à ne pas partager des circuits mémoire DRAMs ; - la première partie et la deuxième partie comprennent chacune des bancs des circuits mémoire DRAM qui leur sont propres ; - la première partie et la deuxième partie, au sein d’un même banc des circuits mémoire DRAM, comprennent chacune un ou plusieurs sous-bancs qui leurs sont propres, lesdits sous-bancs sont alors agencés de sorte que l’effet de martelage de rang exercé par un rang d’un sous banc de la première partie ne soit pas ressenti par un sous-banc de la deuxième partie et inversement ; - la première partie et la deuxième partie ont en commun un banc de circuit mémoire DRAM, dit banc commun, ledit banc commun comprenant des rangs mémoire non utilisés et séparant une section du banc commun, associée à la première partie, d’une autre section du banc commun, associée à la deuxième partie, le nombre de rangs mémoire non utilisés étant choisis de sorte qu’aucun effet de martelage de rang n’intervienne entre chacun des deux sections du banc commun. Selon un mode de réalisation, la taille de la première partie correspond à moins de 0,1% de la taille de la deuxième partie. Selon un mode de réalisation, la première partie et la deuxième partie sont susceptibles d’exercer un effet de martelage de rang l’une sur l’autre, et dans lequel le premier algorithme et le deuxième algorithme sont configurés pour prévenir l’effet de martelage de rang de la première partie sur la deuxième partie et inversement. Selon un mode de réalisation, le deuxième bloc comprend une mémoire cache destinée à stocker des données de la table principale utilisée par le deuxième algorithme. Selon un mode de réalisation, le premier bloc utilise une table dite table initiale, cette table initiale étant mise en œuvre par le premier algorithme, et stockée dans une mémoire dit bloc mémoire de protection. Selon un mode de réalisation, le premier algorithme est un algorithme probabiliste ne nécessitant pas de table initiale. Le document « Flipping Bits in Memory Without Accessing Them : An Experimental Study of DRAM Disturbance Errors » dévoile par exemple l’algorithme « PARA » (Probabilistic Adjacent Row Activation), représentatif des algorithmes probabilistes ne nécessitant pas de table. Selon un mode de réalisation, le premier bloc comprend une mémoire cache destinée à stocker des données de la table initiale utilisée par le premier algorithme et située dans le bloc mémoire de protection, l’usage d’un tel cache étant avantageux quand les performances du bloc mémoire de protection sont limitées. Selon un mode de réalisation, le bloc mémoire de protection comprend une mémoire immune contre l’effet de martelage de rang, notamment ladite mémoire peut par exemple non limitatif être une mémoire de type SRAM, MRAM ou CNRAM. Selon un mode de réalisation, le bloc mémoire de protection comprend une mémoire DRAM, et dans lequel les rangs de mémoire sont agencés de manière à prévenir tout martelage de rang au sein dudit bloc. Selon un mode de réalisation, le bloc mémoire de protection comprend une mémoire DRAM, dans lequel la fréquence de rafraichissement est augmentée de sorte à prévenir tout martelage de rang au sein dudit bloc. Selon un mode de réalisation, le bloc mémoire de protection comprend une mémoire DRAM, dans lequel des blindages électriques séparent les rangs de sorte à prévenir tout martelage de rang au sein dudit bloc. Selon un mode de réalisation, le bloc mémoire de protection comprend une mémoire DRAM, dans lequel des rangs inutilisés séparent les rangs utilisés de sorte à prévenir tout martelage de rang utilisé au sein dudit bloc. Selon un mode de réalisation, le bloc mémoire de protection comprend une mémoire DRAM utilisant une combinaison techniquement réalisable des 4 procédés précédents de sorte à prévenir tout martelage de rang au sein dudit bloc. Selon un mode de réalisation, la mémoire DRAM comprend une troisième partie et un troisième bloc implémente un troisième algorithme de prévention de l’effet de martelage de rang utilisant la deuxième partie pour implémentation de la table, ou des tables, dont il a besoin. Selon un mode de réalisation, une table initiale est utilisée par le premier algorithme et le bloc mémoire de protection correspondant est une mémoire DRAM protégée de l’effet de martelage selon la présente invention. L’invention concerne également un contrôleur de mémoires DRAM, le contrôleur étant destiné à configurer une protection desdites mémoires DRAM contre un effet de martelage de rangs de mémoire, la protection impliquant la mise en œuvre d’un circuit de contrôle et d’un bloc mémoire de protection d’une capacité prédéterminée, le contrôleur étant adapté pour : - déterminer la capacité totale des mémoires de type DRAM contrôlées par le contrôleur ; - si la capacité totale des mémoires DRAM excède une taille, dite taille seuil, au-delà de laquelle la protection par un algorithme mettant en œuvre une unique table sauvegardée dans le bloc mémoire de protection est impossible, le contrôleur divise la capacité totale des mémoires DRAM en N parties, N≥2, dites chacune partie i pour i allant de 1 à N, N et i étant des valeurs entières, et configure le circuit de contrôle pour qu’il puisse exécuter N algorithmes de protection contre l’effet de martelage de rang dits chacun algorithme i pour i allant de 1 à N, chaque algorithme i étant destiné à protéger contre l’effet de martelage de rang la partie i au moyen d’une table i, chaque table i, pour i allant de 2 à N étant sauvegardée dans la partie i-1, tandis que la table 1 est sauvegardée dans le bloc mémoire de protection, si la capacité totale des mémoires DRAM n’excède pas la taille seuil le contrôleur configure le circuit de contrôle pour qu’il protège lesdites mémoires DRAM au moyen d’un unique algorithme qui met en œuvre une table sauvegardée dans le bloc mémoire de protection. Selon un mode de mise en œuvre, la capacité des parties i va croissant pour i allant de 1 à N. Selon un mode de mise en œuvre, le bloc mémoire de protection comprend une mémoire immune à l’effet de martelage de rang de mémoire, avantageusement le bloc mémoire de protection comprend au moins une des mémoires choisies parmi : une mémoire SRAM, une mémoire MRAM, ou mémoire CNRAM. Selon un mode de mise en œuvre, le bloc mémoire de protection est compris dans le contrôleur. Selon un mode de mise en œuvre, le bloc mémoire de protection comprend de la mémoire DRAM, avantageusement, le bloc mémoire de protection forme une partie 0 des mémoires DRAM. Selon un mode de mise en œuvre, le circuit de contrôle est compris dans le contrôleur. D'autres caractéristiques et avantages apparaîtront dans la description qui va suivre d'un dispositif mémoire selon l'invention, donnés à titre d'exemples non limitatifs, en référence à la figure annexée dans laquelle : La est une illustration de l’architecture d’un dispositif mémoire établi selon les principes de la présente invention, notamment le dispositif mémoire comprend une partie mémoire et un circuit de contrôle configuré pour prévenir l’effet de martelage de rang dans la partie mémoire, la partie mémoire est, pour sa part, subdivisée afin d’optimiser la gestion du martelage de rang, les flèches simples et doubles illustrent le sens des interactions entre les différentes parties du dispositif mémoire ; La est une illustration d’une autre architecture d’un dispositif mémoire établi selon les principes de la présente invention, le dispositif de la différant de la celui de la en ce qu’il ne comprend pas de bloc mémoire de protection ; La est une illustration d’un contrôleur de mémoire DRAM destiné à configurer un circuit de contrôle pour protéger ladite mémoire DRAM des effet de martelage de rang ; La est une illustration du principe de fonctionnement, et notamment de la configuration de la protection des effets de martelage de rang, du contrôleur. Dispositif mémoire (10) comprenant : - des circuits mémoire (100), ces circuits comprennent des mémoires du type « DRAM », dont la capacité totale est divisée en une première partie (102), dite « partie directement protégée », et une deuxième partie (103), dite « partie indirectement protégée » de taille supérieure à la première partie (102) ; - un circuit de contrôle (200) configuré pour accéder aux circuits mémoire, le circuit de contrôle comprend : - un premier bloc (201) configuré pour exécuter un premier algorithme (201A) destiné à protéger la première partie (102) d’un effet de martelage de rang ; - un deuxième bloc (202) configuré pour exécuter un deuxième algorithme (202A) destiné à protéger la deuxième partie (103) d’un effet de martelage de rang susceptible d’intervenir, le deuxième algorithme (202A) utilisant une table principale sauvegardée dans la première partie (102). Dispositif mémoire selon la revendication 1, dans lequel le circuit de contrôle comprend un bloc fonctionnel (300) configuré pour exécuter des fonctions de calculs et des programmes dans la deuxième partie (103), et de manière avantageuse également dans la première partie (102). Dispositif selon la revendication 1 ou 2, dans lequel la première partie (102) et la deuxième partie (103) sont agencées de sorte qu’un effet de martelage de rang imposé par un rang de l’une de la première partie (102) ou de la deuxième partie (103) ne soit pas ressenti par l’autre de la première partie (102) ou de la deuxième partie (103). Dispositif selon la revendication 3, dans lequel la première partie (102) et la deuxième partie (103) sont configurées selon l’une des configurations suivantes: - la première partie (102) et la deuxième partie (103) sont disjointes de manière à ne pas partager des circuits mémoire DRAMs ; - la première partie (102) et la deuxième partie (103) comprennent chacune des bancs des circuits mémoire DRAM qui leur sont propres ; - la première partie (102) et la deuxième partie (103), au sein d’un même banc de circuits mémoire DRAM, comprennent chacune un ou plusieurs sous-bancs qui leurs sont propres, lesdits sous-bancs sont alors agencés de sorte qu’un effet de martelage de rang exercé par un rang d’un sous banc de la première partie (102) ne soit pas ressenti par un sous-banc de la deuxième partie (103) et inversement ; - la première partie (102) et la deuxième partie (103) ont en commun un banc de circuit mémoire DRAM, dit banc commun, ledit banc commun comprenant des rangs mémoire non utilisés et séparant une section du banc commun, associée à la première partie (102), d’une autre section du banc commun, associée à la deuxième partie (103), le nombre de rangs mémoire non utilisés étant choisis de sorte qu’aucun effet de martelage de rang n’intervienne entre chacune des deux sections du banc commun. Dispositif selon la revendication 1 ou 2, dans lequel la première partie (102) et la deuxième partie (103) sont susceptibles d’exercer un effet de martelage de rang l’une sur l’autre, et dans lequel le premier algorithme (201A) et le deuxième algorithme (202A) sont configurés pour prévenir l’effet de martelage de rang de la première partie (102) sur la deuxième partie (103) et inversement. Dispositif selon l’une des revendications 1 à 5, dans lequel le deuxième bloc (202) comprend une mémoire cache (202B) destinée à stocker des données de la table principale utilisée par le deuxième algorithme (202A). Dispositif selon l’une des revendications 1 à 6, dans lequel la taille de la première partie (102) correspond à moins de 0,1% de la taille de la deuxième partie (103). Dispositif selon l’une des revendications 1 à 7, dans lequel le premier algorithme est un algorithme probabiliste. Dispositif selon l’une des revendications 1 à 7, dans lequel ledit dispositif mémoire (10) comprend en outre un bloc mémoire de protection (200) dans lequel est sauvegardé une table initiale mise en œuvre par le premier algorithme, avantageusement, le premier bloc (201) comprend également une mémoire cache destinée à stocker des données de la table initiale mise en œuvre par le premier algorithme (201A). Dispositif selon la revendication 9, dans lequel le bloc mémoire de protection (200) comprend une mémoire immune contre l’effet de martelage de rang, notamment ladite mémoire comprend au moins une des mémoires choisies parmi : une mémoire de type SRAM, une mémoire de type MRAM, une mémoire de type CNRAM. Dispositif selon l’une des revendications 1 à 10, dans lequel le bloc mémoire de protection (200) comprend une mémoire DRAM, et dans lequel les rangs de mémoire sont agencés de manière à prévenir tout martelage de rang au sein dudit bloc. Contrôleur (1000) de mémoires DRAM (1000), le contrôleur étant destiné à configurer une protection desdites mémoires DRAM contre un effet de martelage de rangs de mémoire, la protection impliquant la mise en œuvre d’un circuit de contrôle (1200) et d’un bloc mémoire de protection (1101) d’une capacité prédéterminée, le contrôleur étant adapté pour : - déterminer la capacité totale des mémoires DRAM contrôlées par le contrôleur (1000) ; - si la capacité totale des mémoires DRAM excède une taille, dite taille seuil, au-delà de laquelle la protection par un algorithme mettant en œuvre une unique table sauvegardée dans le bloc mémoire de protection (1101) est impossible, le contrôleur (1000) divise la capacité totale des mémoires DRAM en N parties, N≥2, dites chacune partie i pour i allant de 1 à N, N et i étant des valeurs entières, et configure le circuit de contrôle (1200) pour qu’il puisse exécuter N algorithmes de protection dits chacun algorithme i pour i allant de 1 à N, chaque algorithme i étant destiné à protéger contre l’effet de martelage de rang la partie i au moyen d’une table i, chaque table i, pour i allant de 2 à N étant sauvegardée dans la partie i-1, tandis que la table 1 est sauvegardée dans le bloc mémoire de protection (1101), si la capacité totale des mémoires DRAM n’excède pas la taille seuil le contrôleur configure le circuit de contrôle (1200) pour qu’il protège lesdites mémoires DRAM au moyen d’un unique algorithme qui met en œuvre une table sauvegardée dans le bloc mémoire de protection (1101). Contrôleur selon la revendication 12, dans lequel la capacité des parties i va croissant pour i allant de 1 à N. Contrôleur selon la revendication 12 ou 13, dans lequel le bloc mémoire de protection (1101) comprend une mémoire immune à l’effet de martelage de rang de mémoire, avantageusement le bloc mémoire de protection (1101) comprend au moins une des mémoires choisies parmi : une mémoire SRAM, une mémoire MRAM, ou mémoire CNRAM. Contrôleur selon la revendication 14, dans lequel le bloc mémoire de protection (1101) est compris dans le contrôleur (1000). Contrôleur selon la revendication 12 ou 13, dans lequel le bloc mémoire de protection (1101) comprend de la mémoire DRAM, avantageusement, le bloc mémoire de protection (1101) forme une partie 0 des mémoires DRAM. Contrôleur selon l’une des revendications 12 à 16, dans lequel le circuit de contrôle (1200) est compris dans le contrôleur (1000).