WO2022139057A1 - 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 - Google Patents
카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 Download PDFInfo
- Publication number
- WO2022139057A1 WO2022139057A1 PCT/KR2021/000326 KR2021000326W WO2022139057A1 WO 2022139057 A1 WO2022139057 A1 WO 2022139057A1 KR 2021000326 W KR2021000326 W KR 2021000326W WO 2022139057 A1 WO2022139057 A1 WO 2022139057A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- refresh
- dram
- counter
- row
- hammer
- Prior art date
Links
- 230000002265 prevention Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000004913 activation Effects 0.000 claims description 55
- 238000001994 activation Methods 0.000 claims description 55
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 claims description 24
- 229910021389 graphene Inorganic materials 0.000 claims description 24
- 230000005574 cross-species transmission Effects 0.000 claims description 11
- 239000012190 activator Substances 0.000 claims description 3
- 238000005265 energy consumption Methods 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 description 27
- 239000000872 buffer Substances 0.000 description 24
- 230000000694 effects Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000005096 rolling process Methods 0.000 description 10
- 230000014759 maintenance of location Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000001186 cumulative effect Effects 0.000 description 6
- 230000003213 activating effect Effects 0.000 description 5
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 241000665848 Isca Species 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1636—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40603—Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
Definitions
- the present invention relates to a selective row hammer refresh device and method for counter-based row hammer prevention, and more specifically, to a new command refresh management (RFM) applied to the latest dynamic random access memory (DRAM) standards such as DDR5 and LPDDR5. ) when applying a command, to an apparatus and method for reducing the energy consumption of DRAM by improving counter-based algorithms that solve the Row Hammer problem.
- RFM new command refresh management
- Row hammer is a phenomenon in which data of rows physically adjacent to a corresponding row are unintentionally changed when one DRAM row is continuously accessed and operated in DRAM.
- the DRAM performs a refresh operation to restore data.
- the low hammer prevention technology is a technology that performs refreshing on a dangerous row at an appropriate time according to a certain algorithm or methodology in order to prevent the low hammer phenomenon.
- a module for the low hammer prevention technology may be located inside a DRAM chip, a register clock driver (RCD), a memory controller, or the like.
- Refresh Management is an interface that gives DRAM additional time to prevent low hammer in a situation where the low hammer phenomenon is deepened.
- the memory controller counts the number of Activate (ACT) commands for each DRAM bank, and sends a refresh management command at a certain period to the number, and at each time, the DRAM can perform necessary refresh according to an appropriate row hammer prevention technique. It has been applied since the LPDDR5 and DDR5 standards.
- Patent Literature US Patent Publication US2019/0228813 (published on July 25, 2019)
- Non-Patent Document 1 Y. Kim., et al. “Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors,” in ISCA, 2014.
- Non-Patent Document 2 M. Son., et al. “Making DRAM Stronger against Row Hammering,” in Proceedings of the 54th Annual Design Automation Conference, 2017.
- Non-Patent Document 3 J. M. You., et al. “MRLoc: Mitigating Row-hammering Based on Memory Locality,” in Proceedings of the 56th Annual Design Automation Conference, 2019.
- Non-Patent Document 4 E. Lee., et al. “TWiCe: Preventing Row-hammering by Exploiting Time Window Counters,” in ISCA, 2019.
- Non-Patent Document 5 Y. Park., et al. “Graphene: Strong yet Lightweight Row Hammer Protection,” in MICRO, 2020.
- Non-Patent Document 6 S. M. Seyedzadeh., et al. “Mitigating Wordline Crosstalk Using Adaptive Trees of Counters,” in ISCA, 2018
- Non-Patent Document 7 I. Kang., et al. “CAT-TWO: Counter-Based Adaptive Tree, Time Window Optimized for DRAM Row-Hammer Prevention,” IEEE Access, 2020
- An object of the present invention which was devised to solve the above-mentioned problems, is to maximize energy efficiency by performing refresh only when there is a great need through determination in each refresh management command, a counter-based selective low hammer refresh device for preventing low hammer and to provide a method therefor.
- the selective row hammer refresh device for counter-based row hammer prevention of the present invention for achieving the above object includes a plurality of first counters issued per DRAM bank or sub-bank or bundle of several DRAM banks (hereinafter, DRAM bank); An activator command generating unit that transmits an activation command (ACT Command) for causing a specific DRAM bank to perform activation to DRAM, and increments a first counter value of a specific DRAM bank in which the activation is performed by 1,
- RAAIMT refresh management threshold value
- RFM refresh management
- RH refresh row hammer refresh
- the row hammer prevention control unit of the DRAM a memory controller including a refresh management command generator to be sent to; and a second counter present in the DRAM and counting the number of activations (ACT) of the DRAM bank, and a deterministic row hammer prevention algorithm, wherein when the refresh management command is received, the number
- the second counter is located inside the DRAM or in a register clock driver (RCD) or logic die.
- RCD register clock driver
- a memory controller transmits an activating command to a DRAM to cause a specific DRAM bank to activate, and the memory controller incrementing a first counter value of the specific DRAM bank by one among a plurality of first counters issued per DRAM bank or sub-bank or a bundle of several DRAM banks (hereinafter referred to as a DRAM bank);
- the memory controller sends an RFM command for performing a low hammer refresh (RH refresh) on the corresponding DRAM bank, the critical low sending to a raw anti-hammer control unit of DRAM to perform an anti-hammer algorithm;
- the row hammer prevention control unit of the DRAM receives the RFM command, comparing the value of a second counter existing in the DRAM that counts the number of ACTs of the corresponding DRAM bank with a preset reference value;
- the deterministic raw hammer prevention algorithm includes TWiCe, Graphene, CBT, and CAT-TWO algorithms as counter-based raw hammer prevention algorithms.
- step (d) when the row hammer refresh is performed in step (d), in the case of TWiCe, CBT, and CAT-TWO, the second counter value of the row on which the row hammer refresh is performed is initialized to 0, and in the case of Graphene, the low hammer refresh is performed. It is preferable to initialize the second counter of the performed row as a spillover counter.
- the reference value is preferably a relative value that is a difference between a maximum value and a spillover counter value (minimum value) among the second counter values of each DRAM bank.
- Reducing the number of refreshes in Row Hammer Protection Technology can provide significant energy benefits, which is the act of activating and precharging (PRE) two or more DRAM rows, which is the energy consumption of Low Hammer Protection Technology. This is because refresh occupies a large part of it.
- FIG. 1 is a structural diagram of a portion in which information of a DRAM is stored
- FIG. 2 is an upper-level structural diagram of a memory system
- FIG. 3 is a configuration diagram of a memory bank
- FIG. 5 is a conceptual flowchart of a selective row hammer refresh method according to an embodiment of the present invention.
- FIG. 6 is a detailed block diagram of the selective low hammer refreshing device of the present invention.
- FIG. 7 is a flowchart embodying the selective low hammer refresh flow chart of the present invention of FIG. 5;
- FIG. 9 is a flowchart in which the selective low hammer refresh method of the present invention is applied to CAT-TWO;
- FIG. 11 is a flowchart to which the selective low hammer refresh method of the present invention is applied.
- MC Memory Controller
- memory request It refers to the processor requesting a read or write to a specific address.
- Raw buffer A part of a DRAM device (chip or die) that buffers so that it can be read or written in units of one row (page). There is one per DRAM bank.
- Activate Activate A DRAM operation that opens (connects) a wordline while a bitline in a DRAM bank is precharged so that the values of cells can be read up into a row buffer.
- ACT command active command
- PREcharge Precharge
- PRE command Precharge command
- channel Refers to a unit connecting an MC and DRAM devices.
- One MC may be connected to DRAM devices through one or more channels, and one channel may be connected to several dual in-line memory modules (DIMMs).
- rank The structural unit of DRAM.
- a DIMM consists of one or fewer ranks.
- bank Bank
- Each bank can operate independently, but it shares a data path and a control path that are connected to the outside of the device and other banks in the rank.
- a bank is made up of several (most recently hundreds of thousands of) rows.
- DRAM chip DRAM chip
- One rank can be divided into several DRAM chips to operate, and through this, high bandwidth and capacity can be achieved.
- refresh The action of rewriting the cell's value to the original 0 or 1 written.
- normal refresh normal refresh, auto refresh
- retention time Retention time
- refresh command A command that causes the memory controller to perform a normal refresh to the DRAM and gives it tRFC time for execution.
- refresh interval time Refresh Interval time; tREFI
- refresh cycle time Refresh Cycle time; tRFC
- Raw Hammer Refresh Apart from normal refresh, it refreshes damage low Low Hammer Prevention Technology
- the memory controller gives the DRAM a certain amount of time (time margin) during which other commands are not given so that the DRAM can automatically prevent row hammer.
- Raw Hammer Prevention Algorithm RH prevention scheme or RH prevention algorithm
- Stochastic Low Hammer Prevention Algorithm Probabilistic RH prevention scheme
- a random target is selected according to a certain methodology, and the target is Perform hammer refresh. 100% Low Hammer in a stochastic way Prevention is generally not possible.
- Deterministic Raw Hammer Prevention Algorithm (Deterministic counter-based RH prevention scheme) A target with a lot of activations is selected according to a certain methodology, and low hammer refresh is performed on the target. When selecting a target, it is selected based on a counter that counts the number of actbaits.
- refresh management command (Refresh Management command; RFM command) A command sent from the memory controller to the DRAM. During the time given through can refresh management time (Refresh Management time; tRFM) Whenever a refresh management command is sent to the DRAM time given.
- RAM Refresh Management time
- Each bank (or sub-bank) exists in the memory controller. counter.
- Refresh Management Threshold (RAA Initial Management Threshold) In the DDR5 and LPDDR5 specifications, the number of activations that is the standard for sending the refresh management command. When the value of the RAA counter reaches RAAIMT, a refresh management command is sent. #ofTableEntry The number of entries in the counter table of a counter-based algorithm. Adaptive Low Hammer Refresh Threshold (SelectiveParam) The parameter value that is the basis for the optional low hammer refresh. MaxActs In counter-based algorithms, this occurs during the initialization cycle of the table. The maximum number of activations that can be performed. Constants, not variables.
- a memory controller exists in the processor, which is connected to the memory, and gives detailed instructions to the DRAM to process read and write memory requests from the processor.
- Capacitor cells are in a checkerboard format, using wordlines and bitlines to access them.
- DRAM stores one bit of information in one capacitor cell, and these cells are arranged in a tiled manner to form rows and columns. All cells in one row are connected to the same word line, and all cells in one column are connected to the same bit line. If the address value of the memory request from the memory controller is known, which row/column cell to access, the decoder can determine.
- cell information In order to read or write each cell, cell information must be loaded into a row buffer. To do this, first, the voltage of all bit lines is made about 0.5Vdd, an intermediate value between 0 (Ground; GND) and Vdd, through precharge, and the row buffer is invalidated. Thereafter, through activation, a wordline of a row to which a cell having desired information belongs is connected, and voltage information values of the cell are reflected in a bitline. Through this process, desired cell information 0 or 1 (Vdd) values are loaded into the row buffer in a row unit.
- Row buffers are page-wise (typically 8Kb per device), and rows of cells are also organized in page-wise sizes. Since the unit of memory request is a cache line (usually 64B), more information than required by one memory request is loaded into the row buffer. Accordingly, information required for the next consecutive memory request may already be loaded in the row buffer.
- FIG. 2 is a structural diagram of an upper-level structure of a memory system
- FIG. 3 is a configuration diagram of a memory bank.
- the memory system includes one or more channels.
- One channel connects the memory controller and one or two DIMMs (dual in-line memory modules).
- One channel consists of one or more ranks.
- One rank again consists of several banks, and each bank performs memory access independently of each other.
- one rank is divided into banks.
- one rank consists of several DRAM chips (DRAM devices in FIG. 1) in the case of a DDRx interface using a DIMM form factor.
- DRAM devices in FIG. 1 DRAM devices in FIG. 1
- each DRAM chip is responsible for 1/N of the total bandwidth and capacity in rank and bank units.
- one bank can use only one row buffer at a maximum at a specific moment, and one bank can buffer only one row at a time.
- the DRAM plays a passive role.
- the memory controller executes detailed operations such as precharge and activate with the precharge command and active command, while knowing all of the current row buffer status of the DRAM bank and the operating status (precharge, activate) of the DRAM. .
- This passive aspect of DRAM is connected to the additional need for a refresh management interface from the viewpoint of a time margin to be described later.
- a DRAM cell stores a value with a capacitor, and as time passes, the stored charge decreases due to leakage current or the like, which causes a decrease in voltage, making it impossible to determine “0” or “1”. In this way, before the DRAM cell value is lost, the operation of rewriting 0 or 1 is called refresh. In order to refresh, as described in 1.1., if the cell values of the row to be refreshed are loaded into the row buffer through pre-charge and activation operations, the values in the cells are also refreshed to 0 or 1. Therefore, the energy required for one refresh is the energy required for "pre-charge + activation".
- the "retention time” is defined as the time until the value of a DRAM cell is lost and unreadable after being written as 0 or 1 once. Each cell in DRAM must be refreshed at least once before the retention time expires to maintain data integrity. To satisfy this, the memory controller periodically sends a refresh command to the DRAM to refresh all cells little by little (normal refresh).
- the memory controller sends one refresh command every Refresh Interval time (tREFI) (3.9 microseconds in DDR5), and gives DRAM a time equivalent to tRFC (295 nanoseconds in 16Gb DDR5 device) each time. , it is guaranteed that the memory controller does not send any other commands to that rank during this time. At this time, the DRAM uses this time to internally refresh several rows.
- the DRAM has to take advantage of the time for this periodically provided normal refresh, and ensure that refresh occurs at least once within the retention time of all cells.
- DDR4 where the same retention time or tREFW existed for all cells.
- tREFI was 7.8us and the refresh window time (tREFW) was 64ms, so the refresh command and the resulting tRFC are sent to the DRAM a total of 8192 times during tREFW. Since the total number of rows based on DDR4 was 2 to the 17th, in simple terms, DRAM had to refresh 16 rows at every normal refresh so that all cells could be refreshed more than once within tREFW or retention time.
- Nth the row hammer threshold
- Row hammer refresh is to refresh the damage row separately from the normal refresh. Through this, it is possible to initialize the effect of the low hammer that the corresponding damage row received until the time before the low hammer refresh.
- the memory controller may request the DRAM device to perform row hammer refresh on a specific row, or the DRAM device may detect a risk on its own and perform row hammer refresh on a specific row.
- Low hammer prevention technology is largely divided into how to secure a time margin for DRAM to perform low hammer refresh and how to determine when & where to perform low hammer refresh within the secured time margin (defined as an algorithm) ) can be divided and described in terms of
- the low hammer prevention technology works well, the low hammer bit flip phenomenon can be prevented from occurring.
- a time margin is required to perform the low hammer refresh.
- DRAM Due to the passive nature of DRAM, it may receive other tasks from the memory controller while the DRAM internally does a low-hammer refresh. In this case, the DRAM has to stop the raw hammer refresh and do what it received from the memory controller.
- DRAM does not do anything else, and it is necessary to secure a time margin for performing only low hammer refresh.
- the task to be performed was performed faster during the refresh cycle time (tRFC) guaranteed through the normal refresh, and the low hammer refresh was performed during the remaining time. This is called "refresh time margin stealing”.
- the given time margin is tRFC for every tREFI, and at this time, it is necessary to perform the low hammer refresh in the remaining time while speeding up the normal refresh operation.
- determining when and where to perform the raw hammer refresh is called the raw hammer prevention technology or the raw hammer prevention algorithm (RH prevention scheme/algorithm).
- the algorithm of the prevention technology can be largely divided into a probabilistic method (Non-Patent Documents 1 to 3) and a counter-based method (Non-Patent Documents 4 to 7) according to its underlying philosophy.
- the probabilistic method randomly selects a target according to a certain methodology, and performs low hammer refresh on the target. If the probability of selection is properly determined, safety can be guaranteed with a very high probability, although not deterministic for a particular low hammer threshold. For example, the probability that the low hammer problem will occur even once in a year in the DRAM device can be guaranteed to be less than 1%.
- the counter-based method tracks the number of times that the attack rows are activated by using a counter table, which mathematically guarantees deterministic safety for a specific Nth. Although there may be information that is missed while counting the number of counters small, even missing information is mathematically guaranteed to ensure that the activation number of adjacent attack rows of a damaged row does not exceed Nth.
- CBT/CAT-TWO Non-Patent Documents 6 and 7 first divides all DRAM rows into several groups forming a tree-type organization according to an activation pattern, and assigns a counter to each group. Counters that reach a leaf first during tree creation, or when all available counters are used, all counters, when an ACT occurs in a row, resets the counter of the group in that row. increase When the value of the counter of a group reaches a certain value considered to be a risk of row hammer, row hammer refresh is performed to refresh all rows of the group and two adjacent rows. The tree created for each preset reset time window is initialized, and the process described above is repeated.
- TWiCe (Non-Patent Document 4) has a counter table, and each counter takes a specific row and counts the number of activations. At this time, when an activate command for a row that does not exist in the counter table is received, a corresponding row is newly allocated to an entry with a counter value of 0. TWiCe initializes counter values of rows in which activation occurs relatively infrequently according to a predetermined criterion at regular intervals. During this operation, when the value of the counter reaches a specific value considered to be a risk of row hammer, row hammer refresh is performed on rows belonging to the corresponding counter. The entire counter table is initialized for each preset reset time window, and the process described above is repeated.
- Graphene also has a counter table, so each counter takes a specific row and counts the number of activations. At this time, there is a separate counter called a spillover counter, and it always has the minimum value in the entire counter table. In this situation, if the row address of the generated activation exists in the table, the corresponding counter is incremented by 1. If the row does not exist in the table, the spillover counter value is compared with the counter value in the table. If there is none, the value of the spillover counter is incremented by 1. When the value of the counter reaches a certain value that is considered to be a risk of row hammer, row hammer refresh is performed on rows belonging to the corresponding counter. The entire counter table is initialized for each preset reset time window, and the process described above is repeated.
- the low hammer threshold was lowered.
- DDR3 low hammer was first released
- This situation causes a big problem in securing a time margin among the two items of low hammer prevention technology.
- the time provided by the normal refresh is limited to tRFC (295ns) every tREFI (3.9us based on DDR5), and the amount of stealing among them is also limited.
- the refresh management interface provides an additional time margin in place of the insufficient refresh time margin stealing without compromising the abstraction between the conventional memory controller and DRAM and the passive nature of DRAM.
- a time margin for row hammer refresh is provided for a certain amount of time.
- tRFM tRFM
- RAA counter
- RAAIMT RAAIMT
- FIG. 4 is a high-level structural diagram of a low hammer prevention technology on the refresh management interface.
- the reference value for which the refresh management command is sent from the memory controller to a specific DRAM is that the number of activations performed per DRAM bank (rolling cumulative activation counter value) is a reference value set by the DRAM device, refresh management Is the boundary value reached?
- a rolling cumulative activation counter that counts the number of activations for each bank. If any of these counters reaches the refresh management threshold, a refresh management command is sent to the corresponding bank, and the corresponding rolling cumulative activation counter is refreshed. The value decreases by the management boundary value.
- the rolling cumulative activation counter value is constantly decreased every normal refresh. Normal refresh time margin stealing seems to be a prerequisite, but it is not specified and is not necessarily introduced.
- the DRAM device only sets the refresh management threshold once and informs the memory controller. Based on this, the memory controller periodically sets the refresh management command and tRFM time margin, which is the time for DRAM to process it, while disconnected from the DRAM device situation. It is provided to DRAM devices.
- the problem with the low hammer prevention technology in the existing refresh management is that although the DRAM device can set the period, the memory controller continuously sends the refresh management command without specific information about the status of the low hammer prevention technology existing in the DRAM. If the low hammer refresh is performed each time, additional energy is consumed.
- An object of the present invention is to reduce additional energy consumption according to the row hammer refresh through the selective row hammer refresh method of the present invention.
- the selective low hammer refresh method according to the preferred embodiment of the present invention is limited to the deterministic counter-based low hammer prevention algorithm. Only when the need for low hammer refresh is large by reflecting the internal situation of the DRAM device, it is possible to use the given tRFM time margin to Hammer refresh is performed.
- the counter referred to herein does not mean the rolling accumulation activation counter (first counter) inside the memory controller, but the counter (second counter) of the deterministic counter-based lowhammer prevention algorithm in or near the DRAM.
- the performance degradation caused by the refresh management command being transmitted to the DRAM and the bank not performing normal operations such as activate/precharge/read/write during tRFM cannot be changed, but unnecessary energy consumption is can be prevented
- FIG. 5 is a conceptual flowchart of a selective row hammer refreshing method according to an embodiment of the present invention.
- determining whether the need for low hammer refresh is large is “refresh determination”.
- Row Hammer Refresh activates + precharges two DRAM rows, because Low Hammer Refresh accounts for a significant portion of the energy consumption of most low hammer prevention technologies imaginable.
- the low hammer prevention technology without application may have low energy efficiency by performing the low hammer refresh even in a situation where the necessity is small.
- the energy efficiency can be maximized by performing the refresh only when the necessity is great through determination in each refresh management command.
- a deterministic counter-based algorithm can prevent low hammer over a certain Nth criterion calculated mathematically. In this case, even if the selective low hammer refresh is applied, the corresponding criterion is not significantly affected in many cases, so it may be effective.
- the selective row hammer refresh method of the present invention is applicable to DRAM types including a refresh management interface in the future, including DDR5 and LPDDR5.
- the selective row hammer refresh method of the present invention is a row hammer prevention technology located in DRAM that utilizes refresh management, and may exist in a DRAM die or a register clock driver (RCD). (logic die) can also exist.
- RCD register clock driver
- FIG. 6 is a detailed block diagram of the selective row hammer refreshing device of the present invention.
- the selective row hammer refresh apparatus 100 of the present invention includes a memory controller 120 and a DRAM 140 .
- the memory controller 120 includes a plurality of first counters 122 , an activate command generator 124 , and a refresh management command generator 126 .
- a plurality of first counters 122 are issued per DRAM bank or subbank or bundle of several DRAM banks (hereinafter, DRAM bank).
- the activating command generating unit 124 transmits an activating command (ACT Command) for causing a specific DRAM bank to perform activation to the DRAM.
- ACT Command activating command
- the refresh management command generation unit 126 increments the first counter value of the specific DRAM bank in which activation is performed, and when the first counter value reaches the refresh management threshold value RAAIMT previously received from the DRAM, A refresh management (RFM) command for performing row hammer refresh (RH refresh) on the corresponding DRAM bank is sent to the row hammer prevention control unit of the DRAM.
- RFM refresh management
- the DRAM 140 includes a second counter 142 and a row hammer prevention control unit 144 .
- the second counter 142 is present in the DRAM and counts the number of activations (ACT) of the DRAM bank.
- the second counter 142 may be located inside the DRAM 140 , a register clock driver (RCD), or a logic die.
- RCD register clock driver
- the low hammer prevention control unit 140 performs the decisive low hammer prevention algorithm, but upon receiving the refresh management command, sets the value of the second counter 142, which counts the number of activations (ACT) of the corresponding DRAM bank until then, to a preset reference value. , and if the second counter value is less than the reference value, row hammer refresh is not performed in the corresponding DRAM bank. If the second counter value is greater than the reference value, the row hammer refresh is performed in the corresponding DRAM bank and then processed rows Initialize the second counter of 0 or a specific value.
- FIG. 7 is a flow chart embodying the selective row hammer refresh flow chart of the present invention of FIG. 5 .
- the memory controller 120 transmits, to the DRAM 140 , an activating command (ACT Command) for causing a specific DRAM bank to perform activation (step S120 ), and for each DRAM bank existing in the memory controller 120 , Among the issued plurality of first counters 122, the value of the first counter of the specific DRAM bank is incremented by 1 (step S130).
- ACT Command an activating command for causing a specific DRAM bank to perform activation
- the first counters 122 present in the memory controller 120 individually count the number of activations (ACT) of each DRAM bank.
- the memory controller 120 applies a low hammer refresh (RH refresh) to the corresponding DRAM bank.
- RH refresh low hammer refresh
- An RFM command to be executed is sent to the row hammer prevention control unit 144 of the DRAM (step S150).
- the raw hammer prevention control unit 144 of the DRAM is based on a deterministic raw hammer prevention algorithm.
- the deterministic raw hammer prevention algorithm includes any of TWiCe, Graphene, CBT, CAT-TWO algorithms, or any other counter-based raw hammer prevention algorithm.
- the row hammer prevention control unit 144 of the DRAM upon receiving the RFM command, compares the value of the second counter 142 of the DRAM, which counts the number of activations (ACT) of the corresponding DRAM bank up to that point, with a preset reference value (steps S160, S170).
- the reference value when the deterministic row hammer prevention algorithm is the Graphene algorithm is a relative value that is the difference between the maximum value and the spillover counter value (minimum value) among the second counter values of each DRAM bank.
- the row hammer prevention control unit 144 of the DRAM if the second counter value is less than the reference value, does not perform row hammer refresh in the corresponding DRAM bank, and the second counter value is the reference value If greater than that, after performing row hammer refresh in the corresponding DRAM bank, the second counter 142 of the processed row of the DRAM bank is initialized to 0 or a specific value (step S180).
- the second counter value of the row on which the row hammer refresh is performed is initialized to 0, and in the case of Graphene, the second counter value of the row on which the row hammer refresh is performed is initialized to 0.
- the counter 142 is initialized as a spillover counter.
- the DRAM 140 determines whether the reset window time according to the received refresh management (RFM) command has been reached (step S190), and if not reached, repeats steps S120 to S190, and when the reset window time is reached
- the second counter 142 is reset (step S110).
- the second counter reset specifically regenerates the counter tree of the second counter 142 in the case of the CAT-TWO algorithm, and resets the counter table of the second counter 142 in the case of the TWiCe and Graphene algorithms. After the reset, steps S120 to S190 are repeatedly performed.
- a selective low hammer refresh reference value is set in consideration of a balance between a safe Nth guarantee and an energy reduction effect.
- the value of the low hammer prevention algorithm counter of the target row or the difference between the minimum value between the algorithm counters and the target row counter is an optional low If it is less than the hammer refresh reference value, the low hammer refresh is not performed.
- the counters mentioned hereafter are counters of the low hammer prevention algorithm (that is, the second counter 142) located in the DRAM, not the rolling accumulation activation counters, unless otherwise stated.
- the most ideal form of a counter-based algorithm is to simply place a second counter 142 for every row, and count the number of activations for each row.
- the reference value of the selective low hammer algorithm of the present invention can be freely set at any time. At this time, we need to find a balanced “optimized” value between the two by checking 1) the effect of safe Nth guaranteed by the counter-based algorithm and 2) the energy reduction effect in the normal workload.
- a deterministic counter-based algorithm guarantees a mathematically safe Nth that can be computed according to the configuration of the algorithm.
- safe Nth is a function that receives three variables [(#ofTableEntry, RAAIMT, selective low hammer refresh reference value (SelectiveParam)] as input; is expressed as
- the introduction of the selective low hammer refresh may have an adverse effect of slightly increasing the safe Nth value, but at the same time bring about a reduction in energy consumption.
- the second counter 142 which has the largest counter value, is reduced to the minimum value in the entire counter-based algorithm at each refresh management command, so the counter values of the counter-based algorithm at any time degree can be maintained uniformly.
- the selective low hammer refresh reference value is set to a value exceeding this uniformity, the low hammer refresh is not performed in most of the refresh management commands, thereby reducing energy consumption significantly.
- the reference value of selective low hammer refresh must be comprehensively judged between how much it affects the safe Nth value and how much energy it can reduce on the workload to set the optimal value.
- FIG. 8 is a flowchart to which the selective low hammer refresh method is not applied in CAT-TWO
- FIG. 9 is a flowchart to which the selective low hammer refresh method of the present invention is applied to CAT-TWO.
- the selective row hammer refresh is not applied, the row hammer refresh is performed even if the value of the second counter 142 is small, that is, the necessity is small.
- the selective low hammer refresh is applied, the low hammer refresh is actually performed only when the value of the second counter 142 of the CAT-TWO is large, that is, when the necessity is large.
- Safe Nth in CAT-TWO receives three variables as input, the same as the ideal counter-based algorithm. At this time, the value previously expressed as #ofTableEntry was replaced with the CAT-TWO configuration as shown in Equation 3 below, because, unlike the ideal counter-based algorithm, there are various set values in addition to the number of counters.
- FIG. 10 is a flowchart to which the selective low hammer refresh method is not applied in Graphene and TWiCe
- FIG. 11 is a flowchart to which the selective low hammer refresh method of the present invention is applied.
- Graphene or TWiCe whenever Graphene or TWiCe receives a refresh management command, it may be considered as an example of performing low hammer refresh on the one with the largest value among all counters. Even in this example, after performing the low hammer refresh according to the refresh management command, in the case of Graphene, the second counter 142, which is the target of low hammer refresh, is initialized as a spillover counter, and in the case of TWiCe, the second counter that is the target of refresh. (142) can be initialized to 0.
- the values may not exactly match, but also in Graphene and TWiCe, the value of the second counter 142 is proportional to the number of activations in the corresponding row. That is, if the value of the second counter 142 is small, it means that less activation has occurred in the corresponding row. Specifically, the relationship between the value of the second counter 142 and the actual number of activations is mathematically defined in different ways in Graphene and TWiCe, respectively, but the proportional relationship is maintained in both.
- the low hammer prevention control unit 144 compares the value of the second counter 142 with a preset reference value (selective low hammer refresh reference value) for each refresh management command to determine whether to perform the low hammer refresh will do
- the reference value and the value of the second counter 142 are directly compared.
- Safe Nth in TWiCe and Graphene takes three variables as inputs, just like the ideal counter-based algorithm or CBT and CAT-TWO. At this time, the value previously expressed as #ofTableEntry was replaced with TWiCe configuration and Graphene configuration, because, unlike the ideal counter-based algorithm, there are various setting values in addition to the number of counters.
- Equation 4 is safe Nth of TWiCe
- Equation 5 is safe Nth of Graphene.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Dram (AREA)
- Databases & Information Systems (AREA)
Abstract
본 발명은 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법에 관한 것으로서, 보다 구체적으로 DDR5와 LPDDR5 등 최신 DRAM(dynamic random access memory) 표준에 적용되고 있는 새로운 명령어인 리프레쉬 매니지먼트(RFM) 커맨드(command)를 적용할 때, 로우 해머(Row Hammer) 문제를 해결하는 카운터(counter) 기반의 알고리즘들을 개선하여 DRAM의 에너지 소비를 감소시키는 장치 및 방법에 관한 것이다.
Description
본 발명은 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법에 관한 것으로서, 보다 구체적으로 DDR5와 LPDDR5 등 최신 DRAM(dynamic random access memory) 표준에 적용되고 있는 새로운 명령어인 리프레쉬 매니지먼트(RFM) 커맨드(command)를 적용할 때, 로우 해머(Row Hammer) 문제를 해결하는 카운터(counter) 기반의 알고리즘들을 개선하여 DRAM의 에너지 소비를 감소시키는 장치 및 방법에 관한 것이다.
로우 해머(Row Hammer)란, DRAM에서 하나의 DRAM 로우(row)가 지속적으로 접근되어 동작하는 경우, 의도하지 않게 해당 로우에 물리적으로 인접한 로우들의 데이터가 변하는 현상이다.
로우 해머를 해결하기 위해서는 DRAM에서 리프레쉬 동작을 수행하여 데이터를 원상복구하게 되는데, 리프레쉬 동작을 위해서는 DRAM에 일정 시간이 부여되어야 한다.
최근 메모리 집적도가 향상되어 로우 해머 현상이 점점 심해지면서 DRAM에 더 많은 시간을 부여해야 한다.
로우 해머 방지 기술이란, 로우 해머 현상을 막기 위해 일정한 알고리즘 또는 방법론에 따라 적절한 때에 위험한 로우에 리프레쉬를 수행해주는 기술이다. DRAM 칩 내부 또는 레지스터 클락 드라이버(Register Clock Driver; RCD), 메모리 제어기 등에 로우 해머 방지 기술을 위한 모듈이 위치가 가능하다.
리프레쉬 매니지먼트(RFM)는, 로우 해머 현상이 심화된 상황에서 DRAM에 로우 해머 방지를 위한 추가 시간을 주는 인터페이스이다. 메모리 제어기에서 DRAM 뱅크 별 액티베이트(Activate;ACT) 커맨드 횟수를 세고, 그 수에 일정한 주기로 리프레쉬 매니지먼트 커맨드를 보내고, 이 때마다 DRAM은 적절한 로우 해머 방지 기술에 따라 필요한 리프레쉬를 수행할 수 있다. LPDDR5와 DDR5 표준부터 적용되고 있다.
그러나, 미국공개특허 US2019/0228813 등 기존의 리프레쉬 매니지먼트에 의한 로우 해머 방지 기술은, 주기를 DRAM 디바이스가 정할 수 있긴 하지만, 메모리 컨트롤러에서는 DRAM에 존재하는 로우 해머 방지 기술의 상황에 대한 구체적인 정보없이 리프레쉬 매니지먼트 커맨드를 지속적으로 보내게 되고, 특별한 조치가 없으면 이 때마다 DRAM 디바이스가 로우 해머 리프레쉬를 수행하게 되어 컴퓨터 시스템 성능의 저하 및 추가적인 에너지를 소모하게 된다는 문제점이 있다.
<선행기술문헌>
특허문헌 : 미국공개특허 US2019/0228813 (2019.07.25.자 공개)
비특허문헌 1 : Y. Kim., et al. “Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors,”in ISCA, 2014.
비특허문헌 2 : M. Son., et al. “Making DRAM Stronger Against Row Hammering,” in Proceedings of the 54th Annual Design Automation Conference, 2017.
비특허문헌 3 : J. M. You., et al. “MRLoc: Mitigating Row-hammering Based on Memory Locality,” in Proceedings of the 56th Annual Design Automation Conference, 2019.
비특허문헌 4 : E. Lee., et al.“TWiCe: Preventing Row-hammering by Exploiting Time Window Counters,” in ISCA, 2019.
비특허문헌 5 : Y. Park., et al. “Graphene: Strong yet Lightweight Row Hammer Protection,” in MICRO, 2020.
비특허문헌 6 : S. M. Seyedzadeh., et al. “Mitigating Wordline Crosstalk Using Adaptive Trees of Counters,” in ISCA, 2018
비특허문헌 7 : I. Kang., et al. “CAT-TWO: Counter-Based Adaptive Tree, Time Window Optimized for DRAM Row-Hammer Prevention,” IEEE Access, 2020
상술한 문제점을 해결하기 위해 안출된 본 발명의 목적은, 매 리프레쉬 매니지먼트 커맨드에서 판단을 통해 필요성이 클 때만 리프레쉬를 수행하여 에너지 효율성을 극대화하는, 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법을 제공하는 데에 있다.
상술한 목적을 달성하기 위한 본 발명의 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치는, DRAM 뱅크 또는 서브뱅크 또는 여러 DRAM 뱅크의 묶음(이하 DRAM 뱅크) 당 발행되는 복수 개의 제1 카운터, DRAM에 특정 DRAM뱅크가 액티베이트를 수행하게 만드는 액티베이트 커맨드(ACT Command)를 송신하는 액티베이트 커맨드 생성부, 및 상기 액티베이트가 수행되는 특정 DRAM뱅크의 제1 카운터 값을 1 증가시키고, 상기 제1 카운터 값이 DRAM으로부터 기 수신된 리프레쉬 매니지먼트 경계값(RAAIMT)에 도달하게 되면, 해당 DRAM 뱅크에 로우 해머 리프레쉬(RH refresh)를 수행하게 하는 리프레쉬 매니지먼트(RFM) 커맨드를, DRAM의 로우 해머 방지 제어부로 보내는 리프레쉬 매니지먼트 커맨드 생성부,를 포함하는 메모리 컨트롤러; 및 DRAM에 존재하고 DRAM 뱅크의 액티베이트(ACT) 횟수를 세는 제2 카운터, 및 결정적 로우 해머 방지 알고리즘을 수행하되, 상기 리프레쉬 매니지먼트 커맨드를 수신하면 그 때까지 해당 DRAM 뱅크의 액티베이트(ACT) 횟수를 세던 상기 제2 카운터의 값을 기 설정된 기준치와 비교하고, 제2 카운터 값이 상기 기준치보다 작으면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행하지 않고, 제2 카운터 값이 상기 기준치보다 크면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행한 후 DRAM뱅크의 처리한 로우의 제2 카운터를 0 또는 특정 값으로 초기화하는 로우 해머 방지 제어부,를 포함하는 DRAM;을 포함한다.
또한, 상기 제2 카운터는, DRAM의 내부나 레지스터 클락 드라이버(RCD) 또는 로직 다이(logic die)에 위치한다.
본 발명의 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 방법은, (a) 메모리 컨트롤러가, DRAM에 특정 DRAM뱅크가 액티베이트를 수행하게 만드는 액티베이트 커맨드(ACT Command)를 송신하고, 메모리 컨트롤러에 존재하는 DRAM 뱅크 또는 서브뱅크 또는 여러 DRAM 뱅크의 묶음(이하 DRAM 뱅크) 당 발행되는 복수 개의 제1 카운터 중 상기 특정 DRAM뱅크의 제1 카운터 값을 1 증가시키는 단계; (b) 상기 제1 카운터 값이 DRAM으로부터 기 수신된 리프레쉬 매니지먼트 경계값(RAAIMT)에 도달하게 되면, 메모리 컨트롤러가 해당 DRAM 뱅크에 로우 해머 리프레쉬(RH refresh)를 수행하게 하는 RFM 커맨드를, 결정적 로우 해머 방지 알고리즘을 수행하는 DRAM의 로우 해머 방지 제어부로 보내는 단계; (c) DRAM의 로우 해머 방지 제어부가 상기 RFM 커맨드를 수신하면, 그 때까지 해당 DRAM 뱅크의 액티베이트(ACT) 횟수를 세던 DRAM에 존재하는 제2 카운터의 값을 기 설정된 기준치와 비교하는 단계; (d) DRAM의 로우 해머 방지 제어부는, 상기 (c)단계에서의 비교 결과, 제2 카운터 값이 상기 기준치보다 작으면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행하지 않고, 제2 카운터 값이 상기 기준치보다 크면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행한 후 DRAM뱅크의 처리한 로우의 제2 카운터를 0 또는 특정 값으로 초기화하는 단계;를 포함한다.
또한, 상기 결정적 로우 해머 방지 알고리즘은, 카운터 기반의 로우 해머 방지 알고리즘으로서 TWiCe 와 Graphene, CBT, CAT-TWO 알고리즘을 포함한다.
또한, 상기 (d) 단계에서 로우 해머 리프레쉬 수행시, TWiCe와 CBT, CAT-TWO의 경우에는 로우 해머 리프레쉬가 수행된 로우의 제2 카운터 값을 0으로 초기화 하고, Graphene의 경우에는 로우 해머 리프레쉬가 수행된 로우의 제2 카운터를 스필오버 카운터(spillover counter)로 초기화하는 것이 바람직하다.
또한, 상기 결정적 로우 해머 방지 알고리즘이 Graphene 알고리즘인 경우, 상기 기준치는, 각 DRAM 뱅크의 제2 카운터 값 중 최대값과 스필오버 카운터값(최소값)의 차이인 상대값인 것이 바람직하다.
본 발명의 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법에 따르면, 매 리프레쉬 매니지먼트 커맨드에서 판단을 통해 필요성이 클 때만 리프레쉬를 수행하여 에너지 효율성을 극대화할 수 있다.
로우 해머 방지 기술에서 리프레쉬의 수를 줄이게 되면 에너지 측면에서 큰 이점을 얻을 수 있는데, 이는 리프레쉬는 2개 이상의 DRAM 로우를 액티베이트 및 프리차지(Precharge;PRE)하는 것으로써 로우 해머 방지 기술의 에너지 소비 상당 부분을 리프레쉬가 차지하기 때문이다.
도 1은 DRAM의 정보가 저장되는 부분의 구조도,
도 2는 메모리 시스템의 상위구조 구조도,
도 3은 메모리 뱅크의 구성도,
도 4는 리프레쉬 매니지먼트 인터페이스 상에서 로우 해머 방지 기술의 상위수준 구조도,
도 5는 본 발명의 실시예에 따른 선택적 로우 해머 리프레쉬 방법의 개념적인 플로우 차트,
도 6은 본 발명의 선택적 로우 해머 리프레쉬 장치의 구체적인 블록 구성도,
도 7은 도 5의 본 발명의 선택적 로우 해머 리프레쉬 플로우 차트를 구체화한 플로우차트,
도 8는 CAT-TWO에서 선택적 로우해머 리프레쉬 방법이 적용되지 않은 플로우차트,
도 9는 CAT-TWO에 본 발명의 선택적 로우해머 리프레쉬 방법이 적용된 플로우차트,
도 10은 Graphene과 TWiCe에서 선택적 로우해머 리프레쉬 방법이 적용되지 않은 플로우차트,
도 11은 본 발명의 선택적 로우해머 리프레쉬 방법이 적용된 플로우 차트이다.
본 발명의 실시예에 대한 구체적인 설명에 앞서, 이해를 돕기 위하여 먼저 DRAM 및 메모리 컨트롤러와 로우 해머 방지 기술에 관한 용어와 배경 지식을 설명한다.
용어 | 정의 |
메모리 컨트롤러
(Memory Controller (MC)) |
프로세서 (processor, 예: CPU 혹은 GPU)의 메모리 리퀘스트를 바탕으로 메모리를 컨트롤한다. 일반적으로, 프로세서 안에 내장되어있다. |
메모리 리퀘스트
(Memory request) |
프로세서가 특정 주소에 대해 읽기, 쓰기를 요청하는 것을 지칭한다. |
로우 버퍼
(Row buffer) |
DRAM 디바이스 (칩(chip) 혹은 다이(die))에서 한 개 로우(페이지) 단위로 읽거나 쓸 수 있도록 버퍼링(buffering)시키는 부분. DRAM 뱅크마다 하나씩 존재한다. |
액티베이트
(Activate) |
DRAM 뱅크내의 비트라인(bitline)이 프리차지된 상태에서, 워드라인(wordline)을 열어서(연결시켜서) 셀들의 값이 로우 버퍼에 읽혀 올라갈 수 있도록 하는 DRAM 동작. |
액티브 커맨드
(ACT command) |
DRAM이 액티베이트를 수행하게 만드는, 메모리 컨트롤러에서 보내는 명령어. |
프리차지
(Precharge) |
Bitline을 0 과 1 사이의 0.5 정도의 전압값으로 만들고, 로우 버퍼를 무효화(invalidate)시키는 DRAM 동작. |
프리차지 커맨드
(PRE command) |
DRAM이 프리차지를 수행하게 만드는 메모리 컨트롤러에서 보내는 명령어. |
채널
(Channel) |
MC와 DRAM 디바이스들을 잇는 단위를 지칭하며, 1개 MC는 하나 이상의 채널로 DRAM 디바이스들과 연결될 수 있고, 1개의 채널은 여러 DIMM(dual in-line memory module)과 연결될 수 있다. |
랭크
(Rank) |
DRAM의 구성단위. 한 개 DIMM은 한 개 혹은 적은 수의 랭크로 구성된다. |
뱅크
(Bank) |
DRAM의 구성단위로, 1개 랭크는 여러 개의 뱅크들로 구성된다.
각 뱅크는 독립적으로 동작할 수 있으나 rank 내의 다른 뱅크들과 디바이스 외부와 연결되는 데이터 패스와 컨트롤 패스를 공유한다. 하나의 뱅크는 여러(최근은 수십만 가량) 로우로 구성되어 있다. |
DRAM 칩
(DRAM chip) |
하나의 랭크는 여러 개의 DRAM 칩으로 나뉘어 동작할 수 있는데, 이를 통해서 높은 대역폭과 용량을 달성할 수 있다. |
리프레쉬
(Refresh) |
셀의 값을 원래 쓰여있던 0 또는 1로 다시 쓰는 동작. |
노멀 리프레쉬
(normal refresh, auto refresh) |
주기적으로 메모리 컨트롤러에서 DRAM으로 리프레쉬 커맨드를 보내서 모든 셀을 조금씩 리프레쉬하는 동작. |
리텐션 타임
(Retention time) |
셀이 리프레쉬 없이 저장된 값을 유지할 수 있는 시간. DRAM의 기본적인 저장 단위인 DRAM 셀은 수동적인 특성으로 인해, 시간이 지나면 셀의 커패시터에 저장된 전하에 누출이 발생하여 그 값을 잃게 된다. |
리프레쉬 커맨드
(REF command) |
메모리 컨트롤러에서 DRAM에게 노멀 리프레쉬를 수행하도록 하며, 수행을 위해 tRFC만큼의 시간을 주는 명령어. |
리프레쉬 인터벌 타임
(Refresh Interval time;tREFI) |
메모리 컨트롤러에서 REF 명령어를 보내는 주기. |
리프레쉬 사이클 타임
(Refresh Cycle time;tRFC) |
메모리 컨트롤러에서 REF 명령어를 보낼 때마다 DRAM에게 주는 시간. |
로우 해머
(Row Hammer or RH) |
어떤 로우(공격 로우)가 많이 액티베이트되면, 물리적으로 인접한 로우(피해 로우)에 원하지 않는 영향이 생겨서 비트 플립(bit flip)이 발생하는 현상 |
피해 로우
(Victim row) |
로우 해머 문제에서 액티베이트가 일어나는 로우의 인접한 로우이자 비트 플립의 위험이 있는 로우 |
공격 로우
(Aggressor row) |
로우 해머 문제에서 액티베이트가 일어나는 로우 |
로우 해머 경계값
(RH threshold or Nth) |
피해 로우 입장에서, 어떠한 리프레쉬도 없이 인접 공격 로우가
액티베이트된 횟수가 일정 기준을 넘으면 비트 플립이 발생할 수 있게 되는데, 이 기준을 로우 해머 스레숄드(Nth)라 정의 |
로우 해머 리프레쉬 | 노멀 리프레쉬와 별개로, 피해 로우를 리프레쉬 해주는 것 |
로우 해머 방지 기술 | 로우 해머 리프레쉬를 통해 로우 해머가 발생하지 않도록 하는
예방하는 모든 방법을 총칭 |
타임 마진
(Time margin) |
본 발명에서는 메모리 컨트롤러가 DRAM에 다른 명령어를 주지않는 일정한 시간(타임 마진, time margin)을 주어 DRAM이 알아서 로우 해머 방지를 할 수 있도록 함. |
로우 해머 방지 알고리즘
(RH prevention scheme or RH prevention algorithm) |
RH 방지 기술의 구체적인 방법 및 알고리즘 |
확률적 로우 해머 방지 알고리즘
(Probabilistic RH prevention scheme) |
일정한 방법론에 따라 임의의 타겟을 선정하고, 타겟에 대해 로우
해머 리프레쉬를 수행함. 확률적인 방법으로는 100% 로우 해머 방지는 일반적으로 불가능함. |
결정적 로우 해머 방지 알고리즘
(Deterministic counter-based RH prevention scheme) |
일정한 방법론에 따라 액티베이트가 많은 타겟을 선정하고, 타겟에 대해 로우 해머 리프레쉬를 수행함. 타겟을 선정할 때 액트베이트 횟수를 세는 카운터를 기반으로 선정함. |
리프레쉬 매니지먼트 커맨드
(Refresh Management command;RFM command) |
메모리 컨트롤러에서 DRAM에게 보내는 커맨드로, 이 커맨드를
통해 주어지는 시간동안 DRAM은 로우 해머 리프레쉬를 수행할 수 있다. |
리프레쉬 매니지먼트 타임
(Refresh Management time;tRFM) |
리프레쉬 매니지먼트 커맨드를 보낼 때마다 DRAM에게
주어지는 시간. |
롤링 누적 액티베이트 카운터
RAA (Rolling Accumulated ACT) |
메모리 컨트롤러안에 뱅크 별로 (또는 서브 뱅크별로) 존재하는
카운터. 뱅크당 일어나는 액티베이트의 횟수를 세며, 리프레쉬 매니지먼트 커맨드 또는 리프레쉬 커맨드 때마다 감소된다. |
리프레쉬 매니지먼트 경계값
(RAA Initial Management Threshold) |
DDR5, LPDDR5 스펙에서 리프레쉬 매니지먼트 커맨드를 보내는 기준이 되는 액티베이트의 횟수. RAA 카운터의 값이 RAAIMT에 도달하면, 리프레쉬 매니지먼트 커맨드를 보낸다. |
#ofTableEntry | 카운터 기반의 알고리즘의 카운터 테이블(table)의 엔트리(entry) 갯수. |
적응형 로우해머 리프레쉬 기준값
(SelectiveParam) |
선택적 로우 해머 리프레쉬의 기준이 되는 파라미터 값. |
MaxActs | 카운터 기반의 알고리즘에서 테이블의 초기화 주기 동안 발생할
수 있는 최대 액티베이트 횟수. 변수가 아니라 상수. |
1. DRAM 및 메모리 컨트롤러의 배경 지식
1.1 DRAM 및 메모리 컨트롤러와의 관계
컴퓨터 시스템 안에는 프로세서와 메모리가 존재한다. 프로세서에는 메모리 컨트롤러가 존재하여 메모리와 연결되고, 프로세서에서 온 읽기, 쓰기 메모리 리퀘스트를 처리하기 위해 DRAM에 세부적인 명령을 내리게 된다.
도 1은 DRAM의 정보가 저장되는 부분의 구조도를 나타낸다. 커패시터 셀들이 바둑판 형식을 이루고 있고, 이에 접근할 때 워드라인과 비트라인을 활용한다.
도 1을 참조하면, DRAM은 정보 1개 비트를 1개 커패시터 셀에 저장하게 되는데, 이러한 셀들이 바둑판 식으로 모여서 로우, 컬럼(column)으로 구성된다. 한 로우에 속한 셀들은 모두 같은 워드라인에 연결되어 있고, 하나의 컬럼은 모두 같은 비트라인으로 연결된다. 메모리 컨트롤러로부터 온 메모리 리퀘스트의 주소값을 알게 되면, 어떤 로우, 컬럼의 셀에 접근해야 하는지 디코더(decoder)를 통해서 알 수 있다.
각 셀을 읽거나 쓰기 위해서는, 로우 버퍼라는 곳에 셀 정보를 올려야한다. 이를 위해서는 우선, 프리차지를 통해 모든 비트라인의 전압을 0(Ground; GND)과 Vdd의 중간값, 0.5Vdd 정도로 만들고, 로우 버퍼를 무효화(invalidate)한다. 그 후 액티베이트를 통해, 원하는 정보가 있는 셀이 속한 로우의 워드라인(wordline)을 연결하고, 셀의 전압 정보값들이 비트라인(bitline)에 반영될 수 있도록 한다. 이 과정을 거치면, 원하는 셀 정보 0 또는 1 (Vdd) 값들이 로우 단위로 로우 버퍼에 올라오게 된다.
한 가지 참고할 사항은, 프리차지 + 액티베이트를 거쳐서 로우 버퍼에 셀 값이 한번 올라오게 되면, 해당 셀의 전압은 원래 값 0 또는 1로 명확하게 초기화되게 된다. 이 점은 후술하는 1.2. 에서 자세하게 설명된다.
로우 버퍼는 페이지 단위 (통상적으로 디바이스당 8Kb)이고, 셀의 로우 또한 페이지 단위 크기로 구성된다. 메모리 리퀘스트의 단위는 캐시 라인 (통상적으로 64B)이므로, 하나의 메모리 리퀘스트에 의해 필요한 것 보다 더 많은 정보가 로우 버퍼에 올라오게 된다. 따라서, 그 다음으로 연속된 메모리 리퀘스트가 필요로 하는 정보가 이미 로우 버퍼에 올라와 있을 수 있는데, 이 때는 새로 프리차지 + 액티베이트를 통해 로우 버퍼에 옮기는 것을 하지 않고 바로 로우 버퍼를 활용할 수 있다.
도 2는 메모리 시스템의 상위구조 구조도이고, 도 3은 메모리 뱅크의 구성도이다.
도 2를 참조하면, 메모리 시스템은 한 개 이상의 채널로 이루어져 있다. 하나의 채널은 메모리 컨트롤러와 하나 또는 두 개의 DIMM(듀얼 인라인 메모리 모듈, dual in-line memory module)을 이어준다. 하나의 채널은 한 개 이상의 랭크로 구성된다. 하나의 랭크는 다시 여러 개의 뱅크로 구성되며, 각 뱅크는 메모리 접근을 서로 독립적으로 수행하게 된다.
도 3은 하나의 랭크가 뱅크 단위로 나뉜 것을 보여준다. 대역폭과 용량을 위해서, 하나의 랭크는 DIMM이라는 폼 팩터를 사용하는 DDRx 인터페이스의 경우 여러 개의 DRAM 칩(도 1의 DRAM 디바이스)으로 구성되어있다. N개 DRAM 칩이 하나의 랭크를 구성할 때, 각 DRAM 칩은 랭크와 뱅크 단위에서 전체 대역폭과 용량의 1/N을 담당하게 된다. 한편, 하나의 뱅크에서는 특정한 순간에 최대 하나의 로우 버퍼만을 사용할 수 있으며, 하나의 뱅크는 한번에 1개 로우만 버퍼 시킬 수 있다.
DRAM의 동작을 좀 더 잘 이해할 수 있도록 상황별 DRAM 뱅크 내의 동작을 살펴 본다.
첫 번째로, 메모리 리퀘스트의 메모리 주소가 접근하는 DRAM 뱅크의 로우 버퍼가 프리차지 이후에 무효화(invalidate)된 상황을 생각해본다. 이 때는 액티베이트를 통해서 원하는 셀들이 속한 로우의 전압 정보값을 로우 버퍼에 올려야 한다. 두 번째로, 로우 버퍼에 메모리 리퀘스트가 접근하는 주소의 셀 전압 값들이 올라온 상황을 생각해본다. 이 때는, 별도의 프리차지나 액티베이트 없이 바로 로우 버퍼의 값을 읽거나 로우 버퍼에 값을 쓰면 된다. 세 번째로, 로우 버퍼에 메모리 리퀘스트가 접근하는 주소가 아닌 로우의 정보가 올라와 있는 상황을 생각해본다. 이 때는 우선 프리차지를 통해서 로우 버퍼를 무효화(invalidate)하고 비트라인을 준비시키고, 그 후 액티베이트를 통해서 원하는 로우의 값을 로우 버퍼에 올리게 된다.
여기서 한가지 주목할 점은, 메모리 컨트롤러와 DRAM 사이의 관계에서 DRAM은 수동적인 역할을 수행한다는 것이다.
메모리 컨트롤러는 DRAM 뱅크의 현재 로우 버퍼 상태, DRAM의 동작 상태(프리차지, 액티베이트) 등의 상황을 모두 아는 상황에서, 프리차지 커맨드, 액티브 커맨드로 프리차지, 액티베이트 등 세부적인 동작을 시키게 된다.
이러한 DRAM의 수동적인 면모는, 후술하는 타임 마진 관점에서 리프레쉬 매니지먼트 인터페이스가 추가적으로 필요한 것과 연결된다.
1.2 DRAM 셀 리텐션 타임과 리프레쉬에 대한 설명
DRAM 셀은 커패시터로 값을 저장하는데, 커패시터는 시간이 흐르면 저장된 전하가 누설전류 등에 의해 감소되고 이는 전압의 감소를 야기시켜 "0" 또는 "1"로 판정하는 것이 불가능해진다. 이렇게 DRAM 셀의 값을 잃기 전에, 0 또는 1로 다시 써주는 작업을 리프레쉬라고 한다. 리프레쉬를 해주기 위해서는, 1.1.에서 설명한 바와 같이, 프리차지와 액티베이트 작업을 해서 리프레쉬하려는 로우의 셀 값들을 로우 버퍼에 올리는 작업을 하면, 셀 안의 값도 덩달아 0 또는 1로 리프레쉬된다. 따라서, 한 번의 리프레쉬에 필요한 에너지는 "프리차지 + 액티베이트"에 드는 에너지이다.
DRAM 셀의 값이 한번 0 또는 1로 쓰여진 후에 상실되어 읽을 수 없을 때 까지의 시간을 "리텐션 타임"이라 정의한다. DRAM의 각 셀은 리텐션 타임이 다 지나기 전에 한번 이상 리프레쉬가 되어야 데이터 완전성(data integrity)을 지킬 수 있다. 이를 만족하기 위해, 메모리 컨트롤러는 주기적으로 DRAM에 리프레쉬 커맨드를 보내서 모든 셀을 조금씩 리프레쉬하게 된다(노멀 리프레쉬).
구체적으로, 메모리 컨트롤러는 리프레쉬 인터벌 타임 (Refresh Interval time;tREFI) (3.9마이크로초 in DDR5)마다 1개 리프레쉬 커맨드를 보내고, 그 때마다 tRFC (295 나노초 in 16Gb DDR5 디바이스)만큼의 시간을 DRAM에게 주고, 이 동안에는 메모리 컨트롤러가 다른 어떠한 커맨드도 해당 랭크에 보내지 않음이 보장된다. 이 때, DRAM은 이 시간을 활용하여 내부적으로 여러 로우에 대한 리프레쉬를 진행하게 된다. DRAM은 이렇게 주기적으로 제공되는 노멀 리프레쉬를 위한 시간을 활용하여, 알아서 모든 셀의 리텐션 타임 내에 리프레쉬가 한번 이상 일어나는 것을 보장해야 한다.
예를 들어서, 모든 셀에 대해 동일한 리텐션 타임 또는 tREFW가 존재하던 DDR4를 고려해본다. DDR4에서는 tREFI가 7.8us 였고, 리프레쉬 윈도우 타임(Refresh Window time;tREFW)는 64ms였으므로, 리프레쉬 커맨드와 그에 따른 tRFC는 tREFW 동안 총 8192번 DRAM으로 보내지게 된다. DDR4 기준 로우의 총 수가 2의 17승개 였으므로, 단순하게 생각하면 DRAM은 매 노멀 리프레쉬마다 16개의 로우를 리프레쉬해야 모든 셀이 tREFW 또는 리텐션 타임 안에 한 번 이상 리프레쉬가 될 수 있었다.
2. 로우 해머 문제와 그 방지 기술
2.1. 로우 해머 문제와 로우 해머 리프레쉬
(1) 로우 해머(RH) 문제 정의
어떤 로우(공격 로우)가 많이 액티베이트되면, 물리적으로 인접한 로우(피해 로우)에 원하지 않는 영향이 생겨서 비트 플립(0이 1이 되거나, 1이 0이 되는 현상)이 발생할 수 있다.
피해 로우 입장에서, 어떠한 리프레쉬도 없이 인접 공격 로우가 액티베이트된 횟수가 일정 기준을 넘으면 비트 플립이 발생할 수 있게 되는데, 이 기준을 로우 해머 경계값(Nth)이라 정의한다.
1.2.에서 설명된 노멀 리프레쉬를 통해서 주기적으로 로우를 리프레쉬 해주긴 하지만, 노멀 리프레쉬가 되는 주기 사이에 너무 많은 액티베이트가 이루어지게 되면 문제가 발생한다. 특정 DRAM 로우의 입장에서 노멀 리프레쉬의 주기가 상대적으로 크기 때문에, 로우 해머 경계값이 충분히 낮을 때에는 액티베이트가 충분히 많이 일어날 수 있기 때문이다.
(2) 로우 해머 리프레쉬 정의
로우 해머 리프레쉬란, 노멀 리프레쉬와 별개로, 피해 로우를 리프레쉬 해주는 것이다. 이를 통해서, 해당 피해 로우가 로우 해머 리프레쉬 전 시점까지 받은 로우 해머의 영향을 초기화 해줄 수 있다.
로우 해머 리프레쉬는 DRAM 디바이스 내에서 수행하는 것이지만, 메모리 컨트롤러가 DRAM 디바이스에게 특정 로우를 로우 해머 리프레쉬할 것을 요구하거나, DRAM 디바이스가 자체적으로 위험을 감지하여 특정 로우에 로우 해머 리프레쉬를 수행할 수 있다.
메모리 컨트롤러가 DRAM 디바이스에 요구하는 방법은 연구적으로만 제안되어 왔고 DRAM에서 자체적으로 처리하는 방법도 기업들이 공식적으로 공개한 적은 없다.
2.2. 로우 해머 방지 기술
로우 해머 방지 기술은 크게, DRAM이 로우 해머 리프레쉬를 수행할 수 있는 타임 마진을 어떻게 확보하는가와, 확보된 타임 마진 안에서 로우 해머 리프레쉬를 어떨 때 어디에(when & where) 수행할지를 어떻게 정하는가(알고리즘이라 정의한다)의 관점으로 나누어 기술될 수 있다.
로우 해머 방지 기술이 잘 동작하게 되면, 로우 해머 비트 플립 현상이 발생하지 않도록 예방할 수 있다.
2.3. 로우 해머 방지 기술: 리프레쉬 타임 마진 스틸링
로우 해머 리프레쉬를 수행하기 위해서는 타임 마진(time margin)이 필요하다.
수동적인 DRAM의 성격상, DRAM이 내부적으로 로우 해머 리프레쉬를 하는 동안 메모리 컨트롤러로부터 다른 해야 할 일을 받아버릴 수도 있다. 이 경우, DRAM은 로우 해머 리프레쉬를 중단하고 메모리 컨트롤러에서 받은 일을 수행해야 한다.
따라서, DRAM 입장에서는 다른 일을 하지 않는 것이 확실하고, 오직 로우 해머 리프레쉬만을 수행해도 되는 타임 마진을 확보하는 것이 필요하다.
통상적으로는, 노멀 리프레쉬를 통해서 보장되는 리프레쉬 사이클 타임(refresh cycle time;tRFC)의 시간 동안 해야하는 일을 더 빠르게 수행해버리고, 남는 시간동안 로우 해머 리프레쉬를 수행했다. 이를 "리프레쉬 타임 마진 스틸링"이라 한다.
주어지는 타임 마진은 tREFI마다 tRFC이고, 이 때 통상의 노멀 리프레쉬 일도 빠르게 하면서 남는 시간에 로우 해머 리프레쉬를 수행해야 한다.
2.4. 로우 해머 방지 기술 알고리즘
DRAM 디바이스에서 로우 해머 방지를 할 경우, 타임 마진은 공통적으로 스틸링을 통해서 확보하더라도, 어느 시점에 어떤 로우에 (언제, 어디서) 로우 해머 리프레쉬를 수행할지는 정해진 바가 없다.
실제로 로우 해머 리프레쉬를 언제 어디에 수행할지 정해주는 것을 로우 해머 방지 기술 혹은 로우 해머 방지 알고리즘(RH prevention scheme/algorithm)이라 한다.
이는, 확률적 로우 해머 방지 알고리즘(probabilistic prevention scheme)과 카운터 기반의 결정적 로우 해머 방지 알고리즘(deterministic counter-based prevention scheme) 두 가지로 나눌 수 있다.
방지 기술의 알고리즘은 그 기반 철학에 따라 크게 확률적인 방법(비특허문헌 1 내지 3) 과 카운터 기반의 방법(비특허문헌 4 내지 7) 으로 나눌 수 있다.
확률적인 방법은 일정한 방법론을 따라 랜덤하게 타겟을 선정하고, 타겟에 대해 로우 해머 리프레쉬를 수행한다. 선택하는 확률을 적절하게 결정하면, 특정 로우 해머 경계값에 대해 결정론적이지는 않지만, 굉장히 높은 확률로 안전성을 보장할 수 있다. 예를 들어서, 해당 DRAM 디바이스에서 1년동안 로우 해머 문제가 1번이라도 발생할 확률을 1% 이하로 보장할 수 있다.
반대로, 카운터 기반의 방법은 카운터 테이블을 사용함으로써 공격 로우들이 액티베이트 된 횟수를 트래킹(tracking)하는데, 이를 통해 수학적으로 특정 Nth에 대해 결정론적인 안전을 보장한다. 카운팅을 카운터의 수를 적게 하면서 놓치는 정보들이 존재할 수는 있지만, 놓치는 정보까지도 수학적으로 보장하여 최종적으로 피해 로우의 인접 공격 로우들의 액티베이트 횟수가 Nth를 넘지 않는 것을 보장한다.
CBT/CAT-TWO(비특허문헌 6 및 7)는 먼저 액티베이트 패턴에 따라 전체 DRAM 로우들을 트리(tree) 형태의 조직을 이루는 여러 그룹으로 나누고 그룹마다 카운터를 할당한다. 트리 생성 중 먼저 리프(leaf: 잎, 말단)에 도달한 카운터들은, 혹은 가용 가능한 모든 카운터를 전부 사용했을 경우 전체 카운터들은, 어떤 로우에 액티베이트(ACT)가 발생하면 해당 로우의 그룹의 카운터를 증가시킨다. 그룹의 카운터의 값이 로우 해머의 위험이 있다고 간주되는 특정 값에 도달하면 로우 해머 리프레쉬를 수행하여 해당 그룹의 모든 로우들과 2개의 인접 로우들을 리프레쉬한다. 미리 설정된 리셋 타임 윈도우(reset time window)마다 생성되었던 트리를 초기화하고, 앞서 설명된 과정을 반복한다.
TWiCe(비특허문헌 4)는 카운터 테이블을 가지고 있어서, 카운터마다 특정 로우를 맡아서 액티베이트의 횟수를 세게 된다. 이 때, 카운터 테이블에 존재하지 않던 로우의 액티베이트 커맨드가 들어오게 되면, 카운터 값이 0인 엔트리에 새로 해당 로우를 할당한다. TWiCe는 일정한 주기마다 정해진 기준에 따라 액티베이트가 비교적 덜 자주 발생한 로우의 카운터 값들을 초기화한다. 이러한 동작 중, 카운터의 값이 로우 해머의 위험이 있다고 간주되는 특정 값에 도달하면, 해당 카운터에 속하는 로우에 대해 로우 해머 리프레쉬를 수행한다. 미리 설정된 리셋 타임 윈도우마다 전체 카운터 테이블을 초기화하고, 앞서 설명된 과정을 반복한다.
Graphene 또한 카운터 테이블을 가지고 있어서, 카운터마다 특정 로우를 맡아서 액티베이트의 횟수를 세게 된다. 이 때, 스필오버 카운터(spillover-counter)라는 별도의 카운터 1개가 존재하여, 항상 전체 카운터 테이블에서 최소값을 가지고 있는다. 이러한 상황에서, 발생한 액티베이트의 로우 어드레스(address)가 테이블에 존재한다면 해당하는 카운터를 1 증가시킨다. 만약, 해당 로우가 테이블에 존재하지 않는다면 스필오버 카운터의 값과 테이블의 카운터 값들을 비교하여 카운터 값이 같은 로우가 있다면 해당 로우를 ACT가 발생한 로우로 교체하고 해당 카운터를 1 증가시키고, 같은 카운터 값이 없다면 스필오버 카운터의 값을 1 증가시킨다. 카운터의 값이 로우 해머의 위험이 있다고 간주되는 특정 값에 도달하면, 해당 카운터에 속하는 로우에 대해 로우 해머 리프레쉬를 수행한다. 미리 설정된 리셋 타임 윈도우마다 전체 카운터 테이블을 초기화하고, 앞서 설명된 과정을 반복한다.
3. 심화된 로우 해머 문제와 리프레쉬 매니지먼트(RFM) 인터페이스 도입
3.1. 리프레쉬 매니지먼트(RFM) 인터페이스 도입 배경
DRAM 공정이 미세화 되어감에 따라, 최근 로우 해머 문제가 심화되고 있다.
먼저, 로우 해머 경계값이 낮아졌다. 로우 해머가 처음 공개 되었을 때(DDR3), 로우 해머 경계값이 139,000 수준에서 최근 DDR4에서 수천 수준까지 낮아지는 것으로 보고되고 있다.
또한, 기존에는, 바로 인접한 공격 로우만이 피해 로우에 영향을 끼쳤는데, 이제 더 멀리 있는 로우들도 영향을 끼칠 수 있게 되었다.
이러한 상황은, 로우 해머 방지 기술의 두 가지 항목 중, 타임 마진 확보에 큰 문제를 야기한다.
노멀 리프레쉬에 의해 제공되는 시간은 tREFI (DDR5 기준으로 3.9us)마다 tRFC(295ns)로 제한되어 있고, 이 중에 스틸(steal)할 수 있는 양 또한 제한되어 있다.
하지만, 로우 해머에 더 취약해진 만큼 로우 해머 리프레쉬를 더 자주 해주어야 하고, 그만큼 타임 마진도 더 필요해졌다. 따라서 확보 가능한 타임 마진의 양 자체가 부족한 상황이 도래했다.
이를 타개하기 위해서 리프레쉬 매니지먼트 인터페이스가 새로 DDR5 및 LPDDR5에 도입되었다.
리프레쉬 매니지먼트 인터페이스는 기존의 메모리 컨트롤러와 DRAM 사이의 추상화와 수동적인 DRAM의 성격을 해치지 않으면서도, 부족한 리프레쉬 타임 마진 스틸링 대신 추가적인 타임 마진을 제공해 준다.
리프레쉬 매니지먼트 커맨드를 간단한 기준에 따라 주기적으로 메모리 컨트롤러가 보내주면, 일정한 시간만큼 로우 해머 리프레쉬를 위한 타임 마진이 제공된다.
DRAM에서 어떤 로우 해머 방지 기술 알고리즘을 사용할지는 (리프레쉬 타임 마진 스틸링에서와 마찬가지로) 자유이다.
3.2. 구체적인 RFM 인터페이스
tRFM, RAA(카운터), RAAIMT 의 정의는 아래와 같다.
- tRFM: 리프레쉬 매니지먼트 커맨드마다 DRAM에게 주어지는 타임 마진.
- RAA 카운터: Rolling Accumulated ACT counter. 롤링 누적 액티베이트 카운터
- RAAIMT: Rolling Accumulated ACT Initial Management Threshold. 리프레쉬 매니지먼트 경계값
도 4는 리프레쉬 매니지먼트 인터페이스 상에서 로우 해머 방지 기술의 상위수준 구조도이다.
도 4를 참조하면, 구체적으로, 리프레쉬 매니지먼트 커맨드가 메모리 컨트롤러에서 특정 DRAM으로 보내지는 기준은, DRAM 뱅크당 수행된 액티베이트의 횟수(롤링 누적 액티베이트 카운터 값)가 DRAM 디바이스가 정한 기준값, 리프레쉬 매니지먼트 경계값에 도달하는가이다.
메모리 컨트롤러 내부에 뱅크마다 액티베이트 횟수를 세는 롤링 누적 액티베이트 카운터가 존재하고, 이 중 어떤 카운터가 리프레쉬 매니지먼트 경계값에 도달하게 되면 해당 뱅크로 리프레쉬 매니지먼트 커맨드를 보내고, 해당 롤링 누적 액티베이트 카운터는 리프레쉬 매니지먼트 경계값만큼 값이 감소한다.
노멀 리프레쉬 때마다도 롤링 누적 액티베이트 카운터 값이 일정하게 감소한다. 노멀 리프레쉬 타임 마진 스틸링이 전제되는 것으로 보이지만, 명시된 바는 없으며 반드시 도입될 필요는 없다.
따라서, DRAM 디바이스에서는 미리 리프레쉬 매니지먼트 경계값을 한번 정하여 메모리 컨트롤러에게 알려줄 뿐이고, 이를 바탕으로 메모리 컨트롤러는 DRAM 디바이스의 상황과는 단절된 채 주기적으로 리프레쉬 매니지먼트 커맨드와 이를 DRAM이 처리할 시간인 tRFM 타임 마진을 DRAM 디바이스에 제공해주게 된다.
이하, 본 발명의 바람직한 실시예를 첨부 도면을 참고하여 상세하게 설명한다.
기존 리프레쉬 매니지먼트 상 로우 해머 방지 기술의 문제는, 주기를 DRAM 디바이스가 정할 수 있긴 하지만, 메모리 컨트롤러에서는 DRAM에 존재하는 로우 해머 방지 기술의 상황에 대한 구체적인 정보없이 리프레쉬 매니지먼트 커맨드를 지속적으로 보내게 된다. 이 때마다 로우 해머 리프레쉬를 수행하게 되면 추가적인 에너지를 소모하게 된다. 로우 해머 리프레쉬에 따른 추가적인 에너지 소모를 본 발명의 선택적 로우 해머 리프레쉬 방법을 통해서 줄이고자 하는 것이다.
이렇게 DRAM 디바이스의 상황과는 무관하게 자주 주어지는 tRFM 타임 마진을 계속 활용하여 로우 해머 리프레쉬를 수행하면 에너지 소비가 불필요하게 커질 수 있다.
본 발명의 바람직한 실시예에 따른 선택적 로우 해머 리프레쉬 방법은, 결정론적 카운터 기반 로우해머 방지 알고리즘에 한하여, DRAM 디바이스가 내부 상황을 반영하여 로우 해머 리프레쉬의 필요성이 클 때만 주어진 tRFM 타임 마진을 활용하여 로우 해머 리프레쉬를 수행하는 것이다. 여기서 지칭하는 카운터는 메모리 컨트롤러 내부에 있는 롤링 누적 액티베이트 카운터(제1 카운터)가 아닌, DRAM 내부 혹은 근처에 있는, 결정론적 카운터 기반 로우해머 방지 알고리즘의 카운터(제2 카운터)를 의미한다.
본 발명의 실시예에 따르면, 리프레쉬 매니지먼트 커맨드가 DRAM에 전달되어 해당 뱅크가 tRFM 동안 액티베이트/프리차지/읽기/쓰기와 같은 일반적인 동작을 하지 못함에 따른 성능 저하는 바꿀 수 없지만, 불필요한 에너지 소비는 막을 수 있다.
도 5는 본 발명의 실시예에 따른 선택적 로우 해머 리프레쉬 방법의 개념적인 플로우 차트이다.
도 5를 참조하면, 로우 해머 리프레쉬의 필요성이 큰지를 판단하는 것이 "리프레쉬 판단"이다.
이러한 선택적 로우해머 리프레쉬를 활용하는 것이 효과적일 수 있는 이유는 다음과 같다.
1) 로우 해머 방지 기술에서 로우 해머 리프레쉬의 수를 줄이게 되면, 에너지 측면에서 큰 이점을 얻을 수 있다. 로우 해머 리프레쉬는 2개의 DRAM 로우를 액티베이트 + 프리차지하는 것으로, 상정할 수 있는 대부분의 로우 해머 방지 기술의 에너지 소비 상당 부분을 로우해머 리프레쉬가 차지하기 때문이다.
2) 본 발명의 선택적 로우해머 리프레쉬 방법을 적용한 것에 비해서, 적용하지 않은 로우 해머 방지 기술은 필요성이 작은 상황에서도 로우 해머 리프레쉬를 수행하여 에너지 효율성이 낮을 수 있다. 반면, 본 발명의 선택적 로우 해머 리프레쉬 방법이 적용된 카운터 기반 로우 해머 방지기술의 경우에는, 매 리프레쉬 매니지먼트 명령어에서 판단을 통해 필요성이 클 때만 리프레쉬를 수행하여 에너지 효율성을 극대화할 수 있다.
3) 결정론적 카운터 기반 알고리즘은 수학적으로 계산되는 특정 Nth 기준 이상에 대해서 로우 해머를 예방할 수 있다. 이 때, 선택적 로우 해머 리프레쉬를 적용해도 해당 기준이 크게 영향받지 않는 경우가 많아서 효과적일 수 있다.
4) 선택적 로우 해머 리프레쉬를 사용하게 되면, 특히 노멀 워크로드(로 해머의 취약성을 공격하는 악성 프로그램이 아닌, 컴퓨터 시스템에서 수행되는 일반적인 프로그램)에서 에너지 소비를 감축하는 효과가 굉장히 클 수 있다.
본 발명의 선택적 로우 해머 리프레쉬 방법은, DDR5, LPDDR5를 포함하여, 추후 리프레쉬 매니지먼트 인터페이스가 포함되는 DRAM 종류에도 적용 가능하다.
또한, 본 발명의 선택적 로우 해머 리프레쉬 방법은, 리프레쉬 매니지먼트를 활용하는 DRAM에 위치한 로우 해머 방지 기술로서, DRAM 다이 또는 레지스터 클락 드라이버(RCD)에 존재할 수 있으며, 추후 HBM에 리프레쉬 매니지먼트가 도입된다면 로직 다이(logic die)에도 존재할 수 있다.
도 6은 본 발명의 선택적 로우 해머 리프레쉬 장치의 구체적인 블록 구성도이다.
도 6을 참조하면, 본 발명의 선택적 로우 해머 리프레쉬 장치(100)는, 메모리 컨트롤러(120) 및 DRAM(140)을 포함한다.
메모리 컨트롤러(120)는, 복수 개의 제1 카운터(122), 액티베이트 커맨드 생성부(124) 및 리프레쉬 매니지먼트 커맨드 생성부(126)를 포함한다.
복수 개의 제1 카운터(122)는, DRAM 뱅크 또는 서브뱅크 또는 여러 DRAM 뱅크의 묶음(이하 DRAM 뱅크) 당 발행된다.
액티베이트 커맨드 생성부(124)는, 특정 DRAM뱅크가 액티베이트를 수행하게 만드는 액티베이트 커맨드(ACT Command)를 DRAM에 송신한다.
리프레쉬 매니지먼트 커맨드 생성부(126)는, 액티베이트가 수행되는 특정 DRAM뱅크의 제1 카운터 값을 1 증가시키고, 제1 카운터 값이 DRAM으로부터 기 수신된 리프레쉬 매니지먼트 경계값(RAAIMT)에 도달하게 되면, 해당 DRAM 뱅크에 로우 해머 리프레쉬(RH refresh)를 수행하게 하는 리프레쉬 매니지먼트(RFM) 커맨드를 DRAM의 로우 해머 방지 제어부로 보낸다.
DRAM(140)은, 제2 카운터(142) 및 로우 해머 방지 제어부(144)를 포함한다.
제2 카운터(142)는, DRAM에 존재하고 DRAM 뱅크의 액티베이트(ACT) 횟수를 카운팅한다.
제2 카운터(142)는, DRAM(140)의 내부나 레지스터 클락 드라이버(RCD) 또는 로직 다이(logic die)에 위치할 수 있다.
로우 해머 방지 제어부(140)는 결정적 로우 해머 방지 알고리즘을 수행하되, 리프레쉬 매니지먼트 커맨드를 수신하면 그 때까지 해당 DRAM 뱅크의 액티베이트(ACT) 횟수를 세던 제2 카운터(142)의 값을 기 설정된 기준치와 비교하고, 제2 카운터 값이 기준치보다 작으면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행하지 않고, 제2 카운터 값이 기준치보다 크면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행한 후 DRAM뱅크의 처리한 로우의 제2 카운터를 0 또는 특정 값으로 초기화한다.
도 7은 도 5의 본 발명의 선택적 로우 해머 리프레쉬 플로우 차트를 구체화한 플로우차트이다.
도 7을 참조하여, 본 발명의 선택적 로우 해머 리프레쉬 방법에 관하여 구체적으로 설명한다.
먼저, 메모리 컨트롤러(120)가, DRAM(140)에 특정 DRAM 뱅크가 액티베이트를 수행하게 만드는 액티베이트 커맨드(ACT Command)를 송신하고(단계 S120), 메모리 컨트롤러(120)에 존재하는 DRAM 뱅크 당 발행되는 복수 개의 제1 카운터(122) 중 상기 특정 DRAM 뱅크의 제1 카운터 값을 1 증가시킨다(단계 S130).
즉, 메모리 컨트롤러(120)에 존재하는 제1 카운터(122)들은 각 DRAM 뱅크의 액티베이트(ACT) 횟수를 개별적으로 카운팅하는 것이다.
그 다음, 제1 카운터 값이 DRAM(140)으로부터 기 수신된 리프레쉬 매니지먼트 경계값(RAAIMT)에 도달하게 되면(단계 S140), 메모리 컨트롤러(120)가 해당 DRAM 뱅크에 로우 해머 리프레쉬(RH refresh)를 수행하게 하는 RFM 커맨드를, DRAM의 로우 해머 방지 제어부(144)로 보낸다(단계 S150).
여기서, DRAM의 로우 해머 방지 제어부(144)는, 결정적 로우 해머 방지 알고리즘을 기반으로 한다. 결정적 로우 해머 방지 알고리즘은 TWiCe 또는 Graphene, CBT, CAT-TWO 알고리즘 중 어느 하나이거나 그 외의 모든 카운터 기반의 로우 해머 방지 알고리즘을 포함한다.
그 다음, DRAM의 로우 해머 방지 제어부(144)는, RFM 커맨드를 수신하면 그 때까지 해당 DRAM 뱅크의 액티베이트(ACT) 횟수를 세던 DRAM의 제2 카운터(142)의 값과 기 설정된 기준치와 비교한다(단계 S160, S170).
여기서, 결정적 로우 해머 방지 알고리즘이 Graphene 알고리즘인 경우의 위 기준치는, 각 DRAM 뱅크의 제2 카운터 값 중 최대값과 스필오버 카운터값(최소값)의 차이인 상대값인 것이 바람직하다.
그 다음, DRAM의 로우 해머 방지 제어부(144)는, 단계 S170에서의 비교 결과, 제2 카운터 값이 상기 기준치보다 작으면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행하지 않고, 제2 카운터 값이 상기 기준치보다 크면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행한 후 DRAM뱅크의 처리한 로우의 제2 카운터(142)를 0 또는 특정 값으로 초기화한다(단계 S180).
구체적으로, 로우 해머 리프레쉬 수행시 TWiCe와 CBT, CAT-TWO의 경우에는 로우 해머 리프레쉬가 수행된 로우의 제2 카운터 값을 0으로 초기화하고, Graphene의 경우에는 로우 해머 리프레쉬가 수행된 로우의 제2 카운터(142)를 스필오버 카운터로 초기화한다.
이후, DRAM(140)은 수신하였던 리프레쉬 매니지먼트(RFM) 명령어에 따른 리셋 윈도우 시간에 도달하였는지 판단하여(단계 S190), 도달하지 않았으면 단계 S120 내지 S190을 반복 수행하고, 리셋 윈도우 시간에 도달하게 되면 제2 카운터(142)를 리셋한다(단계 S110). 제2 카운터 리셋은, 구체적으로 CAT-TWO 알고리즘의 경우에는 제2 카운터(142)의 카운터 트리를 재생성하고, TWiCe 및 Graphene 알고리즘의 경우에는 제2 카운터(142)의 카운터 테이블을 리셋하는 것이다. 리셋 이후 단계 S120 내지 S190을 반복 수행한다.
본 발명의 실시예에 따른 선택적 로우 해머 리프레쉬 방법은, 안전한 Nth 보장과 에너지 감소 효과 사이의 균형을 고려하여, 선택적 로우해머 리프레쉬 기준값을 설정하게 된다.
또한, 이를 바탕으로 로우 해머 리프레쉬 커맨드를 받아 로우해머 리프레쉬를 수행하려고 할 때, 대상이 되는 로우의 로우해머 방지 알고리즘 카운터의 값, 또는 알고리즘 카운터들 사이의 최소값과 대상 로우 카운터의 차이가, 선택적 로우해머 리프레쉬 기준값보다 작다면 로우 해머 리프레쉬를 수행하지 않는다.
이하, 본 발명의 실시예에 따른 선택적 로우 해머 리프레쉬 방법이 적용되는 카운터 기반의 결정적 로우 해머 방지 알고리즘에 관하여, 알고리즘 종류별로 본 발명의 적용예를 상세하게 설명한다.
- 이상적(naive) 카운터 기반 알고리즘 예시 -
여기서부터 언급하는 카운터는, 별도 언급이 없으면 롤링 누적 액티베이트 카운터가 아닌 DRAM에 위치한 로우해머 방지 알고리즘의 카운터[즉, 제2 카운터(142)]이다.
DRAM 다이(die)의 넓이 오버헤드 때문에 실현은 불가능하지만, 가장 이상적 카운터 기반 알고리즘의 형태는 단순히 모든 로우마다 1개씩 제2 카운터(142)를 두어서 각 로우에 대한 액티베이트의 횟수를 세는 것이다.
리프레쉬 매니지먼트 커맨드가 들어올 때마다 제2 카운터 값이 가장 큰 카운터의 로우에 대해 로우 해머 리프레쉬를 수행해주게 되면, 수학적으로 일정한 Nth에 대해 안전을 보장할 수 있다. 이 때, 로우 해머 리프레쉬를 수행해주게 되면, 해당 제2 카운터 값은 0으로 초기화 되게 된다.
이러한 상황에서, 본 발명의 선택적 로우해머 알고리즘의 기준이 되는 값은 언제나 자유롭게 설정할 수 있다. 이 때 1) 카운터 기반 알고리즘에서 보장되는 안전한 Nth에 영향과 2) 노멀 워크로드에서 에너지 감소 효과를 확인하여 둘 사이의 균형 잡힌 "최적화"된 값을 찾아야 한다.
(1) 안전한 Nth
결정론적 카운터 기반 알고리즘은, 알고리즘의 설정 상태(configuration)에 따라서 계산될 수 있는 수학적으로 안전한 Nth를 보장한다.
1) 선택적 로우해머 리프레쉬가 없는 상황에서, 안전한 Nth는 2가지 변수 (카운터 기반 알고리즘의 카운터 수 #ofTableEntry, RAAIMT. 이 때, 이상적 카운터 기반 알고리즘에서 #ofTableEntry는 알고리즘 설정 상태을 의미한다)를 입력으로 받는 함수,
으로 표현된다.
2) 선택적 로우해머 리프레쉬가 있는 상황에서는, 안전한 Nth는 3가지 변수 [(#ofTableEntry, RAAIMT, 선택적 로우 해머 리프레쉬 기준값(SelectiveParam)]를 입력으로 받는 함수,
으로 표현된다.
(2) 에너지 감소 효과
선택적 로우해머 리프레쉬의 도입이 안전한 Nth의 값이 조금 커지는 악영향을 가질 수 있지만 이와 동시에 소비 에너지 감소를 가져오게 된다.
워크로드에 따라서, 안전한 Nth에 대한 영향을 작게 미칠 수 있는 작은 선택적 로우해머 리프레쉬 기준값을 세웠을 때에도 소비 에너지 감소 효과가 큰 경우가 있을 수 있다.
메모리 접근 자체가 균질하게 이루어질 경우, 리프레쉬 매니지먼트 커맨드 때마다 카운터값이 가장 큰 제2 카운터(142)를 해당 시점 카운터 기반 알고리즘 전체에서의 최소값으로 줄이기 때문에, 어느 시점에서나 카운터 기반 알고리즘의 카운터 값들은 어느 정도 균일하게 유지될 수 있다.
따라서, 이 균일함을 넘는 값으로 선택적 로우 해머 리프레쉬 기준값을 설정해주면 대부분의 리프레쉬 매니지먼트 커맨드 때 로우 해머 리프레쉬를 수행하지 않아, 소비 에너지 감소 효과가 클 수 있다.
(3) 종합
종합하자면, 선택적 로우해머 리프레쉬의 기준값은 안전한 Nth의 값에 얼마나 영향을 미치는지와 워크로드 상에서 에너지 감소를 얼마나 가져올 수 있는지 사이에서 종합적으로 판단하여 최적의 값을 설정해야 한다.
- CBT/CAT-TWO, TWiCe, Graphene에서의 선택적 로우해머 리프레쉬 적용예 -
여기서부터는 실현가능성이 떨어지는 이상적 카운터 기반 알고리즘이 아닌, 실제 학계에서 발표된 카운터 기반 알고리즘들에 리프레쉬 매니지먼트 인터페이스와 선택적 로우해머 리프레쉬를 적용한 것을 설명한다.
(1) 리프레쉬 매니지먼트 인터페이스가 적용된 CAT-TWO
도 8은 CAT-TWO에서 선택적 로우해머 리프레쉬 방법이 적용되지 않은 플로우차트이고, 도 9는 CAT-TWO에 본 발명의 선택적 로우해머 리프레쉬 방법이 적용된 플로우차트이다.
도 8 및 9를 참조하면, CAT-TWO(2.4.에서 설명됨)에서 리프레쉬 명령어를 받을 때마다 전체 카운터에서 잎에 도달한 것 중, 그 값이 가장 큰 것에 대해 로우해머 리프레쉬를 수행하는 것을 예시로 생각할 수 있다. 해당 예시에서 RFM 명령어에 따른 리프레쉬를 수행한 후에는, 해당 제2 카운터(142)의 값을 0으로 초기화 해줄 수 있다.
이 때, 선택적 로우해머 리프레쉬를 적용하지 않는다면 제2 카운터(142)의 값이 작더라도, 즉 그 필요성이 작더라도 로우 해머 리프레쉬를 수행하게 된다. 반면, 선택적 로우해머 리프레쉬를 적용하게 되면, CAT-TWO의 제2 카운터(142) 값이 클 때에만, 즉 그 필요성이 클 때에만 로우해머 리프레쉬를 실제 수행하게 된다.
CAT-TWO에서의 안전한 Nth는, 이상적 카운터 기반 알고리즘과 동일하게 세 가지 변수를 입력으로 받게 된다. 이 때, 기존에 #ofTableEntry로 표현되었던 값은 아래 수학식 3와 같이 CAT-TWO configuration 으로 대체되었는데, 이는 이상적 카운터 기반 알고리즘과 다르게 카운터의 수 외에도 여러가지 설정 값들이 존재하기 때문이다.
(2) 리프레쉬 매니지먼트 인터페이스가 적용된 TWiCe / Graphene
도 10은 Graphene과 TWiCe에서 선택적 로우해머 리프레쉬 방법이 적용되지 않은 플로우차트이고, 도 11은 본 발명의 선택적 로우해머 리프레쉬 방법이 적용된 플로우 차트이다.
도 10 및 11을 참조하면, Graphene 또는 TWiCe는 리프레쉬 매니지먼트 커맨드를 받을 때마다 전체 카운터 중 그 값이 가장 큰 것에 대해 로우해머 리프레쉬를 수행하는 것을 예시로 생각할 수 있다. 해당 예시에서도 리프레쉬 매니지먼트 커맨드에 따른 로우해머 리프레쉬를 수행한 후에는, Graphene의 경우 로우해머 리프레쉬 대상이 된 제2 카운터(142)를 스필오버 카운터로 초기화하고 TWiCe의 경우에는 리프레쉬 대상이 된 제2 카운터(142)를 0으로 초기화할 수 있다.
그 값이 정확하게 일치하지는 않을 수 있지만, Graphene과 TWiCe에서도 제2 카운터(142)의 값은 해당하는 로우에 이루어진 액티베이트의 수에 비례한다. 즉, 제2 카운터(142)의 값이 작으면 해당 로우에 액티베이트가 적게 일어난 것이고, 그 값이 크면 해당 로우에 액티베이트가 많이 일어났을 가능성이 높다. 구체적으로 제2 카운터(142)의 값과 실제 액티베이트 횟수의 관계는 Graphene과 TWiCe 각각에서 다른 방식으로 수학적으로 정의되지만, 그 비례 관계는 둘 다 유지된다.
따라서, 이 예시에서도 제2 카운터(142)의 값이 작을 때에는 로우해머 리프레쉬를 해야 할 필요성이 작다.
따라서, 선택적 로우해머 리프레쉬 적용시, 리프레쉬 매니지먼트 커맨드마다 로우 해머 방지 제어부(144)에서 제2 카운터(142)의 값과 기 설정된 기준치(선택적 로우해머 리프레쉬 기준값)을 비교하여 로우 해머 리프레쉬를 수행할지를 결정하게 된다.
TWiCe의 경우, 기준치과 제2 카운터(142)의 값을 직접 비교한다.
Graphene의 경우, 기준치와 (제2 카운터 값 - 스필오버 카운터 값)을 비교한다.
TWiCe 및 Graphene에서의 안전한 Nth는, 이상적 카운터 기반 알고리즘이나 CBT, CAT-TWO와 동일하게, 세 가지 변수를 입력으로 받게 된다. 이 때, 기존에 #ofTableEntry로 표현되었던 값은 TWiCe configuration, Graphene configuration 으로 대체되었는데, 이는 이상적 카운터 기반 알고리즘과 다르게 카운터의 수 외에도 여러가지 설정값들이 존재하기 때문이다.
아래 수학식 4는 TWiCe의 안전한 Nth이고, 수학식 5는 Graphene의 안전한 Nth이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
Claims (6)
- DRAM 뱅크 또는 서브뱅크 또는 여러 DRAM 뱅크의 묶음(이하 DRAM 뱅크) 당 발행되는 복수 개의 제1 카운터, DRAM에 특정 DRAM뱅크가 액티베이트를 수행하게 만드는 액티베이트 커맨드(ACT Command)를 송신하는 액티베이트 커맨드 생성부, 및 상기 액티베이트가 수행되는 특정 DRAM뱅크의 제1 카운터 값을 1 증가시키고, 상기 제1 카운터 값이 DRAM으로부터 기 수신된 리프레쉬 매니지먼트 경계값(RAAIMT)에 도달하게 되면, 해당 DRAM 뱅크에 로우 해머 리프레쉬(RH refresh)를 수행하게 하는 리프레쉬 매니지먼트(RFM) 커맨드를, DRAM의 로우 해머 방지 제어부로 보내는 리프레쉬 매니지먼트 커맨드 생성부,를 포함하는 메모리 컨트롤러; 및DRAM에 존재하고 DRAM 뱅크의 액티베이트(ACT) 횟수를 세는 제2 카운터, 및 결정적 로우 해머 방지 알고리즘을 수행하되, 상기 리프레쉬 매니지먼트 커맨드를 수신하면 그 때까지 해당 DRAM 뱅크의 액티베이트(ACT) 횟수를 세던 상기 제2 카운터의 값을 기 설정된 기준치와 비교하고, 제2 카운터 값이 상기 기준치보다 작으면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행하지 않고, 제2 카운터 값이 상기 기준치보다 크면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행한 후 DRAM뱅크의 처리한 로우의 제2 카운터를 0 또는 특정 값으로 초기화하는 로우 해머 방지 제어부,를 포함하는 DRAM;을 포함하는 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치.
- 제1항에 있어서, 상기 제2 카운터는,DRAM의 내부나 레지스터 클락 드라이버(RCD) 또는 로직 다이(logic die)에 위치하는 것을 특징으로 하는, 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치.
- (a) 메모리 컨트롤러가, DRAM에 특정 DRAM뱅크가 액티베이트를 수행하게 만드는 액티베이트 커맨드(ACT Command)를 송신하고, 메모리 컨트롤러에 존재하는 DRAM 뱅크 또는 서브뱅크 또는 여러 DRAM 뱅크의 묶음(이하 DRAM 뱅크) 당 발행되는 복수 개의 제1 카운터 중 상기 특정 DRAM뱅크의 제1 카운터 값을 1 증가시키는 단계;(b) 상기 제1 카운터 값이 DRAM으로부터 기 수신된 리프레쉬 매니지먼트 경계값(RAAIMT)에 도달하게 되면, 메모리 컨트롤러가 해당 DRAM 뱅크에 로우 해머 리프레쉬(RH refresh)를 수행하게 하는 리프레쉬 매니지먼트(RFM) 커맨드를, 결정적 로우 해머 방지 알고리즘을 수행하는 DRAM의 로우 해머 방지 제어부로 보내는 단계;(c) DRAM의 로우 해머 방지 제어부가 상기 리프레쉬 매니지먼트 커맨드를 수신하면, 그 때까지 해당 DRAM 뱅크의 액티베이트(ACT) 횟수를 세던 DRAM에 존재하는 제2 카운터의 값을 기 설정된 기준치와 비교하는 단계;(d) DRAM의 로우 해머 방지 제어부는, 상기 (c)단계에서의 비교 결과, 제2 카운터 값이 상기 기준치보다 작으면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행하지 않고, 제2 카운터 값이 상기 기준치보다 크면 해당 DRAM뱅크에서 로우 해머 리프레쉬를 수행한 후 DRAM뱅크의 처리한 로우의 제2 카운터를 0 또는 특정 값으로 초기화하는 단계;를 포함하는 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 방법.
- 제3항에 있어서, 상기 결정적 로우 해머 방지 알고리즘은,카운터 기반의 로우 해머 방지 알고리즘으로서, TWiCe 또는 Graphene, CBT, CAT-TWO 알고리즘을 포함하는 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 방법.
- 제4항에 있어서,상기 (d) 단계에서 로우 해머 리프레쉬 수행시, TWiCe와 CBT, CAT-TWO의 경우에는 로우 해머 리프레쉬가 수행된 로우의 제2 카운터 값을 0으로 초기화 하고, Graphene의 경우에는 로우 해머 리프레쉬가 수행된 로우의 제2 카운터를 스필오버 카운터로 초기화하는 것을 특징으로 하는, 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 방법.
- 제4항에 있어서,상기 결정적 로우 해머 방지 알고리즘이 Graphene 알고리즘인 경우,상기 기준치는, 각 DRAM 뱅크의 제2 카운터 값 중 최대값과 스필오버 카운터값(최소값)의 차이인 상대값인 것을 특징으로 하는, 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/268,651 US20240079042A1 (en) | 2020-12-21 | 2021-01-11 | Counter-based selective row hammer refresh apparatus and method for row hammer prevention |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0180121 | 2020-12-21 | ||
KR1020200180121A KR102385443B1 (ko) | 2020-12-21 | 2020-12-21 | 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022139057A1 true WO2022139057A1 (ko) | 2022-06-30 |
Family
ID=81187823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/000326 WO2022139057A1 (ko) | 2020-12-21 | 2021-01-11 | 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240079042A1 (ko) |
KR (1) | KR102385443B1 (ko) |
WO (1) | WO2022139057A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030859A (zh) * | 2023-02-13 | 2023-04-28 | 长鑫存储技术有限公司 | 一种刷新控制电路及存储器 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240112723A1 (en) * | 2022-10-03 | 2024-04-04 | Microsoft Technology Licensing, Llc | Detecting and mitigating memory attacks |
KR20240079041A (ko) | 2022-11-28 | 2024-06-04 | 서울대학교산학협력단 | 효율적으로 dram 내부 로우 셔플을 수행하기 위한 메모리 장치 |
KR20240093263A (ko) | 2022-12-15 | 2024-06-24 | 서울대학교산학협력단 | Dram 내부 로우 셔플 기반의 로우 해머 방지 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731508B1 (ko) * | 2012-11-30 | 2017-05-11 | 인텔 코포레이션 | 저장된 행 해머 임계값에 기초한 행 해머 모니터링 |
US20190066759A1 (en) * | 2018-11-01 | 2019-02-28 | Intel Corporation | Row hammer mitigation with randomization of target row selection |
KR20190033387A (ko) * | 2017-09-21 | 2019-03-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR20190135736A (ko) * | 2018-05-29 | 2019-12-09 | 윈본드 일렉트로닉스 코포레이션 | 메모리 디바이스 및 그 리프레쉬 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10950288B2 (en) | 2019-03-29 | 2021-03-16 | Intel Corporation | Refresh command control for host assist of row hammer mitigation |
-
2020
- 2020-12-21 KR KR1020200180121A patent/KR102385443B1/ko active IP Right Grant
-
2021
- 2021-01-11 WO PCT/KR2021/000326 patent/WO2022139057A1/ko active Application Filing
- 2021-01-11 US US18/268,651 patent/US20240079042A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731508B1 (ko) * | 2012-11-30 | 2017-05-11 | 인텔 코포레이션 | 저장된 행 해머 임계값에 기초한 행 해머 모니터링 |
KR20190033387A (ko) * | 2017-09-21 | 2019-03-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR20190135736A (ko) * | 2018-05-29 | 2019-12-09 | 윈본드 일렉트로닉스 코포레이션 | 메모리 디바이스 및 그 리프레쉬 방법 |
US20190066759A1 (en) * | 2018-11-01 | 2019-02-28 | Intel Corporation | Row hammer mitigation with randomization of target row selection |
Non-Patent Citations (1)
Title |
---|
PARK YEONHONG; KWON WOOSUK; LEE EOJIN; HAM TAE JUN; HO AHN JUNG; LEE JAE W.: "Graphene: Strong yet Lightweight Row Hammer Protection", 2020 53RD ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO), 17 October 2020 (2020-10-17), pages 1 - 13, XP033856373, DOI: 10.1109/MICRO50266.2020.00014 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030859A (zh) * | 2023-02-13 | 2023-04-28 | 长鑫存储技术有限公司 | 一种刷新控制电路及存储器 |
Also Published As
Publication number | Publication date |
---|---|
KR102385443B1 (ko) | 2022-04-12 |
US20240079042A1 (en) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022139057A1 (ko) | 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 | |
US20200090750A1 (en) | Row hammer refresh for content-addressable memory devices | |
WO2015005634A1 (ko) | 메모리 시스템 및 이의 제어 방법 | |
JP2022183340A (ja) | メモリデバイスにおける信号展開キャッシング | |
KR20180059556A (ko) | Dram 인접 행 교란 완화 | |
US5319589A (en) | Dynamic content addressable memory device and a method of operating thereof | |
KR101234110B1 (ko) | 전자 메모리 동작에 있어서 동적 전력 절약을 위한 시스템들 및 방법들 | |
US7038933B2 (en) | Low voltage detector and method for detecting low voltage of FeRAM, and system using the same | |
US7468904B2 (en) | Apparatus for hardening a static random access memory cell from single event upsets | |
WO2016083865A1 (zh) | 基于概率信息检测半导体存储器的被最频繁存取的地址的方法 | |
US11037618B2 (en) | Row hammer prevention circuit, a memory module including the row hammer prevention circuit, and a memory system including the memory module | |
WO2014003764A1 (en) | Memory module with a dual-port buffer | |
WO2015002481A1 (ko) | 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법 | |
EP4092676A1 (en) | Data reading/writing method, memory, storage device, and terminal | |
EP0222833B1 (en) | Chip select speed-up circuit for a memory | |
US5278797A (en) | Semiconductor memory device capable of executing non-periodic refreshing operations | |
WO2017073957A1 (ko) | 전자 장치 및 이의 메모리 관리 방법 | |
Wang et al. | Detect DRAM disturbance error by using disturbance bin counters | |
US20020080676A1 (en) | Reduced standby power memory array and method | |
EP4138078A1 (en) | A method for protecting a dram module against rowhammer attacks, and a dram module | |
US20220415384A1 (en) | Victim Row Refreshes for Memories in Electronic Devices | |
KR20210076726A (ko) | 메모리 장치 및 이의 동작 방법 | |
CN101561783B (zh) | 一种Cache异步淘汰的方法和装置 | |
US7149101B1 (en) | Method and apparatus for smoothing current transients in a content addressable memory (CAM) device with dummy searches | |
US20220199186A1 (en) | Memory system and operation method of memory system |
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: 21911127 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18268651 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21911127 Country of ref document: EP Kind code of ref document: A1 |