WO2022207999A1 - Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang - Google Patents

Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang Download PDF

Info

Publication number
WO2022207999A1
WO2022207999A1 PCT/FR2022/050523 FR2022050523W WO2022207999A1 WO 2022207999 A1 WO2022207999 A1 WO 2022207999A1 FR 2022050523 W FR2022050523 W FR 2022050523W WO 2022207999 A1 WO2022207999 A1 WO 2022207999A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
memory
given
ctri
activation
Prior art date
Application number
PCT/FR2022/050523
Other languages
English (en)
Inventor
Fabrice Devaux
Original Assignee
Upmem
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 filed Critical Upmem
Priority to US18/284,822 priority Critical patent/US20240185910A1/en
Publication of WO2022207999A1 publication Critical patent/WO2022207999A1/fr

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • 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/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/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/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Definitions

  • the present invention relates to the field of DRAM circuits (“dynamic random access memory” or “dynamic random access memory” in French) and particularly the management of the “ROW Hammer” effect.
  • This "rank hammering" effect is the fact that within a given DRAM bank, repeatedly activating a given DRAM rank can cause physically adjacent ranks to invert their value. of some of their bits.
  • the rank that is activated repeatedly is called the “aggressor rank” and the adjacent ranks are called the "victim ranks”.
  • a hammering of range p means that an aggressor rank of topological index i is likely to affect victim ranks comprised between the topological indices i-p and i+p.
  • the more a victim rank is topologically distant from the aggressor rank ie the more the index of the victim rank is different from the index of the aggressor rank), the less this impact will be significant. This range is dependent on many factors, in particular the fineness of engraving of the DRAM memory. It can be estimated or measured for a given type of DRAM memory.
  • the DRAM memory of a conventional computer system is usually formed of strips (for example in DIMM format) of DRAM chips. Each bar is subdivided into a plurality of rows (“rank”) each formed of a part of the DRAM chips. Each row is further subdivided into benches logic spanning the DRAM chips in that row.
  • the bank portion of a DRAM chip incorporates a plurality of arrays (also referred to as a “mat”) of memory points.
  • This matrix forms an elementary hardware organization of the memory points of a DRAM chip, and each matrix has a certain independence with respect to the others and is in particular isolated from the point of view of the rank hammering effect of the other matrices of this chip, in particular by row and column decoding circuits, and by amplification circuits ("sense amplifier").
  • the matrix is for its part formed of topologically contiguous rows of memory points, generally several hundred rows per matrix.
  • the document US9214216 proposes a method for protecting a DRAM memory against the rank hammering effect.
  • This method consists in counting the accesses to the memory point matrices via a plurality of counters respectively associated with these matrices.
  • a counter associated with one of the memory point matrices exceeds a threshold value, this matrix is entirely refreshed preventively (that is to say all of its ranks) in order to avoid the occurrence of an error by hammering.
  • This process is based on the fact that the victim ranks are necessarily confined to the matrix of memory points of the aggressor rank, because these matrices are physically isolated from each other: an aggressor rank cannot make ranks victims outside of its own matrix, even when the pounding range is significant.
  • An object of the invention is to propose a solution making it possible to improve this state of the art. More precisely, an object of the invention is to provide a method for protecting a DRAM memory device from the rank hammering effect which does not depend on the immunity of the blocks between them, and which allows prevention of the rank hammering effect more effective.
  • the object of the invention proposes a method for protecting a memory device from the rank hammering effect, the memory device comprising a DRAM unit formed of a plurality of matrices of memory points subdivided into a plurality of memory blocks composed of contiguous memory ranks, and the memory device also comprising activation counters respectively associated with the memory blocks.
  • the process includes the following operations:
  • the method also comprises at least one of the operations aimed at:
  • any incrementation of an activation counter will trigger a refresh of the block associated with this counter if this counter reaches the threshold value and this independently of the cause of this incrementation: whether it is a increment due to an activation targeting this particular block, or whether it is an increment due to an activation targeting a directly adjacent or indirectly adjacent block and within the hammering range.
  • the triggering of the refreshing of a given block following the incrementation of the associated counter triggers the reinitialization of this counter, typically its reset to zero.
  • the preventive refresh includes all the ranks of at least one block directly adjacent to the given block, when the activation counter of this block given exceeds a threshold value;
  • the preventive refresh includes at least some of the ranks of a plurality of blocks adjacent to the given memory block;
  • the preventive refreshing includes, in addition to the ranks of the given block, only a subset of ranks topologically contiguous to the given block, when the activation counter of this given block exceeds a threshold value; the incrementation of the activation counter of the at least one block directly adjacent to the given block is carried out during the activation of any rank of the given block; the incrementation of the activation counter of the at least one block directly adjacent to the given block is carried out
  • the invention relates to a memory device comprising a DRAM unit formed of a plurality of arrays of memory points subdivided into a plurality of memory blocks composed of contiguous memory ranks.
  • the memory device includes:
  • prevention logic block associated with activation counters respectively associated with the memory blocks, the prevention logic block being configured to increment, on each activation of a rank of a given block, the activation counter associated with the block memory given;
  • a refresh logic block configured to, when the activation counter of this given memory block exceeds a threshold value, reinitialize the counter associated with the given block and initiate the preventive refreshing of all the ranks of the given memory block by including, in this preventive refreshing, at least part of the rows of at least one block directly adjacent to the given memory block.
  • the activation counters are included in the prevention logic block;
  • the memory blocks are respectively made up of single memory rows, and in which an activation counter associated with a memory block is made up of a reserved bit field of the memory row constituting this block;
  • the refresh logic block is configured to initiate the refresh of all ranks of the at least one block directly adjacent to the given memory block, when the activation counter of this given memory block exceeds a threshold value;
  • the refresh logic block is configured to initiate the refreshing, in addition to the set of ranks of the given memory block, of only a subset of ranks topologically contiguous to the given block, when the activation counter of this given block exceeds a threshold value.
  • the latter relates to a memory device comprising a DRAM unit formed of a plurality of matrices of memory points subdivided into a plurality of memory blocks composed of contiguous memory ranks.
  • the memory device comprises:
  • a prevention logic block comprising activation counters respectively associated with the memory blocks, the prevention logic block being configured to increment, on each activation of a rank of a given block, the activation counter associated with the memory block given as well as at least one activation counter associated with at least one block directly adjacent to the given memory block;
  • a refresh logic block configured to, when an activation counter associated with a determined memory block exceeds a threshold value, initiate the preventive refresh of all the ranks of the determined memory block and reset the counter associated with this determined block.
  • the prevention logic block is configured to increment the at least one activation counter associated with at least one block directly adjacent to the given block upon activation of any rank of the given block; the prevention logic block is configured to increment the at least one activation counter associated with at least one block directly adjacent to the given block only upon activation of a subset of ranks formed from the first and/or last ranks of the given memory block.
  • the memory device may comprise a DRAM chip, a memory controller or a buffer circuit, and the prevention and refresh logic blocks may be included in the DRAM chip, in the memory controller or in the buffer circuit.
  • Figure 1 shows a DRAM memory device for implementing a protection method according to the invention
  • FIG. 1 represents a memory device 1 making it possible to implement a protection method in accordance with the invention.
  • the device 1 comprises a DRAM unit U composed of a plurality of matrices of memory points MAT1-MATN, more simply designated “matrices” in the remainder of this description.
  • matrices are composed of rows of topologically contiguous memory points. They are isolated, from the point of view of the row hammering effect, from each other, in particular by row and column decoding circuits, and amplification circuits.
  • the activation of a rank of a determined matrix MAT1 even repeated, cannot generate ranks victims of this hammering in a distinct matrix. In other words, the ranks victims of the hammering of an aggressor rank of a given matrix MAT1 necessarily belong to the same given matrix MAT1 as this aggressor rank.
  • the matrices MAT1-MATN of the DRAM unit U can be included in a DRAM chip or in a plurality of such chips, arranged for example on a strip.
  • the DRAM unit U can correspond to a physical or logical partition of at least some of the matrices making up the DRAM memory device 1.
  • This device 1 can comprise more than one DRAM unit U.
  • the DRAM unit U is associated with at least one refresh logic block RCU.
  • This logic block RCU implements operations for refreshing the ranks of the matrices MAT1-MATN making up the DRAM unit U of the device 1. These refreshes can correspond to periodic refreshes of the ranks of the U unit or preventive refreshes aimed specifically at preventing the rank hammering effect, as will be discussed in more detail later in this description.
  • a memory device in accordance with the invention may comprise a plurality of such RCU refresh logic blocks, for example an RCU refresh logic block in each DRAM chip when the DRAM unit U is composed of MAT1-MATN matrices from a plurality DRAM chips.
  • the refresh logic block or the plurality of refresh logic blocks RCU associated with a DRAM unit U can alternatively be included in a memory controller of device 1 or in a buffer circuit of this device 1.
  • the refresh logic block RCU coordinates and initiates the operations for refreshing the ranks making up the DRAM unit U, and in particular the periodic refreshes and the preventive refreshes of the ranks of this DRAM unit.
  • the block can in particular be configured to initiate the insertion of preventive refreshes in the control traffic intended for the DRAM unit U. This can be done, for example and without this list forming an exhaustive enumeration, according to one in the following ways:
  • the DRAM unit U is also associated with at least one prevention logic block PL.
  • This logic block PL is intended to protect this DRAM unit U from the rank hammering effect.
  • a memory device 1 in accordance with the invention can comprise a single logic block or a plurality of prevention logic blocks PL, integrated into the DRAM chips which make up the device 1, to a controller memory of this device 1, or to a buffer circuit of this device 1.
  • the prevention logic block PL receives the commands Cde and the addresses Add for accessing the rows making up the DRAM unit U.
  • the prevention logic block PL comprises or is associated with a plurality of activation counters CTR1-CTRM.
  • the activation counters CTR1-CTRM are respectively associated with blocks of memory ranks B1-BM.
  • a block of memory ranks (more simply designated “memory block” in the rest of this description) consists of a grouping of topologically contiguous ranks inside a matrix of ranks MAT. In other words, and as can be seen in FIG. 1, each matrix is subdivided into a plurality of memory blocks of topologically contiguous ranks.
  • Each memory block Bi is therefore adjacent to a block directly lower memory Bi-1 and to a directly higher memory block Bi+1, except of course for the first memory block and the last memory block of a matrix. It is not necessary for the matrices MAT1-MATN all to be subdivided into an identical number of memory blocks.
  • the prevention logic block PL comprises, or is associated with, counters d activation CTR1-CTRM respectively associated with Bl-BM memory blocks.
  • a memory block B can be composed of 32 memory ranks and a matrix MAT can typically comprise between 8 and 16 memory blocks.
  • the prevention logic block PL is configured to, on each command to activate a rank of a given memory block Bi (and designated at least in part by the address Add), increment the activation counter CTRi associated with this given memory block Bi.
  • the memory blocks B1-BM are also respectively associated, in the prevention logic block PL, with threshold values.
  • the threshold values can be identical to each other or specific to each memory block. They can be fixed or determined (collectively or individually) for each memory block, for example at the end of a method of testing the components forming the device 1, according to the sensitivity of these components to the hammering effect. It is possible to envisage varying these threshold values, for example with the operating temperature of the device 1, a relatively higher temperature making certain components generally more sensitive to the hammering effect. Typically, and for illustration only, this threshold can be between 4000 and 8000.
  • the prevention logic block PL is therefore configured to compare the value of a counter Bi with the threshold value Si associated with it, after each increment of this counter CTRi, that is to say after each activation of a rank of the block Bi associated with the counter CTRi. If this threshold value is reached or exceeded, the prevention logic block PL sends a command to the refresh logic block RCU so that this block initiates the refreshing of the entire memory block Bi, that is to say the refreshing of all the ranks which make up this memory block Bi.
  • the refresh logic block RCU can comprise a table for storing the memory blocks or the ranks designated by the prevention logic block PL, awaiting their preventive refresh. The counter CTRi is then reset to zero, in order to initiate a new incrementation cycle.
  • the effect of the hammering of a rank of a given block Bi can extend to a victim rank of adjacent blocks Bi-1 and Bi +1.
  • a memory device in accordance with the invention is increased by at least two additional logic mechanisms, represented respectively in Figures 2a and 2b.
  • the size of the blocks of a matrix is greater than or equal to the hammering range p.
  • the extent k defined above is equal to 1, that is to say that the effect of the hammering of a row of a block is confined to the directly adjacent blocks.
  • the memory device 1 is not only configured to initiate the preventive refreshing of all the ranks of a given memory block Bi for which the activation threshold value Si has been exceeded or reached, but also at least part of the ranks of the block or blocks topologically adjacent Bi-1, Bi+1 to this given memory block Bi, that is to say of the block directly above Bi+1 and/or directly below Bi-1.
  • refresh zone refers to the set of rows refreshed when the counter CTRi of a given block Bi reaches or exceeds the threshold value. This refreshed area must at least include the p rows arranged on one side and/or the other of the given block Bi, contiguous to this block, p designating the hammering range.
  • the given memory block is arranged at one end of an array, i.e. it consists of the first ranks or the last ranks of the matrix, then it has only one adjacent block, and the refresh of this given memory block is extended only by ranks belonging to this single adjacent memory block.
  • the plural expression "adjacent blocks" of a given block will designate the blocks or the block adjacent to a given block depending on whether this given block is arranged in a central part of a matrix or at one end of the die.
  • the refresh logic block RCU can be configured to systematically initiate the refreshing of the ranks forming the refresh zone of the given memory block Bi and for which a reference is provided by the prevention logic block PL.
  • the prevention logic block PL can provide the refresh logic block RCU with the references of the blocks and/or rows constituting the refresh zone of the given memory block.
  • the prevention logic block PL can be configured to increment, during the activation of a rank of one given memory block, the activation counter associated with the directly adjacent memory blocks Bi-1, Bi+1, that is to say of the directly higher memory block Bi+1 and directly lower Bi-1, with the given block Bi. This additional incrementation can be executed during the activation of any rank of the given memory block, indifferently.
  • the additional increments are carried out according to the rank which is activated in the block Bi: if the range of the hammering effect is p, then the activation of the first p ranks of the given block Bi leads to incrementing the counter associated with the lower directly adjacent block Bi-1, activating the last p rows of the given block Bi causes the incrementing of the counter associated with the upper directly adjacent block Bi+1, and: • If the scope p is less than half the number of ranks of the given block Bi, then the activation of ranks other than the p first or p last of this block does not cause the counters associated with the blocks Bi- to be incremented. 1 and Bi+1,
  • the given memory block Bi is placed at one end of a matrix, i.e. it consists of the first rows or the last rows of the matrix, then it has only one adjacent block, and the additional incrementation concerns only the counter associated with this single adjacent memory block.
  • the number of blocks whose associated counters are incremented is increased as much as necessary, for example non-limiting activating a rank of a given block Bi will increment the counters associated with blocks Bi-2, Bi-1, Bi, Bi+1, Bi+2.
  • the counters associated with the adjacent blocks closest to the given block Bi are incremented at each activation of a rank of Bi, and the counters associated with the two adjacent blocks least close to the given block Bi are incremented or not depending on the precise rank of the given block Bi which has been activated.
  • activating a rank of a given block Bi can systematically increment the counters CTRI-1, CTRI, CTRi+1 associated with this block and the directly adjacent blocks Bi-1, Bi, Bi+1, and increment, conditionally on the precise rank of the given block Bi activated, the counters CTRi-2, CTRI+2 associated with the non-directly adjacent blocks Bi-2, Bi+2.
  • the row hammering effect which can occur between directly or indirectly adjacent memory blocks of a matrix, even when the scope of the effect of hammering is large relative to block size.
  • the preventive refresh initiated by the refresh logic block RCU mobilizes a reduced number of ranks at each preventive refresh phase relative to the total number of ranks contained in a matrix MAT, which is particularly advantageous.
  • preventive and periodic refreshes which are initiated by the refresh logic block also contribute to the hammering effect. Also, the rank activations that occur during these refreshes must be taken into account by the prevention logic block PL, unless sufficient margins have been considered in the counting thresholds triggering the preventive refresh operations, so that this is not necessary.
  • the operations of the protection method can be implemented by logic blocks other than those of PL prevention and RCU refresh, which have been exposed in the detailed description, or distributed between these blocks in a different way to that presented in this description.
  • the prevention logic block can in particular be implemented by two logics executing asynchronously.
  • a first logic can thus be configured to increment the counter associated with a given memory block, when activating a row of this block and, possibly in the case of the second approach and its variant, the counters of the blocks directly or indirectly adjacent.
  • a second logic can be configured to scan, asynchronously to the first logic, all of the counters CTR1-CTRM, and control the refresh logic block when one of these counters reaches or exceeds the threshold associated with it. In such a case, this second logic can be in charge of resetting the counter.
  • the refresh logic block is configured to initiate preventive refreshing of all the rows of a block, when the activation counter associated with this block exceeds a threshold value.
  • the logic blocks that implement the method according to the invention can correspond to state machines.
  • the size of the blocks is only 1 rank.
  • the activation counter associated with each block can be produced by widening each row of the matrix by a field of bits large enough to store an activation value corresponding to the threshold value, i.e. a 13-bit field when the threshold value is chosen at 8000.
  • This mode of implementation is particularly suited to the first approach of the invention. This configuration is advantageous in that implementing the activation counter by rank enlargement is more economical than implementing it via the use of a dedicated memory.

