Refreshing method and device

By setting multiple counting intervals and queue management mechanisms in the memory, the data loss problem caused by the row hammer effect is solved, and the timely refresh of the victim row address is achieved, and the stability of the memory is improved.

CN119832955AActive Publication Date: 2025-04-15RUILI INTEGRATED CIRCUIT CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202311325411.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-12
Publication Date
2025-04-15
Estimated Expiration
2043-10-12

AI Technical Summary

Technical Problem

In memory, frequent or long-term activation of word lines of a single row address will cause the capacitor leakage rate of adjacent addresses to be higher than the natural leakage rate, which will cause data loss, which is called the row hammer effect.

Method used

By obtaining the activation count value of the currently activated row address of the memory within the preset time period, if the count value exceeds multiple count intervals of the row hammer threshold, determine whether the queue is full, and determine the range of the victim row address according to the count interval and refresh. When the queue is full, perform a preset operation such as adding 1 to the activation count value.

Benefits of technology

Effectively prevent multi-address synchronous attacks, ensure that victim row addresses can be refreshed in time, and improve memory stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119832955A_ABST
    Figure CN119832955A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a refreshing method and device, and relates to the technical field of semiconductors, and the method comprises the steps: obtaining an activation count value of a currently activated row address of a memory within a preset duration; if the activation counting value belongs to any one counting interval in a plurality of counting intervals exceeding a row hammer threshold value, determining whether a preset queue is full or not; wherein the queue is used for storing row addresses needing to execute row hammering refreshing operation; when the queue is not full, putting the row address into the queue, determining the range of a victim row address corresponding to the row address according to a target counting interval to which the activation counting value belongs, and refreshing the victim row address; when the queue is full, one of preset operations is executed, and the preset operations comprise the step of adding 1 to the activation count value. The embodiment of the invention can effectively guarantee the stability of the memory.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of semiconductor technology, and in particular to a refreshing method and device. Background Art

[0002] As the density of memory continues to increase, when the word line (WordLine, WL) corresponding to a single row address in the memory cell is frequently turned on or turned on for a long time, it is very likely to cause the leakage rate of the capacitor of the adjacent address (generally referred to as the "victim row address") to be higher than the natural leakage rate, thereby causing the capacitor of the adjacent address to lose data due to excessive charge loss before the refresh signal arrives. This situation is generally called the row hammer (Row Hammer, RH) effect.

[0003] In order to suppress the RH effect, the victim row address needs to be refreshed in time before data is lost to replenish the charge. However, in the related art, the victim row address often loses data due to failure to be refreshed in time, thereby affecting the stability of the memory. Summary of the invention

[0004] The present disclosure provides a refresh method and device, which can effectively improve the stability of a memory.

[0005] In a first aspect, an embodiment of the present disclosure provides a refreshing method, the method comprising:

[0006] Obtaining the activation count value of the row address currently activated by the memory within a preset time length;

[0007] If the activation count value belongs to any one of the multiple count intervals that exceeds the row hammer threshold, determining whether a preset queue is full; wherein the queue is used to store the row address for which a row hammer refresh operation needs to be performed, and there is no intersection between the multiple count intervals;

[0008] When the queue is not full, the row address is put into the queue, and according to the target counting interval to which the activation count value belongs, a range of victim row addresses corresponding to the row address is determined and the victim row addresses are refreshed;

[0009] When the queue is full, one of the preset operations is performed, wherein the preset operation includes increasing the activation count value by 1.

[0010] In some embodiments, the method further comprises:

[0011] determining the plurality of counting intervals;

[0012] When the number of activations of the row address within the preset time period belongs to different counting intervals, the ranges of victim row addresses corresponding to the row address are different.

[0013] In some embodiments, determining the plurality of counting intervals comprises:

[0014] determining the number of victim row addresses adjacent to the row address when the row address is activated for different times within the preset time period;

[0015] The multiple counting intervals are determined according to a range of activation times of the row address within the preset time length when the number of victim row addresses adjacent to the row address is multiple preset values.

[0016] In some embodiments, determining the plurality of counting intervals comprises:

[0017] Acquiring process parameters of the memory, wherein the process parameters include the capacity of a capacitor in each storage unit of the memory and / or the distance between adjacent word lines in the memory;

[0018] The plurality of counting intervals are determined according to the process parameters.

[0019] In some embodiments, the method further comprises:

[0020] According to the target counting interval to which the activation count value belongs and the range of victim row addresses corresponding to each counting interval, a refresh range identifier is added to the row address, and the refresh range identifier is used to indicate that 2n victim row addresses adjacent to the row address need to perform a refresh operation; n is a positive integer, and the value of n is related to the target counting interval.

[0021] In some embodiments, the memory includes a plurality of word lines, the plurality of word lines include edge word lines and non-edge word lines; the edge word line is at least one word line located at an edge position among the plurality of word lines, and the non-edge word line is a word line among the plurality of word lines except the edge word line; the determining the plurality of counting intervals includes:

[0022] Determine a plurality of first counting intervals corresponding to the edge word lines and a plurality of second counting intervals corresponding to the non-edge word lines;

[0023] The first counting interval and the second counting interval corresponding to the same range of victim row addresses do not completely overlap.

[0024] In some embodiments, the performing of a preset operation includes:

[0025] Determining whether the target counting interval is a counting interval with a maximum counting value;

[0026] If the target counting interval is not the counting interval with the largest counting value, adding 1 to the activation counting value;

[0027] If the target counting interval is the counting interval with the largest counting value, the queue overflow alarm information is output.

[0028] In some embodiments, the memory includes a selector and a row decoder; the selector is used to output a victim row address or an activated row address to the row decoder;

[0029] The step of placing the row address into the queue comprises:

[0030] The row address output by the selector is obtained, and the obtained row address is put into the queue.

[0031] In a second aspect, an embodiment of the present disclosure provides a refreshing device, the device comprising:

[0032] An acquisition module, used to acquire an activation count value of a row address currently activated by the memory within a preset time length;

[0033] A determination module, configured to determine whether a preset queue is full if the activation count value belongs to any one of a plurality of count intervals exceeding a row hammer threshold; wherein the queue is used to store row addresses for which a row hammer refresh operation needs to be performed, and the plurality of count intervals have no intersection;

[0034] A processing module is used to put the row address into the queue when the queue is not full, and determine the range of the victim row address corresponding to the row address and refresh the victim row address according to the target count interval to which the activation count value belongs; when the queue is full, perform one of the preset operations, and the preset operation includes adding 1 to the activation count value.

[0035] In some embodiments, the device further comprises a pre-processing module for:

[0036] determining the plurality of counting intervals;

[0037] When the number of activations of the row address within the preset time period belongs to different counting intervals, the ranges of victim row addresses corresponding to the row address are different.

[0038] The refresh method and device provided in the embodiments of the present disclosure can prevent the activation count values ​​of multiple row addresses from reaching the counting threshold at the same time by setting multiple counting intervals, thereby effectively resisting multi-address same-frequency attacks; at the same time, according to the counting interval in which the activation count value of the row address is located, the range of the victim row address corresponding to the row address is determined and the victim row address is refreshed, thereby preventing the situation where some victim row addresses cannot be refreshed in time, further ensuring the stability of the memory. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] Figure 1 A schematic diagram of the structure of a storage unit of a storage device provided in an embodiment of the present disclosure;

[0040] Figure 2 A schematic diagram of a row hammer refresh process provided in an embodiment of the present disclosure;

[0041] Figure 3 A schematic diagram of a queue overflow provided in an embodiment of the present disclosure;

[0042] Figure 4 A schematic diagram of a step flow of a refreshing method provided in an embodiment of the present disclosure;

[0043] Figure 5 A schematic diagram of another step flow of a refreshing method provided in an embodiment of the present disclosure;

[0044] Figure 6 A schematic diagram of a program module of a refreshing device provided in an embodiment of the present disclosure. DETAILED DESCRIPTION

[0045] In order to make the purpose, technical solutions and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, rather than all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present disclosure. In addition, although the disclosure in the present disclosure is introduced according to one or several exemplary examples, it should be understood that each aspect of the disclosure can also constitute a complete implementation method separately.

[0046] It should be noted that the brief description of terms in the present disclosure is only for the convenience of understanding the embodiments described below, and is not intended to limit the embodiments of the present disclosure. Unless otherwise specified, these terms should be understood according to their ordinary and common meanings.

[0047] The terms "first", "second", etc. in the specification and claims of the present disclosure and the above-mentioned drawings are used to distinguish similar or similar objects or entities, and are not necessarily meant to limit a specific order or sequence, unless otherwise noted. It should be understood that the terms used in this way are interchangeable under appropriate circumstances, for example, they can be implemented in an order other than those given in the diagrams or descriptions of the embodiments of the present disclosure.

[0048] In addition, the terms "include" and "have" and any variations thereof are intended to cover but not exclude inclusion, for example, a product or device comprising a list of components is not necessarily limited to those components expressly listed but may include other components not expressly listed or inherent to such products or devices.

[0049] It should be understood that when an element is referred to as being “connected” or “electrically connected” to other elements in an embodiment of the present disclosure, the element may be directly connected or electrically connected to the other elements; or there may be several intermediate elements, and the element may be connected or electrically connected to the other elements through the several intermediate elements.

[0050] The term "module" used in the embodiments of the present disclosure refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or a combination of hardware and / or software code that can perform the functions associated with the element.

[0051] The embodiments of the present disclosure relate to the field of semiconductor memory technology, and can optionally be applied to the chip design of dynamic random access memory (DRAM), including controlling the refresh mode of DRAM. It should be noted that the refresh method provided in the embodiments of the present disclosure can be applied to DRAM as well as to various other memories with row hammering effect, which is not limited in the embodiments of the present disclosure.

[0052] It can be understood that a memory generally includes a plurality of bit lines (BL), a plurality of word lines (WL), and a plurality of memory cells, wherein each memory cell is connected to a corresponding WL and a corresponding BL.

[0053] In some embodiments, each storage unit includes a transistor and a capacitor, the gate of the transistor is connected to WL, one of the source / drain of the transistor is connected to BL, and the other is connected to the capacitor. When the signal on WL turns on the above transistor, BL can write a high-level signal "1" to the above capacitor. When the signal on WL turns off the above transistor, the charge on the above capacitor slowly leaks over time. The time it takes for the above capacitor to leak from the high-level signal "1" to the intermediate potential is the data retention time of the above storage unit. In order to prevent the loss of data stored in the above capacitor, the memory needs to continuously refresh all the data stored in it within a limited time period.

[0054] Reference Figure 1 , Figure 1 A schematic diagram of the structure of a storage unit of a storage device provided in an embodiment of the present disclosure.