Landscapes

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

Abstract

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

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.

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.
PCT/FR2022/050523 2021-03-29 2022-03-22 Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang WO2022207999A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/284,822 US20240185910A1 (en) 2021-03-29 2022-03-22 Memory device and method for protecting a memory device from the effect of row hammering

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2103163A FR3121262A1 (fr) 2021-03-29 2021-03-29 Dispositif mémoire et procédé de protection d’un dispositif mémoire de l’effet de martelage d’un rang
FRFR2103163 2021-03-29

Publications (1)

Publication Number Publication Date
WO2022207999A1 true WO2022207999A1 (fr) 2022-10-06

Family

ID=76807717

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2022/050523 WO2022207999A1 (fr) 2021-03-29 2022-03-22 Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang

Country Status (3)

Country Link
US (1) US20240185910A1 (fr)
FR (1) FR3121262A1 (fr)
WO (1) WO2022207999A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906087A (zh) * 2023-03-09 2023-04-04 长鑫存储技术有限公司 行锤攻击保护方法与存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9214216B2 (en) 2013-06-28 2015-12-15 SK Hynix Inc. Semiconductor device and operation method thereof
US20170213586A1 (en) * 2016-01-25 2017-07-27 Samsung Electronics Co., Ltd. Memory device performing hammer refresh operation and memory system including the same
US20190228813A1 (en) * 2019-03-29 2019-07-25 Intel Corporation Refresh command control for host assist of row hammer mitigation
US10885966B1 (en) * 2020-06-23 2021-01-05 Upmem Method and circuit for protecting a DRAM memory device from the row hammer effect
US20210012832A1 (en) * 2017-05-24 2021-01-14 Upmem Row hammer correction logic for dram with integrated processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9214216B2 (en) 2013-06-28 2015-12-15 SK Hynix Inc. Semiconductor device and operation method thereof
US20170213586A1 (en) * 2016-01-25 2017-07-27 Samsung Electronics Co., Ltd. Memory device performing hammer refresh operation and memory system including the same
US20210012832A1 (en) * 2017-05-24 2021-01-14 Upmem Row hammer correction logic for dram with integrated processor
US20190228813A1 (en) * 2019-03-29 2019-07-25 Intel Corporation Refresh command control for host assist of row hammer mitigation
US10885966B1 (en) * 2020-06-23 2021-01-05 Upmem Method and circuit for protecting a DRAM memory device from the row hammer effect

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906087A (zh) * 2023-03-09 2023-04-04 长鑫存储技术有限公司 行锤攻击保护方法与存储器
CN115906087B (zh) * 2023-03-09 2023-07-07 长鑫存储技术有限公司 行锤攻击保护方法与存储器