[0055] In some embodiments, each memory cell 10 includes a transistor 12 and a capacitor 11, the gate of the transistor 12 is connected to WL, the source of the transistor 12 is connected to BL, and the drain of the transistor 12 is connected to the capacitor 11. It should be noted that the source of the transistor 12 may also be connected to the capacitor 11, and correspondingly, the drain of the transistor 12 is connected to BL.

[0056] As the density of memory continues to increase, the word lines in its storage cells are physically closer, which leads to a gradual increase in the capacitive coupling between adjacent WLs. That is, when a word line is turned on, the change of its adjacent word line changes briefly, which in turn causes a small amount of charge leakage in the capacitor corresponding to the adjacent word line. When a row address is repeatedly accessed at a high frequency, it is likely that the capacitor corresponding to the adjacent word line will cause data loss due to repeated leakage of charge. This phenomenon is usually called row hammering, and this method is often used as a means of system attack.

[0057] In the Per Row Hammer Tracking (PRHT) scheme, an activation counter (AC) is added to each WL. Each activation counter includes a number of bits (e.g., 16 bits) to record the number of times the corresponding WL is activated. When the count value of any activation counter exceeds a fixed count threshold, the address of the corresponding WL is placed in a designated queue to wait for a row hammer refresh (RHR).

[0058] The queue may be a First Input First Output (FIFO) queue. It should be noted that, limited by the physical area reserved for the queue in the memory, no matter which queue is used, the number of row addresses that can be stored is always limited.

[0059] However, in the above PRHT scheme, if a multi-address same-frequency attack occurs, it is easy to cause the count values ​​of multiple activation command counters to exceed the above count threshold in a short period of time, so that the above queue overflows due to insufficient storage capacity, resulting in the addresses of some WLs being unable to enter the above queue and not obtaining timely RHR; thereby affecting the stability of the memory.

[0060] In order to better understand the embodiments of the present disclosure, refer to Figure 2 , Figure 2 A schematic diagram of a row hammer refresh process based on a single threshold provided in an embodiment of the present disclosure.

[0061] exist Figure 2In the storage queue of the memory, multiple WLs such as i, j, and k are included. An activation command counter is added to each WL. The activation command counter includes several bits for recording the number of times the corresponding WL is activated. When the count value of any activation command counter reaches the specified threshold, the address of the corresponding WL, that is, the attack row address, is placed in the queue to wait for the RHR process. The RHR process refers to obtaining the victim row address based on the attack row address, and refreshing the capacitor corresponding to the victim row address in a timely manner to replenish the charge and avoid errors in the stored data.

[0062] In the disclosed embodiment, the victim row address generation module can generate corresponding victim row addresses based on the attack row addresses in the above queue and the refresh range of RHR. These victim row addresses can be refreshed simultaneously during the row hammer refresh or refreshed in multiple times, which is not limited in the disclosed embodiment.

[0063] In the disclosed embodiment, after the victim row address generation module generates the victim row address, the generated victim row address RA_RH can be output to the row decoder through the selector 20; when there is no victim row address or after all the generated victim row addresses are sent to the row decoder, the selector 20 is selected to transmit the activated row address RA_ACT to the row decoder.

[0064] Reference Figure 3 , Figure 3 A schematic diagram of a queue overflow provided in an embodiment of the present disclosure.

[0065] It is understandable that, assuming that the count threshold of the activation command counter on the WL is 1024 and the depth of the above queue is 5, then if 7 WLs ( Figure 3 In the example, if the 7×1024 activation commands are respectively named h, i, j, k, l, m, and n, the activation command counters of the 7 WLs will successively reach the above-mentioned counting threshold after 7×1024 activation commands. Since the depth of the above-mentioned queue is only 5, there will be 2 attack row addresses that cannot enter the above-mentioned queue in time, resulting in the inability to generate the victim row address corresponding to the attack row address, and thus the victim row address cannot be refreshed in time. In the embodiment of the present disclosure, after the above-mentioned queue is full, no more data will be written, otherwise errors such as data overwriting will occur. Data that cannot be written to the above-mentioned queue in time will usually be discarded or other cache operations will be performed. In the embodiment of the present disclosure, the situation where the queue cannot be entered in time temporarily or permanently, such as being discarded, can continue to be written when the content in the queue is read out and there is a vacancy.

[0066] like Figure 3As shown in , when the activation command counters of word lines h, i, j, k, and l successively reach the above-mentioned counting threshold, the addresses of word lines h, i, j, k, and l will be successively placed in the queue. When the queue is occupied by the addresses of word lines h, i, j, k, and l, although the activation command counters of word lines m and n have also reached the above-mentioned counting threshold, the above-mentioned queue is full at this time, so the addresses of word lines m and n cannot be placed in the queue, resulting in the addresses of word lines m and n being unable to enter the above-mentioned queue and unable to generate the victim row addresses corresponding to word lines m and n, and thus the victim row addresses cannot be refreshed in time.

[0067] Furthermore, in some embodiments, the refresh range of RHR is mainly randomly selected. For example, assuming that there are 8 WLs (named a, b, c, d, e, f, g, h, respectively) waiting for RHR, the refresh range of these 8 WLs can be determined as "±1" first, and then some WLs are randomly selected from these 8 WLs (for example, b, c, f, h), and the refresh range of these WLs is determined as "±1, ±2". Further, some WLs are randomly selected from the selected WLs (for example, c, f), and the refresh range of these WLs is determined as "±1, ±2, ±3".

[0068] Among them, "±1" means that the first WL on both sides of the attacked WL needs to be refreshed, "±2" means that the second WL on both sides of the attacked WL needs to be refreshed, and "±3" means that the third WL on both sides of the attacked WL needs to be refreshed.

[0069] It is understandable that the row hammering effect of WL will accelerate the change of charge in the storage cells on the nearby WL. After the activation times of WL exceeds a certain threshold, the more activation times, the greater the impact range on the nearby WL. If the refresh range of the attacked WL is randomly selected, it is possible that some victim row addresses cannot be refreshed in time, which also affects the stability of the memory.

[0070] In view of the above technical problems, a refresh method is provided in the embodiment of the present disclosure. By setting a multi-level counting threshold in the PRHT, the count values ​​of the activation command counters on multiple WLs can be prevented from reaching the counting threshold in a concentrated manner, thereby effectively resisting multi-address co-frequency attacks; at the same time, according to the counting interval of the number of activation times of the WL, the range of the victim row address corresponding to the WL is determined, thereby preventing some victim row addresses from being unable to be refreshed in time, and further ensuring the stability of the memory. The following is a detailed description using an embodiment.

[0071] Reference Figure 4 , Figure 4 The following is a schematic diagram of a step flow of a refresh method provided in an embodiment of the present disclosure; in some implementations, the refresh method includes:

[0072] S401, obtaining an activation count value of a row address currently activated by a memory within a preset time period.

[0073] In some implementations, the memory may use a PRHT scheme to promptly refresh the victim row address to replenish the charge and avoid errors in the stored data.

[0074] Among them, an activation command counter is added to each WL, and the activation command counter includes a number of bits for recording the number of times the corresponding WL is activated. After any row address in the memory is activated, the activation count value of the row address within a preset time length can be read from the activation command counter on the WL corresponding to the activated row address.

[0075] S402: Determine whether the activation count value belongs to any one of the multiple count intervals that exceed the hammer threshold. If yes, continue to execute S403.

[0076] In some embodiments, multiple counting thresholds may be pre-set, and multiple counting intervals may be determined by these thresholds. For example, a first counting threshold D1, a second counting threshold D2, and a third counting threshold D3 may be set, and D1<D2<D3. Then, based on the counting thresholds D1, D2, and D3, three counting intervals may be determined, namely: (D1, D2), [D2, D3), and [D3, ∞).

[0077] The plurality of count intervals all exceed the row hammer threshold, that is, when the count value of any activation command counter belongs to any of the plurality of count intervals, it indicates that the address of the corresponding WL needs to execute RHR. In some embodiments, the first count threshold D1 is the row hammer threshold.

[0078] When the number of activations of the row address within the preset time period belongs to different counting intervals, the number of victim row addresses adjacent to the row address is different.

[0079] Exemplarily, in some embodiments, after obtaining the activation count value of the currently activated row address of the memory within a preset time length, it is determined whether the activation count value belongs to any one of the above-mentioned counting intervals (D1, D2), [D2, D3), [D3, ∞); if the above-mentioned activation count value belongs to any one of the above-mentioned counting intervals (D1, D2), [D2, D3), [D3, ∞), continue to execute S403.

[0080] In some implementations, if the activation count value does not belong to any of the multiple counting intervals, the activation count value is increased by 1.

[0081] S403, determine whether the preset queue is full. If not, continue to execute S404; if yes, execute S405.

[0082] The queue is used to store row addresses that need to execute RHR, and there is no intersection between the multiple counting intervals.

[0083] Optionally, the above queue can be a FIFO queue. Among them, the FIFO queue is a queue that is executed in order. The instruction that enters the queue first is completed and retired first, and then the second instruction is executed. The following are some important parameters of FIFO:

[0084] Width: refers to the data bits of a FIFO read or write operation, such as 8 bits, 16 bits, 32 bits, etc.

[0085] Depth: refers to how many N-bit data a FIFO can store (if the width is N). For example, if a FIFO with a width of 8 bits has a depth of 5, it can store 5 8-bit data, and if the depth is 12, it can store 12 8-bit data.

[0086] Full flag: A signal sent by the FIFO status circuit when the FIFO is full or about to be full, to prevent the FIFO write operation from continuing to write data into the FIFO and causing an overflow.

[0087] Empty flag: A signal sent by the FIFO status circuit when the FIFO is empty or is about to be empty, to prevent the FIFO read operation from continuing to read data from the FIFO and causing invalid data to be read (underflow).

[0088] Read clock: The clock followed by the read operation, data is read at each clock edge.

[0089] Write clock: The clock followed by the write operation, data is written at each clock edge.

[0090] Read pointer: points to the next read address and automatically increases by 1 after reading.

[0091] Write pointer: points to the next address to be written, and automatically increases by 1 after writing.

[0092] Among them, the read and write pointer is actually the read and write address, but this address cannot be selected arbitrarily, but is continuous. In the actual operation of FIFO, its data full flag can control the continued writing of data, and the empty flag can control the reading of data.

[0093] Exemplarily, in some embodiments, if the activation count value belongs to any one of the counting intervals (D1, D2), [D2, D3), [D3, ∞), then it is possible to determine whether the queue is full by detecting whether the FIFO status circuit sends a full flag signal. Specifically, if it is detected that the FIFO status circuit sends a "full flag" signal, it is determined that the queue is full; if it is not detected that the FIFO status circuit sends a "full flag" signal, it is determined that the queue is not full.

[0094] S404: Put the row address into the queue, determine the range of victim row addresses corresponding to the row address according to the target count interval to which the activation count value belongs, and refresh the victim row address.

[0095] In some embodiments, a correspondence between each counting interval and the range of the victim row address can be pre-established. For example, the range of the victim row address corresponding to the counting interval (D1, D2) is "±1", the range of the victim row address corresponding to the counting interval [D2, D3) is "±1, ±2", and the range of the victim row address corresponding to the counting interval [D3, ∞) is "±1, ±2, ±3". After determining the target counting interval to which the above activation count value belongs, the range of the victim row address corresponding to the above row address can be determined based on the correspondence.

[0096] For example, when the target counting interval to which the above-mentioned activation count value belongs is (D1, D2), the range of the victim row address corresponding to the above-mentioned row address is determined to be "±1", and the first word line on both sides of the above-mentioned row address is refreshed; when the target counting interval to which the above-mentioned activation count value belongs is [D2, D3), the range of the victim row address corresponding to the above-mentioned row address is determined to be "±1, ±2", and the first and second word lines on both sides of the above-mentioned row address are refreshed; when the target counting interval to which the above-mentioned activation count value belongs is [D3, ∞), the range of the victim row address corresponding to the above-mentioned row address is determined to be "±1, ±2, ±3", and the first, second, and third word lines on both sides of the above-mentioned row address are refreshed; and so on.

[0097] S405: Execute one of the preset operations, where the preset operation includes adding 1 to the activation count value.

[0098] In some implementations, when the queue is full, the activation count value may be increased by 1, and then the activation count value of the row address may be accumulated, and the row address may be placed in the queue when the queue is not full.

[0099] The refresh method provided in the embodiment of the present disclosure can prevent the activation count values ​​of multiple row addresses from reaching the counting threshold at the same time by setting multiple counting intervals, thereby effectively resisting multi-address same-frequency attacks; at the same time, according to the counting interval in which the activation count value of the row address is located, the range of the victim row address corresponding to the row address is determined and the victim row address is refreshed, thereby preventing the situation where some victim row addresses cannot be refreshed in time, further ensuring the stability of the memory.

[0100] Based on the contents described in the above embodiments, in some embodiments of the present disclosure, the above multiple counting intervals may be pre-determined in the following manner:

[0101] Determine the number of victim row addresses adjacent to the row address when the row address of the memory is activated different times within a preset time length; determine the above-mentioned multiple counting intervals based on the range of the number of activation times of the row address within the above-mentioned preset time length when the number of victim row addresses adjacent to the above-mentioned row address is multiple preset values.

[0102] In some embodiments, the memory can be pre-tested for reads and writes, and after activating any row address for different numbers of times within a preset time period, the number of victim row addresses adjacent to the row address is determined, and then the multiple counting intervals are determined based on the range of activation times of the row address within the preset time period when the number of victim row addresses adjacent to the row address is multiple preset values.

[0103] The preset value may include 2, 4, 6, etc., which is not limited in the embodiment of the present disclosure. It can be understood that when the preset value is 2, the victim row address range should be "±1".

[0104] Exemplarily, in some embodiments, assuming that when the number of activation times of the above-mentioned row address within the above-mentioned preset time length is greater than D1 and less than D2, the number of victim row addresses adjacent to the row address is 2; when the number of activation times of the above-mentioned row address within the above-mentioned preset time length is greater than or equal to D2 and less than D3, the number of victim row addresses adjacent to the row address is 4; when the number of activation times of the above-mentioned row address within the above-mentioned preset time length is greater than or equal to D3, the number of victim row addresses adjacent to the row address is 6, then the following 3 counting intervals can be determined: (D1, D2), [D2, D3) and [D3, ∞).

[0105] The refresh method provided in the embodiment of the present disclosure determines the above-mentioned multiple counting intervals by determining the number of victim row addresses adjacent to the row address when the row address is activated different times within a preset time length. Compared with the method of using a single threshold in the related art, it can help resist multi-address same-frequency attacks.

[0106] In some embodiments of the present disclosure, the above-mentioned multiple counting intervals may also be pre-determined in the following manner:

[0107] The process parameters of the memory are obtained, and the plurality of counting intervals are determined according to the process parameters, wherein the process parameters include the capacitance of the capacitor in each storage unit of the memory and / or the distance between adjacent word lines in the memory.

[0108] It is understandable that the closer the distance between adjacent word lines is, the easier it is to cause leakage of capacitors at adjacent addresses; and the smaller the capacity of the capacitor in the storage unit is, the easier it is for the storage unit to lose data due to the loss of charge in the capacitor. Therefore, the process parameters of the memory can be used to set multiple counting intervals for the memory. For example, assuming that the memory is set with three counting intervals (D1, D2), [D2, D3) and [D3, ∞), the closer the distance between adjacent word lines is and the smaller the capacity of the capacitor in the storage unit is, the smaller the values ​​of D1, D2 and D3 are.

[0109] In other implementations, the plurality of counting intervals may also be determined based on a ratio between a process parameter of the memory and a default parameter, and a hammer condition corresponding to the default parameter, such as a counting interval setting condition.

[0110] The refresh method provided in the embodiment of the present disclosure determines the above-mentioned multiple counting intervals according to the process parameters of the memory. Compared with the method of using a single threshold in the related art, it can help resist multi-address same-frequency attacks.

[0111] In some embodiments of the present disclosure, the memory includes a plurality of word lines, the plurality of word lines include edge word lines and non-edge word lines; wherein the edge word line is at least one word line located at an edge position among the plurality of word lines, and the non-edge word line is a word line among the plurality of word lines except the edge word line. In some implementations, the plurality of counting intervals may also be pre-determined in the following manner:

[0112] A plurality of first counting intervals corresponding to edge word lines and a plurality of second counting intervals corresponding to non-edge word lines are determined, wherein the first counting intervals and the second counting intervals corresponding to the same range of victim row addresses do not completely overlap.

[0113] In some implementations, the first counting interval and the second counting interval corresponding to the same range of victim row addresses may not completely overlap and may intersect, but may not completely overlap, that is, the left endpoints or the right endpoints of the two intervals may not be completely the same.

[0114] It is understandable that the edge word lines and the non-edge word lines are distributed at different locations in the memory, and therefore are subject to different row hammering effects. For example, the edge word lines are more susceptible to row hammering than the non-edge word lines.

[0115] Optionally, in some implementations, the minimum value of the first counting interval corresponding to the same range of victim row addresses is smaller than the minimum value of the second counting interval.

[0116] In some embodiments, when the activation count value of the currently activated row address of the memory within a preset time length is obtained, it is first determined whether the currently activated row address belongs to an edge word line or a non-edge word line. If the currently activated row address is the row address corresponding to the edge word line, it is determined whether the above activation count value belongs to any one of the above multiple first counting intervals. If so, it is determined whether the preset queue is full. If not, the above activation count value is increased by 1. If the currently activated row address is the row address corresponding to the non-edge word line, it is determined whether the above activation count value belongs to any one of the above multiple second counting intervals. If so, it is determined whether the preset queue is full. If not, the above activation count value is increased by 1.

[0117] The refresh method provided in the embodiment of the present disclosure can help the edge word lines and non-edge word lines resist multi-address same-frequency attacks by setting a plurality of differentiated counting intervals for the edge word lines and the non-edge word lines respectively.

[0118] In some embodiments of the present disclosure, when obtaining the activation count value of the currently activated row address of the memory within a preset time length, if the activation count value belongs to any counting interval of multiple counting intervals that exceed the row hammer threshold, it is determined whether the preset queue is full; when the queue is full, it can be determined whether the target counting interval to which the above-mentioned activation count value belongs is the counting interval with the largest count value among the above-mentioned multiple counting intervals; if the above-mentioned target counting interval is not the counting interval with the largest count value, the activation count value is increased by 1; if the target counting interval is the counting interval with the largest count value, a queue overflow alarm message is output.

[0119] Exemplarily, taking the above-mentioned multiple counting intervals as (D1, D2), [D2, D3), [D3, ∞) as examples, when the above-mentioned queue is full, if the target counting interval to which the above-mentioned activation count value belongs is (D1, D2) or [D2, D3), then the above-mentioned activation count value in the corresponding activation command counter can be increased by 1, and the activation count value of the above-mentioned row address can continue to be counted; if the target counting interval to which the above-mentioned activation count value belongs is [D3, ∞), then the queue overflow alarm information is output.

[0120] In some implementations, a controller corresponding to the memory may receive the alarm information, identify the currently received memory access instruction (read and write instruction) as a malicious attack instruction, and perform a shielding action.

[0121] It can be understood that when the above-mentioned queue is full, if the target counting interval to which the above-mentioned activation count value belongs is not the counting interval with the largest counting value among the above-mentioned multiple counting intervals, it can be considered that although the above-mentioned row address is subjected to row hammering, the range of damaged row addresses is small. In this case, the above-mentioned activation count value can be increased by 1, and the activation count value of the above-mentioned row address continues to be counted, and the above-mentioned row address is placed in the above-mentioned queue when the above-mentioned queue is not full; if the target counting interval to which the above-mentioned activation count value belongs is the counting interval with the largest counting value, it can be considered that the above-mentioned row address is subjected to severe row hammering, and the range of damaged row addresses is large, so the alarm information can be overflowed in time for the storage controller used to control the memory to perform adaptive processing or for other modules inside the memory for avoiding attacks to perform adaptive actions.

[0122] In some embodiments, reference may be made to Figure 2 The memory may include a selector and a row decoder. When the activation count value belongs to any one of the plurality of count intervals, if the queue is not full, the row address output by the selector is obtained, and the obtained row address is put into the queue as the attack row address.

[0123] It is understandable that the selector can send each row address output to the queue, but during the operation of the memory, only when the activation count value of the currently activated row address within the preset time period belongs to any of the multiple count intervals that exceed the row hammer threshold, and the queue is not full, the queue will directly enter the currently received row address, so that there is no need to rely on other circuits to obtain the row address, thereby simplifying the memory refresh circuit and reducing the layout area of ​​the memory. In some embodiments, the row address output by the selector can be latched on a certain path.

[0124] In some embodiments, when the above-mentioned queue is not full, the attack row address can be placed in the queue, and a refresh range identifier is added to the above-mentioned attack row address based on the target counting interval to which the above-mentioned activation count value belongs and the range of victim row addresses corresponding to each counting interval. The refresh range identifier is used to indicate that the 2n victim row addresses adjacent to the above-mentioned attack row address need to perform a refresh operation; wherein n is a positive integer, and the value of n is related to the above-mentioned target counting interval.

[0125] In some embodiments, the 2n victim row addresses include n first victim row addresses and n second victim row addresses; wherein the n first victim row addresses are located on one side of the attack row address, and the n second victim row addresses are located on the other side of the attack row address.

[0126] In some implementations, the victim row address generation module may generate a victim row address corresponding to the attack row address based on the attack row address in the queue and a refresh range identifier corresponding to the attack row address.

[0127] Reference Figure 5 , Figure 5 The present invention is a schematic diagram of a step flow of a refreshing method provided in an embodiment of the present invention.

[0128] In some implementations, three threshold levels are set according to different influence ranges of different activation times on adjacent word lines, namely D1, D2, and D3, where D3>D2>D1.

[0129] When the row address j is activated, the activation count value of the AC corresponding to the row address j within a preset time length is obtained.

[0130] Determine whether the AC count value is greater than or equal to D3. If the AC count value is greater than or equal to D3, determine whether the queue is full; if the AC count value is less than D3, determine whether the AC count value is greater than or equal to D2. If the result of the judgment is that the queue is full, output a queue overflow alarm message; if the result of the judgment is that the queue is not full, put the row address j into the above queue, and set the flag 3, indicating that the range of the victim row address corresponding to the row address is "±1, ±2, ±3".

[0131] Furthermore, if the AC count value is less than D3 and greater than or equal to D2, it is determined whether the queue is full; if the AC count value is less than D2, it is determined whether the AC count value is greater than or equal to D1. If the result of the determination is that the queue is full, the AC count value is increased by 1; if the result of the determination is that the queue is not full, the row address j is placed in the above queue, and the flag 2 is set, indicating that the range of the victim row address corresponding to the row address is "±1, ±2".

[0132] Furthermore, if the AC count value is less than D2 and greater than or equal to D1, it is determined whether the queue is full; if the AC count value is less than D1, the AC count value is increased by 1. If the result of the determination is that the queue is full, the AC count value is increased by 1; if the result of the determination is that the queue is not full, the row address j is placed in the above queue, and the flag 1 is set, indicating that the range of the victim row address corresponding to the row address is "±1".

[0133] In some embodiments, after the row address is stored in the queue, the AC corresponding to the row address j is cleared. It is understandable that if the AC count value of a row address reaches the specified threshold after the selector outputs the row address, it can be known that the row address whose AC count value reaches the specified threshold is the row address output by the selector, so the row address sent to the queue by the selector can be directly written into the queue; at the same time, since the victim row address corresponding to the attack row address written into the queue will be refreshed later to eliminate the influence caused by the row hammer effect, it is necessary to clear the AC count value of the attack row address written into the queue.

[0134] It is understandable that the number of levels of the above thresholds varies depending on the memory process. In some embodiments, the number of levels of the above thresholds may be greater than Figure 5 The level 3 in the figure may also be less than level 3, and will not be listed one by one in the embodiments of the present disclosure.

[0135] Based on the contents described in the above embodiments, a refreshing device is also provided in the embodiments of the present disclosure. Figure 6 , Figure 6 Schematic diagram of a program module of a refresh device provided in an embodiment of the present disclosure. In some embodiments, the refresh device 60 includes:

[0136] The acquisition module 601 is used to acquire the activation count value of the row address currently activated by the memory within a preset time length.

[0137] Determination module 602 is used to determine whether a preset queue is full if the activation count value belongs to any one of multiple count intervals that exceed a row hammer threshold; wherein the queue is used to store row addresses that require a row hammer refresh operation, and there is no intersection between the multiple count intervals.

[0138] Processing module 603 is used to put the row address into the queue when the queue is not full, and determine the range of the victim row address corresponding to the row address and refresh the victim row address according to the target counting interval to which the activation count value belongs; when the queue is full, perform one of the preset operations, and the preset operation includes adding 1 to the activation count value.

[0139] The refresh device provided in the embodiment of the present disclosure can prevent the activation count values ​​of multiple row addresses from reaching the counting threshold at the same time by setting multiple counting intervals, thereby effectively resisting multi-address same-frequency attacks; at the same time, according to the counting interval in which the activation count value of the row address is located, the range of the victim row address corresponding to the row address is determined and the victim row address is refreshed, thereby preventing the situation where some victim row addresses cannot be refreshed in time, further ensuring the stability of the memory.

[0140] In some embodiments, the above device further comprises a preprocessing module, which is used to:

[0141] Determine the multiple counting intervals; wherein, when the number of activation times of the row address within the preset time length belongs to different counting intervals, the range of victim row addresses corresponding to the row address is different.

[0142] In some embodiments, the preprocessing module is used to:

[0143] determining the number of victim row addresses adjacent to the row address when the row address is activated for different times within the preset time period;

[0144] The multiple counting intervals are determined according to a range of activation times of the row address within the preset time length when the number of victim row addresses adjacent to the row address is multiple preset values.

[0145] In some embodiments, the preprocessing module is used to:

[0146] Acquiring process parameters of the memory, wherein the process parameters include the capacity of a capacitor in each storage unit of the memory and / or the distance between adjacent word lines in the memory;

[0147] The plurality of counting intervals are determined according to the process parameters.

[0148] In some implementations, the processing module 603 is further configured to:

[0149] According to the target counting interval to which the activation count value belongs and the range of victim row addresses corresponding to each counting interval, a refresh range identifier is added to the row address, and the refresh range identifier is used to indicate that 2n victim row addresses adjacent to the row address need to perform a refresh operation; n is a positive integer, and the value of n is related to the target counting interval.

[0150] In some embodiments, the memory includes a plurality of word lines, the plurality of word lines include edge word lines and non-edge word lines; the edge word line is at least one word line located at an edge position among the plurality of word lines, and the non-edge word line is a word line among the plurality of word lines except the edge word line; the pre-processing module is used to:

[0151] Determine a plurality of first counting intervals corresponding to the edge word lines and a plurality of second counting intervals corresponding to the non-edge word lines;

[0152] The first counting interval and the second counting interval corresponding to the same range of victim row addresses do not completely overlap.

[0153] In some implementations, the processing module 603 is configured to:

[0154] Determining whether the target counting interval is a counting interval with a maximum counting value;

[0155] If the target counting interval is not the counting interval with the largest counting value, adding 1 to the activation counting value;

[0156] If the target counting interval is the counting interval with the largest counting value, the queue overflow alarm information is output.

[0157] In some embodiments, the memory includes a selector and a row decoder; the selector is used to output a victim row address or an activated row address to the row decoder;

[0158] The processing module 603 is used to:

[0159] The row address output by the selector is obtained, and the obtained row address is put into the queue.

[0160] It should be noted that the specific execution contents of the acquisition module 601, the determination module 602 and the processing module 603 in the embodiment of the present disclosure can refer to the relevant contents in the above method embodiment, which will not be repeated here.

[0161] It should be understood that the functional modules in the various embodiments of the present disclosure may be integrated into one processing unit, or each module may exist physically separately, or two or more modules may be integrated into one unit. The above-mentioned modules may be implemented in the form of hardware or in the form of hardware plus software functional units.

[0162] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present disclosure, rather than to limit them. Although the present disclosure has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein by equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present disclosure.

Claims

1. A refreshing method, characterized in that: The method comprises: Obtaining the activation count value of the row address currently activated by the memory within a preset time length; If the activation count value belongs to any one of the multiple count intervals that exceeds the row hammer threshold, determining whether a preset queue is full; wherein the queue is used to store the row address for which a row hammer refresh operation needs to be performed, and there is no intersection between the multiple count intervals; When the queue is not full, the row address is put into the queue, and according to the target counting interval to which the activation count value belongs, a range of victim row addresses corresponding to the row address is determined and the victim row addresses are refreshed; When the queue is full, one of the preset operations is performed, wherein the preset operation includes increasing the activation count value by 1.

2. The method according to claim 1, characterized in that The method further comprises: determining the plurality of counting intervals; When the number of activations of the row address within the preset time period belongs to different counting intervals, the ranges of victim row addresses corresponding to the row address are different.

3. The method according to claim 2, characterized in that The determining of the plurality of counting intervals comprises: determining the number of victim row addresses adjacent to the row address when the row address is activated for different times within the preset time period; The multiple counting intervals are determined according to a range of activation times of the row address within the preset time length when the number of victim row addresses adjacent to the row address is multiple preset values.

4. The method according to claim 2, characterized in that: The determining of the plurality of counting intervals comprises: Acquiring process parameters of the memory, wherein the process parameters include the capacity of a capacitor in each storage unit of the memory and / or the distance between adjacent word lines in the memory; The plurality of counting intervals are determined according to the process parameters.

5. The method according to claim 2, characterized in that: The method further comprises: According to the target counting interval to which the activation count value belongs and the range of victim row addresses corresponding to each counting interval, a refresh range identifier is added to the row address, and the refresh range identifier is used to indicate that 2n victim row addresses adjacent to the row address need to perform a refresh operation; n is a positive integer, and the value of n is related to the target counting interval.

6. The method according to claim 2, characterized in that The memory includes a plurality of word lines, wherein the plurality of word lines include edge word lines and non-edge word lines; The edge word line is at least one word line located at an edge position among the plurality of word lines, and the non-edge word line is a word line among the plurality of word lines except the edge word line; The determining of the plurality of counting intervals comprises: Determine a plurality of first counting intervals corresponding to the edge word lines and a plurality of second counting intervals corresponding to the non-edge word lines; The first counting interval and the second counting interval corresponding to the same range of victim row addresses do not completely overlap.

7. The method according to claim 1, characterized in that The performing of the preset operation includes: Determining whether the target counting interval is a counting interval with a maximum counting value; If the target counting interval is not the counting interval with the largest counting value, adding 1 to the activation counting value; If the target counting interval is the counting interval with the largest counting value, the queue overflow alarm information is output.

8. The method according to claim 1, characterized in that The memory comprises a selector and a row decoder; the selector is used to output a victim row address or an activated row address to the row decoder; The step of placing the row address into the queue comprises: The row address output by the selector is obtained, and the obtained row address is put into the queue.

9. A refreshing device, characterized in that: The device comprises: An acquisition module, used to acquire an activation count value of a row address currently activated by the memory within a preset time length; A determination module, configured to determine whether a preset queue is full if the activation count value belongs to any one of a plurality of count intervals exceeding a row hammer threshold; wherein the queue is used to store row addresses for which a row hammer refresh operation needs to be performed, and the plurality of count intervals have no intersection; A processing module is used to put the row address into the queue when the queue is not full, and determine the range of the victim row address corresponding to the row address and refresh the victim row address according to the target count interval to which the activation count value belongs; when the queue is full, perform one of the preset operations, and the preset operation includes adding 1 to the activation count value.

10. The device according to claim 9, characterized in that The device also includes a pre-processing module, which is used to: determining the plurality of counting intervals; When the number of activations of the row address within the preset time period belongs to different counting intervals, the ranges of victim row addresses corresponding to the row address are different.

Citation Information

Patent Citations

  • Apparatuses and methods for tracking victim rows

    CN112017712A

  • Memory device and operating method thereof

    CN114974336A

  • Semiconductor memory device and memory system including same

    CN114974344A

  • Method and circuit for protecting DRAM memory device from ramming effect

    CN116018645A

  • Semiconductor memory device and operating method thereof

    CN116107921A