Also Published As

Publication number Publication date
US20240185910A1 (en) 2024-06-06
FR3121262A1 (fr) 2022-09-30

Similar Documents

Publication Publication Date Title
KR102513775B1 (ko) 메모리의 리프레시 결여 검출을 위한 장치 및 방법
KR102184656B1 (ko) 하이브리드 메모리 디바이스
KR102070551B1 (ko) 교차점 비휘발성 메모리로의 기입
US11881247B2 (en) Apparatuses, systems, and methods for resetting row hammer detector circuit based on self-refresh command
FR3111730A1 (fr) Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
FR2774209A1 (fr) Procede de controle du circuit de lecture d'un plan memoire et dispositif de memoire correspondant
WO2022207999A1 (fr) Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang
US11956376B2 (en) Memory device and memory system having the same
JP2019512833A (ja) セクションの独立による複数のメモリセクション内での並列アクセス技術
US10992483B2 (en) Physically unclonable function device for use in user authentication system and operation method thereof
KR102385443B1 (ko) 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법
US9324428B1 (en) Memory device and operation method thereof
EP3886361A1 (fr) Dispositif de fonction physiquement non clonable
EP1220101B1 (fr) Procédé et dispositif de protection contre le piratage de circuits intégrés
EP2724237B1 (fr) Procédé de gestion de l'endurance de mémoires non volatiles
EP2285038A2 (fr) Surveillance de l'activité d'un circuit électronique
TWI680457B (zh) 動態隨機存取記憶體及其操作方法
FR2805369A1 (fr) Structure de registre avec un mecanisme d'ecriture symetrique
EP3080813B1 (fr) Système de gestion de l'usure d'une mémoire électronique
US20230127142A1 (en) Sram with reconfigurable setting
EP1880387A1 (fr) Dispositif de protection d'une memoire contre les attaques par injection d'erreur
US8873269B2 (en) Read only memory bitline load-balancing
WO2023104891A1 (fr) Dispositif mémoire dram mettant en œuvre un mécanisme de gestion du martelage de rang
WO2022175619A1 (fr) Dispositif memoire pourvu de circuits memoire dram agences de maniere a minimiser la taille d'un bloc memoire permettant la gestion de l'effet de martelage de rang
EP4145704B1 (fr) Démarrage sécurisé d'une unité de traitement

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22715140

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18284822

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22715140

Country of ref document: EP

Kind code of ref document: A1