This application claims priority to and the benefit of Korean Patent Application No. 10-2023-0193334 filed in the Korean Intellectual Property Office on Dec. 27, 2023, the disclosure of which is incorporated herein by reference in its entirety.
The present disclosure relates to a row hammer managing circuit, a memory device including the row hammer managing circuit, and a method of refresh operation for the memory device.
Volatile memory devices, such as dynamic random access memory (DRAM), store data by storing charges in a capacitor of a memory cell, and read data by determining the charges stored in the capacitor. Since the charges stored in the capacitor may leak over time, the memory device periodically performs a refresh operation.
A memory controller accesses addresses of the memory device randomly, and often accesses specific addresses intensively. As a density of the memory cell in the memory device increases, a voltage distribution of a certain row may affect charges of memory cells in adjacent rows. In particular, when a certain row is attacked by intensive access, the data stored in the memory cells of the adjacent rows may change due to a voltage in an activation state of the row. This phenomenon is called a row hammer. Therefore, it is desired that all rows of the memory device be monitored for the row hammer care.
According to an embodiment, a memory device may include a memory cell array and a refresh control circuit. The memory cell array may include a plurality of memory cells. The refresh control circuit may generate a refresh row address and perform a refresh operation on memory cells of a row corresponding to the refresh row address. The refresh control circuit may include a row hammer managing circuit (RHMC). The RHMC may include a first row address generator, a second row address generator, and a row address checker. The first row address generator may receive first input row addresses during a first monitoring length and determine a first candidate address among the first input row addresses based on a first reference address. The second row address generator may receive second input row addresses during a second monitoring length longer than the first monitoring length, and determine a second candidate address among the second input row addresses based on a second reference address. The row address checker may determine an aggressor row address based on the first candidate address and the second candidate address. The row corresponding to the refresh row address may be adjacent to a row corresponding to the aggressor row address. Each of the first monitoring length and the second monitoring length may be a cycle for performing the refresh operation.
According to an embodiment, a row hammer managing device includes a first row address generator that receives first input row addresses during a first monitoring length and determines a first candidate address among the first input row addresses based on a first reference address; a second row address generator that receives second input row addresses during a second monitoring length longer than the first monitoring length, and determines a second candidate address among the second input row addresses based on a second reference address; and a row address checker that determines an aggressor row address based on the first candidate address and the second candidate address.
According to an embodiment, a memory device may include a memory cell array and a refresh control circuit. The memory cell array may include a plurality of memory cells. The refresh control circuit may generate candidate addresses based on a reference address and row addresses input during different monitoring lengths, generate an aggressor row address based on whether the candidate addresses match, and output refresh row addresses of rows adjacent to a row corresponding to the aggressor row address. The memory device may perform a refresh operation on memory cells of rows corresponding to the refresh row addresses. Each of the different monitoring lengths may be a cycle for performing the refresh operation.
According to an embodiment, a method of a refresh operation for a memory device is provided. The method may include receiving row addresses during different monitoring lengths, generating candidate addresses based on a reference address and the received row addresses, comparing the candidate addresses, modifying the reference address based on the comparison result, determining an aggressor row address based on the comparison result, and performing a refresh on memory cells of a row adjacent to a row corresponding to the aggressor row address. Each of the different monitoring lengths may be a cycle for performing the refresh on the memory cells of the row adjacent to the row corresponding to the aggressor row address.
In the following detailed description, only certain exemplary embodiments of the present disclosure have been shown and described, simply by way of illustration. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention.
Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive. Like reference numerals designate like elements throughout the specification. In the flowchart described with reference to the drawing, the order of operations may change, several operations may be merged, certain operations may be divided, and specific operations may not be performed.
In addition, expressions written as singular may be interpreted as singular or plural, unless explicit expressions such as “one” or “single” are used. Terms including ordinal numbers, such as first and second, may be used to describe various components, but the components are not limited by these terms. These terms may be used to distinguish one component from another.
Referring to
The memory device 110 may include a memory cell array 111 and a refresh control circuit 112. The memory cell array 111 may include a plurality of memory cells defined by a plurality of rows and a plurality of columns. In some embodiments, rows may be defined by word lines and columns may be defined by bit lines. The refresh control circuit 112 detects an aggressor row (or attack row) among a plurality of rows, determines a row address (“victim row address”) of a victim row to be refreshed based on the row address (referred to as “aggressor row address”) of the aggressor row, and output the victim row address. In some embodiments, the aggressor row may be a row hammer aggressor row, and the victim row may be a row that is a target of row hammer care. In some embodiments, the refresh control circuit 112 may select the aggressor row address and output the victim row address at a refresh time.
The memory controller 120 provides signals to the memory device 110 to control a memory operation of the memory device 110. The signal may include a command CMD and an address ADDR. In some embodiments, the memory controller 120 may further provide a clock signal to the memory device 110 and provide the command CMD and the address ADDR to the memory device 110 in synchronization with the clock signal, thereby controlling an operation of the memory device 110.
In some embodiments, the memory controller 120 may provide the command CMD and the address ADDR to the memory device 110 to access the memory cell array 111 and control memory operations such as read or write. Data may be transmitted from the memory cell array 111 to the memory controller 120 according to the read operation, and data may be transmitted from the memory controller 120 to the memory cell array 111 according to the write operation.
The command CMD may include an active command, a read/write command, and a refresh command. In some embodiments, the command CMD may further include a precharge command. The active command may be a command that switches a target row of the memory cell array 111 to an activated state in order to write data to the memory cell array 111 or read data from the memory cell array 111. The memory cell of the target row may be activated (e.g., driven) in response to the active command. The read/write command may be a command to perform a read or write operation on a target memory cell of the row that has been switched to the activated state. The refresh command may be a command for performing a refresh operation in the memory cell array 111.
The memory device 110 may generate aggressor row refresh command signals in response to the refresh command. The aggressor row refresh may refer to an operation of detecting aggressor patterns with a uniform row distribution type and sequentially refreshing victim rows (adjacent rows) of the aggressor rows determined from the aggressor pattern.
The refresh control circuit 112 may determine aggressor rows in response to the aggressor row refresh command signal and output an aggressor row address. In embodiments, lengths (or sizes) of the aggressor patterns for aggressing the memory cells of the memory device 110 may be different. The refresh control circuit 112 may include a plurality of row address generators and a row address checker to protect against various aggressor patterns having various lengths. The plurality of row address generator determines the aggressor rows, and the row address checker may verify the aggressor rows determined by the plurality of row address generators. The lengths of the aggressor patterns monitored by the plurality of row address generators may be different. The configuration of the plurality of row address generators and the row address checker will be described later with reference to
In some embodiments, the memory device 110 may generate the normal refresh command signal or a target row refresh (TRR) command signal in response to the refresh command. The memory device 110 may include a command decoder (or control logic) that generates the command signals in response to the refresh command. The TRR command signal may be a refresh command that determines the victim row based on the count number of the active command and instructs an operation to refresh the victim row. The normal refresh command signal may be a refresh command that instructs a normal refresh operation, for example, an operation to sequentially refresh the rows of the memory cell array 111.
In some embodiments, the aggressor row refresh command signal may be included in the TRR command signal. For example, the memory device 110 may generate some of the TRR command signals as the aggressor row refresh command signals based on a predetermined ratio. The memory cell array 111 may be refreshed in response to the refresh command.
In some embodiments, the memory controller 120 may access the memory device 110 upon a request from a host external to the memory system 100. The memory controller 120 may communicate with the host using various protocols.
The memory device 110 may be a storage device based on a semiconductor device. In some embodiments, the memory device 110 may include a dynamic random access memory (DRAM) device. Examples of the memory device 110 may include double data rate synchronous dynamic random access memory (DDR SDRAM), low power double data rate (LPDDR) SDRAM, graphics double data rate (GDDR) SDRAM, and rambus dynamic random access memory (RDRAM), etc.
In some embodiments, the memory device 110 may include other volatile or non-volatile memory devices in which the refresh operation is used.
Referring to
The memory cell array 210 may include a plurality of memory cells MC. In some embodiments, the memory cell array 210 may include a plurality of memory banks 210a to 210h. Although eight memory banks (e.g., BANK0 to BANK7 210a to 210h) are illustrated in
The command decoder 220 may generate a control signal to enable the memory device 200 to perform a read operation, a write operation, or a refresh operation. The command decoder 220 may generate an internal command signal ICS by decoding the command CMD received from the memory controller (120 in
Referring to
In some embodiments, the memory device 200 may generate the aggressor row refresh command signal, the normal refresh command signal, the TRR command signal, etc., upon receiving the refresh command REFRESH. The memory device 200 may care for the victim rows by the aggressor rows within the refresh window time tREFw based on the aggressor row refresh command signal.
Referring back to
In some embodiments, the row address multiplexer 251 may receive a row address RA from the address buffer 230 and a row address REF_RA to be refreshed from the refresh control circuit 290. The row address multiplexer 251 may selectively output the row address RA received from the address buffer 230 and the row address REF_RA received from the refresh control circuit 290 to the row decoder 250. In some embodiments, the row address multiplexer 251 may receive an internal command signal ICS (e.g., refresh signal) of the command decoder 220. The row address multiplexer 251 may output the row address REF_RA to be refreshed in response to the internal command signal ICS.
In
The row decoder 250 may select a row to be activated among the plurality of rows of the memory cell array 210 based on the row address RA or REF_RA. To this end, the row decoder 250 may apply a driving voltage to the row to be activated. In some embodiments, a plurality of row decoders 250a to 250h respectively corresponding to the plurality of memory banks 210a to 210h may be provided.
The column decoder 260 may select a column to be activated among a plurality of columns of the memory cell array 210 based on the column address CA. To this end, the column decoder 260 may activate the sense amplifier 211 corresponding to the column address CA through the I/O gating circuit 270. In some embodiments, a plurality of column decoders 260a to 260h respectively corresponding to the plurality of memory banks 210a to 210h may be provided. In some embodiments, the I/O gating circuit 270 gates input/output data and may include a data latch for storing data read from the memory cell array 210 and a write driver for writing data to the memory cell array 210. The data read from the memory cell array 210 may be detected by the sense amplifier 211 and stored in the I/O gating circuit 270 (e.g., data latch). In some embodiments, a plurality of sense amplifiers 211a to 211h respectively corresponding to a plurality of memory banks 210a to 210h may be provided.
In some embodiments, the bank control logic 240 may generate a bank control signal in response to the bank address BA. In response to the bank control signal, the row decoder 250 corresponding to the bank address (e.g., among the plurality of row decoders 250a to 250h) may be activated, and the column decoder 260 corresponding to the bank address (e.g., among the plurality of column decoders 260a to 260h) may be activated. The activated row decoder may apply a driving voltage to a row to be activated.
In some embodiments, the data (e.g., data stored in a data latch) read from the memory cell array 210 may be provided to the memory controller 120 through the data I/O buffer 280. The data to be written to the memory cell array 210 may be provided to the data I/O buffer 280 from the memory controller 120, and the data provided to the data I/O buffer 280 may be provided to the I/O gating circuit 270.
Referring to
The refresh control circuit 290 may transmit the row address REF_RA to be refreshed to the row decoder 250 in response to the refresh signal among the internal command signals ICS. The refresh control circuit 290 may include a row hammer managing circuit (RHMC) 291. The row hammer managing circuit 291 may monitor an aggressor pattern and determine aggressor rows from the aggressor pattern. The row hammer managing circuit 291 may sequentially output addresses of the aggressor rows in response to the aggressor row refresh command signal. For example, the row hammer managing circuit 291 may output a first aggressor row address in response to a first aggressor row refresh command signal and output a second aggressor row address in response to a second aggressor row refresh command signal. An address value of the second aggressor row address may be greater than an address value of the first aggressor row address, but the embodiment is not necessarily limited thereto.
The row hammer managing circuit 291 may include the plurality of row address generators and the row address checker to protect against the aggressor patterns having various lengths. The monitoring lengths (or intervals) of the plurality of row address generators may be different. For example, the plurality of row address generators may include a first row address generator and a second row address generator. The first row address generator may generate a row address based on a first monitoring length, and the second row address generator may generate a row address based on a second monitoring length, which is longer than the first monitoring length. The row address checker may determine one of the row addresses received from the plurality of row address generators as the aggressor row address. The configuration of the plurality of row address generators and the row address checker will be described later with reference to
In some embodiments, the row hammer managing circuit 291 may be included in the memory controller 120.
The refresh control circuit 290 may determine the victim row address based on the aggressor row address. The refresh control circuit 290 may output the victim row address as the row address REF_RA to be refreshed.
In some embodiments, the refresh control circuit 290 may further include a TRR control circuit and a normal refresh control circuit. The TRR control circuit may determine the aggressor row based on the count number of the active command and determine the victim row address based on the determined aggressor row. The TRR control circuit may output the row address where the TRR will be performed in response to the TRR command signal among the internal the command signals ICS.
The normal refresh control circuit may output the row address where the normal refresh operation will be performed in response to the normal refresh command signal among the internal the command signals ICS. The normal refresh control circuit may sequentially increase or decrease the row address each time the normal refresh operation is performed.
In some embodiments, the refresh control circuit 290 may further include a refresh row address selector. The refresh row address selector may selectively output the row addresses determined by the row hammer managing circuit 291, the TRR control circuit, and the normal refresh control circuit. For example, the refresh row address selector may output one of the row addresses as the refresh row address REF_RA in response to the refresh signal.
Referring to
The row hammer managing circuit 300 according to the embodiment may include a plurality of row address generators 310, 320, and 330 and a row address checker (REFA checker) 350.
The plurality of row address generators 310, 320, and 330 may receive active commands and row addresses. The plurality of row address generators 310, 320, and 330 may have different monitoring lengths. For example, the plurality of row address generators 310, 320, and 330 may include a first row address generator RGEN1 310 that operates based on a first monitoring length, second row address generators RGEN2_1 and RGEN2_2 320 that operate based on a second monitoring length, and Kth row address generators RGENK_1 to RGENK_M 330 that operate based on a Kth monitoring length (K is an integer greater than 2). In this case, the second monitoring length may be longer than the first monitoring length, and the Kth monitoring length may be longer than the second monitoring length.
In an embodiment, the command decoder 220 or the refresh control circuit 290 in
Each of the second and Kth row address generators 320 and 330 may also include the plurality of row address generators. The number of row address generators included in the second and Kth row address generators 320 and 330 may be determined based on the monitoring length. For example, the row hammer managing circuit 300 may include 2N−1 Nth row address generators having an Nth monitoring length that is N times (N is an integer greater than 1) the first monitoring length.
In an embodiment, the second row address generators 320 may include two second row address generators 321 and 322. The second monitoring length of the second row address generators 320 may be twice the first monitoring length. Monitoring start times of the second row address generators 321 and 322 may be different.
In an embodiment, the Kth row address generators 330 may include M Kth row address generators 331 to 333. The Kth monitoring length of the Kth row address generators 330 may be K times the first monitoring length. At this time, M may be equal to 2K−1. The monitoring start times of the Kth row address generators 331 to 333 may be different.
The plurality of row address generators 310, 320, and 330 may monitor the row addresses based on their own monitoring lengths. The plurality of row address generators 310, 320, and 330 may determine candidate addresses from the row addresses. The plurality of row address generators 310, 320, and 330 may output the candidate addresses to the row address checker 350 when receiving the aggressor row refresh command signal. In example embodiments, the times at which the command decoder 220 or the refresh control circuit 290 transmits the aggressor row refresh command signal to the plurality of row address generators 310, 320, and 330 may be the same or different.
The row address checker 350 may generate the aggressor row address AGRA based on the candidate addresses received from the plurality of row address generators 310, 320, and 330.
The row address checker 350 may verify the plurality of row address generators 310, 320, and 330 based on the candidate addresses. For example, the row address checker 350 may determine that the plurality of row address generators 310, 320, and 330 operate normally if the candidate addresses match. When the candidate addresses do not match, the row address checker 350 may determine that at least one of the plurality of row address generators 310, 320, and 330 operates abnormally.
In an embodiment, the row address checker 350 may compare candidate addresses of row address generators of adjacent levels. The row address generators of adjacent levels may refer to row address generators with adjacent monitoring lengths. For example, the first row address generator 310 and the second row address generators 320 may be the row address generators of adjacent levels.
The row address checker 350 may compare the candidate addresses of the first row address generator 310 with the candidate addresses of the second row address generators 320. For example, the row address checker 350 may compare the candidate addresses of the first row address generator 310 and the second row address generator 321 at the first aggressor row refresh time. For another example, the row address checker 350 may compare the candidate addresses of the first row address generator 310 and the second row address generator 322 at the first aggressor row refresh time and the subsequent second aggressor row refresh time.
The row address checker 350 may compare candidate addresses at different times. For example, at the second aggressor row refresh time, the row address checker 350 may compare the candidate address of the first row address generator 310 at the first aggressor row refresh time and the candidate address of the second row address generator 321 at the second aggressor row refresh time. The configuration in which the row address checker 350 compares the candidate addresses will be described later with reference to
In an embodiment, the row address checker 350 may determine that the first row address generator 310 operates abnormally when the candidate addresses of the first row address generator 310 and the second row address generators 320 do not match. That is, when the candidate addresses of the row address generators of adjacent levels do not match, the row address checker 350 may determine that a row address generator of a previous level among the two levels operates abnormally. For example, among the first level and the second level, the first level may be a level preceding the second level.
The row address checker 350 may correct a reference address of the first row address generator 310 that operates abnormally. The first row address generator 310 may generate a candidate address based on the corrected reference address.
Likewise, the row address checker 350 may compare the candidate addresses of the Kth row address generator 330 and the row address generator of the previous level and determine the row address generator that operates abnormally. In an embodiment, when K is 3, the row address generators of the previous level of the Kth row address generator 330 may be the second row address generators 320.
In addition, the row address checker 350 may determine one of the candidate addresses as the aggressor row address AGRA based on the comparison result. The row address checker 350 may output the aggressor row address AGRA. For example, when the plurality of row address generators 310, 320, and 330 operate normally, the row address checker 350 may determine the candidate address of the row address generator (i.e., the first row address generator 310) of the earliest level as the aggressor row address AGRA.
When at least one of the plurality of row address generators 310, 320, and 330 operates abnormally, the row address checker 350 may determine a candidate address of a row address generator at the subsequent level of the abnormally operating row address generator as the aggressor row address AGRA. For example, the row address checker 350 may determine the candidate address of the second row address generator 320 as the aggressor row address AGRA when the first row address generator 310 is abnormal, and determine the candidate address of the Kth row address generator 330 as the aggressor row address AGRA when the second row address generator 320 is abnormal (when K is 3).
The row address checker 350 may correct the reference address of the generator that operates abnormally. The plurality of row address generators 310, 320, and 330 may generate the candidate addresses by comparing the reference address and the row addresses.
Referring to
The row address checker 450 may receive candidate addresses from the first row address generator 410 and the second row address generators 420. The row address checker 450 may generate the aggressor row address AGRA based on the candidate addresses. In an embodiment, the row address checker 450 may output one of the candidate addresses as the aggressor row address AGRA.
Referring to
The row address checker 450 may receive an aggressor pattern from times t2 to t4. The aggressor pattern may have a uniform row distribution type. In other words, the aggressor pattern may be a pattern in which a certain number of rows are repeatedly activated. In an embodiment, the aggressor pattern may be shorter (or shorter or equal to) than the ‘refresh interval’. The row address checker 450 may sequentially process the aggressor rows of the aggressor pattern at times t5 and t8. For example, the aggressor pattern may include a first aggressor row and a second aggressor row. The second aggressor row may have a larger row address number than the first aggressor row. The row address checker 450 may refresh adjacent rows of the first aggressor row at time t5. The row address checker 450 may refresh adjacent rows of the second aggressor row at time t8.
Referring to
The first row address generator 410 and the second row address generators 420 may transmit candidate addresses B to F to the row address checker 450 at times tf0 to tf5. In an embodiment, the times tf0, tf1, and tf2 in
The first row address generator 410 may transmit the candidate addresses based on the first monitoring length. A first monitoring length may correspond to the ‘refresh interval in
The first row address generator 410 may output a candidate address B at the time tf1 based on the row addresses received from time tf0 to time tf1 and the reference address A. At the time tf1, the second row address generators 420 do not output the candidate addresses, and the row address checker 450 may output the candidate address B as the aggressor row address AGRA. The configuration in which the first row address generator 410 determines the candidate addresses based on the row addresses and the reference address will be described later with reference to
The second row address generators 420 may transmit the candidate addresses based on the second monitoring length. The second monitoring length may correspond to the ‘(refresh interval in
The row address checker 450 may compare the previous candidate address B of the first row address generator 410 with the candidate address B of the second row address generator 421 at the time tf2 (S11). The candidate address B of the first row address generator 410, which is the comparison target, may be the candidate address B output at the previous time tf1. For example, the row address checker 450 may store the candidate addresses output from the first row address generator 410.
The row address checker 450 may confirm that the candidate addresses B match and determine that the row address generators 410 and 421 are operating normally. The row address checker 450 may output the candidate address C of the first row address generator 410 as the aggressor row address AGRA.
The row address checker 450 may transmit a reference address change signal to the second row address generator 421. The reference address change signal may include the candidate address C of the first row address generator 410 at the time tf2. The second row address generator 421 may change the reference address to C based on the reference address change signal. The second row address generator 421 may output the candidate address D at the time tf4 based on the row addresses received from the time tf2 to the time tf4 and the reference address C.
Likewise, the row address checker 450 may compare the previous candidate address C of the first row address generator 410 with the candidate address C of the second row address generator 421 at the time tf3 (S12). Since the candidate addresses C match, the row address checker 450 may output the candidate address D as the aggressor row address AGRA. The row address checker 450 may change the reference address of the second row address generator 422 to D.
The row address checker 450 may perform the comparison operations (S13 and S14) at the times tf4 and tf5 and output the candidate addresses E and F as the aggressor row address AGRA. In this way, the row hammer managing circuit 400 may protect against the aggressor pattern shorter than the refresh interval.
Referring to
The row address checker 450 may receive the aggressor pattern at the times t2 to t7. The aggressor pattern may have the uniform row distribution type. In other words, the aggressor pattern may be the pattern in which a certain number of rows are repeatedly activated. In an embodiment, the aggressor pattern may be longer than the ‘refresh interval’ and shorter (or shorter or equal to) than the ‘refresh interval*2’. The row address checker 450 may process the aggressor row of the aggressor pattern at the time t8.
Referring to
The first row address generator 410 and the second row address generators 420 may transmit candidate addresses B to F to the row address checker 450 at the times tf0 to tf4. In an embodiment, the times tf2, tf3, and tf4 in
The operation of the row hammer managing circuit 400 at the times tf0 to tf2 may be the same in
Since the aggressor pattern is longer than the refresh interval, the first row address generator 410, which determines the candidate address based on the refresh interval, may determine an incorrect candidate address. For example, the first row address generator 410 may output the candidate address E at the time tf3 based on the row addresses received from the time tf2 to the time tf3 and the reference address C. At the time tf3, the candidate address E is not a comparison target, so it may not be determined whether the candidate address E is incorrect.
The row address checker 450 may compare the previous candidate address C of the first row address generator 410 with the candidate address C of the second row address generator 422 at the time tf3 (S22). The candidate address C of the first row address generator 410, which is the comparison target, may be the candidate address C output at the previous time tf2.
The row address checker 450 may confirm that the candidate addresses C match and determine that the row address generators 410 and 422 operate normally. The row address checker 450 may output the candidate address E of the first row address generator 410 as the aggressor row address AGRA.
The row address checker 450 may transmit the reference address change signal to the second row address generator 422. The reference address change signal may include the candidate address E of the first row address generator 410 at the time tf3. The second row address generator 422 may change the reference address to E based on the reference address change signal.
The second row address generator 421 may output the candidate address D at the time tf4 based on the row addresses received from the time tf2 to the time tf4 and the reference address C.
The row address checker 450 may compare the previous candidate address E of the first row address generator 410 with the candidate address D of the second row address generator 421 at the time tf4 (S23). Since the candidate addresses D and E do not match, the row address checker 450 may determine that the first row address generator 410 of the previous level (level 1) operates abnormally. That is, when the candidate addresses do not match, the row address checker 450 may determine that the row address generator of the previous level is abnormal. In an embodiment of
The row address checker 450 may change the reference address of the first row address generator 410 to the candidate address D of the second row address generator 421. That is, the first row address generator 410 outputs the candidate address F at the time tf4, but since the candidate address F is generated based on the incorrect candidate address E at the time tf3, the reference address changes to D.
The row address checker 450 may initialize the second row address generator 422. In this case, the initialization may mean deactivation of the candidate address. For example, the row address checker 450 may deactivate the candidate address to be output by the second row address generator 422 at the time (e.g., tf5) after the time tf4. In other words, the row address checker 450 may not use the candidate address output from the second row address generator 422 at the time tf5 in the comparison operation. The second row address generator 422 may output the candidate address based on the reference address C at the subsequent refresh time of the aggressor row refresh operation F4.
Since the row address checker 450 determines that the first row address generator 410 is abnormal in the comparison operation (S23), it may output the candidate address D of the second row address generator 421 as the aggressor row address AGRA. In this way, the row hammer managing circuit 400 may protect against the aggressor pattern longer than the refresh interval.
Referring to
The third row address generators 530 may include four third row address generators 531 to 534. A third monitoring length of the third row address generators 530 may be four times a first monitoring length. The third row address generators 531 to 534 may have different monitoring start times. The third row address generators 531 to 534 may start monitoring at a time interval of the first monitoring length. For example, the third row address generator 531 may start monitoring and the third row address generator 532 may start monitoring after the first monitoring length.
The row address checker 550 may receive the candidate addresses from the first to third row address generators 510 to 530. The row address checker 550 may generate the aggressor row address AGRA based on the candidate addresses. In an embodiment, the row address checker 550 may output one of the candidate addresses as the aggressor row address AGRA.
Referring to
The row address checker 550 may receive the aggressor pattern from the times t2 to t4. The aggressor pattern may have the uniform row distribution type. In other words, the aggressor pattern may be the pattern in which a certain number of rows are repeatedly activated. In an embodiment, the aggressor pattern may be shorter (or shorter or equal to) than the ‘refresh interval’. The row address checker 550 may sequentially process the aggressor rows of the aggressor pattern at the times t5, t8, t11, and t14. For example, the aggressor pattern may include a first aggressor row, a second aggressor row, a third aggressor row, and a fourth aggressor row. The second aggressor row may have a row address number greater than the first aggressor row, the third aggressor row may have a row address number greater than the second aggressor row, and the fourth aggressor row may have a row address number greater than the third aggressor row. The row address checker 550 may sequentially refresh adjacent rows of the first to fourth aggressor rows at the times t5, t8, t11, and t14.
Referring to
The first to third row address generators 510 to 530 may transmit the candidate addresses B to H to the row address checker 550 at the times tf0 to tf7. In an embodiment, the times tf0, tf1, tf2, tf3, and tf4 of
The first row address generator 510 may transmit the candidate addresses based on the first monitoring length. The first monitoring length may correspond to the ‘refresh interval in
The third row address generators 531-534 may be initialized at different times. For example, the third row address generators 531 to 534 may be initialized at each time tf0, tf1, tf2, and tf3 and may start an operation. For example, the third row address generators 531 to 534 may sequentially output the candidate addresses at each time of the aggressor row refresh operation F0 to F7. For example, the third row address generator 531 may transmit the candidate address B at the time tf4, the third row address generator 532 may transmit the candidate addresses C at the time tf5, the third row address generator 533 may transmit the candidate addresses D at the time tf6, and the third row address generator 534 may transmit the candidate address E at the time tf7.
The contents of
The row address checker 550 may compare the candidate addresses of the second and third row address generators 520 and 530. For example, the row address checker 550 may compare the candidate addresses of the second row address generator 521 and the third row address generators 531 and 533, and compare the candidate addresses of the second row address generator 522 and the third row address generators 532 and 534.
The row address checker 550 may compare the previous candidate address B of the second row address generator 521 with the candidate address B of the third row address generator 531 at the time tf4 (S32). The candidate address B of the second row address generator 521 to be compared may be the candidate address B output by the second row address generator 521 at the previous time (or immediately preceding time, that is, at the time tf2). For example, the row address checker 550 may store the candidate addresses output from the first to third row address generators 510 to 530. In some embodiments, the row address checker 550 may store the candidate addresses output from the first and second row address generators 510 and 520.
The row address checker 550 may confirm that the candidate addresses B match and determine that the row address generators 521 and 531 operate normally. The row address checker 550 may output the candidate address E of the first row address generator 510 as the aggressor row address AGRA.
The row address checker 550 may transmit the reference address change signal to the third row address generator 531. The reference address change signal may include the candidate address E of the first row address generator 510 at the time tf4. The third row address generator 531 may change the reference address to E based on the reference address change signal. The row address checker 550 may confirm that the candidate addresses D of the first and second row address generators 510 and 521 match at the time tf4, and may also transmit the reference address change signal to the second row address generator 521. The second row address generator 521 may change the reference address to E based on the reference address change signal.
Likewise, the row address checker 550 checks that the candidate addresses of the first to third row address generators 510 to 530 match at the time tf5 to tf7, and determine that the first to third row address generators 510 to 530 operates normally. The row address checker 550 may output the candidate addresses E, F, G, and H of the first row address generator 510 as the aggressor row address AGRA, and change the reference addresses of the second and third row address generators 520 and 530 to E, F, G, and H. In this way, the row hammer managing circuit 500 may protect against the aggressor pattern shorter than the refresh interval.
Referring to
The row address checker 550 may receive the aggressor pattern from the times t2 to t6. The aggressor pattern may have the uniform row distribution type. In other words, the aggressor pattern may be a pattern in which a certain number of rows are repeatedly activated. In an embodiment, the aggressor pattern may be longer than the ‘refresh interval’ and shorter (or shorter or equal to) than the ‘refresh interval*2’. The row address checker 550 may process the aggressor row of the aggressor pattern at the times t8, t11, and t14.
Referring to
The first to third row address generators 510 to 530 may transmit the candidate addresses B to H to the row address checker 550 at the times tf0 to tf6. In an embodiment, the times tf4, tf5, and tf6 in
The operation at the times tf0 to tf4 of the row hammer managing circuit 500 may be the same in
Since the aggressor pattern is longer than the refresh interval, the first row address generator 510, which determines the candidate address based on the refresh interval, may determine an incorrect candidate address. For example, the first row address generator 510 may output the candidate address G at the time tf5 based on the row addresses received from the time tf4 to the time tf5 and the reference address E. At the time tf5, the candidate address G is not the comparison target, so it may not be determined whether the candidate address G is incorrect.
The row address checker 550 may compare the previous candidate address E of the first row address generator 510 with the candidate address E of the second row address generator 522 at the time tf5, and compare the previous candidate address C of the second row address generator 522 with the candidate address C of the third row address generator 532. The row address checker 550 may confirm that the candidate addresses E and C match. The row address checker 550 may output the candidate address G of the first row address generator 510 as the aggressor row address AGRA. The row address checker 550 may change the reference addresses of the second and third row address generators 522 and 532 to the candidate address G of the first row address generator 510.
The row address checker 550 may compare the previous candidate address G of the first row address generator 510 with the candidate address F of the second row address generator 521 at the time tf6 (S41). Since the candidate addresses G and F do not match, the row address checker 550 may determine that the first row address generator 510 of the previous level (level 1) operates abnormally. That is, when the candidate addresses do not match, the row address checker 550 may determine that the row address generator of the previous level is abnormal. In the embodiment of
The row address checker 550 may change the reference address of the first row address generator 510 to the candidate address F of the second row address generator 521 (S42). That is, the first row address generator 510 outputs the candidate address H at the time tf6, but the candidate address H is generated based on the incorrect candidate address G at the time tf5, so the reference address changes to F.
The row address checker 550 may initialize the second and third row address generators 522 and 532 whose reference addresses changes based on the candidate address G of the first row address generator 510 (S43 and S44). For example, the address checker 450 may deactivate the candidate address to be output by the second row address generator 522 at the time (e.g., tf7) after the time tf6. The row address checker 450 may deactivate the candidate address to be output by the third row address generator 532 at a time (for example, tf9) after the time tf6.
Since the row address checker 550 determines that the first row address generator 510 is abnormal in the comparison operation (S41), it may output the candidate address F of the second row address generator 521 as the aggressor row address AGRA. In this way, the row hammer managing circuit 500 may protect against the aggressor pattern that is longer than the refresh interval.
Referring to
The row address checker 550 may receive the aggressor pattern from times t2 to t10. The aggressor pattern may have the uniform row distribution type. In other words, the aggressor pattern may be a pattern in which a certain number of rows are repeatedly activated. In an embodiment, the aggressor pattern may be longer than the ‘refresh interval*2’ and shorter (or shorter or equal to) than the ‘refresh interval*4’. The row address checker 550 may process the aggressor row of the aggressor pattern at the times t8, t11, and t14.
Referring to
The first to third row address generators 510 to 530 may transmit the candidate addresses B to G, K, L, and N to the row address checker 550 at the times tf0 to tf7. In an embodiment, the times tf3, tf4, tf5, tf6, and tf7 in
The operation at the times tf0 to tf3 of the row hammer managing circuit 500 may be the same in
Since the aggressor pattern is longer than the ‘refresh interval*2’, the first row address generator 510, which determines the candidate address at the refresh interval, or the second row address generator 520, which determines the candidate address at the ‘refresh interval*2’, may determine the incorrect candidate address. For example, the first row address generator 510 may output the candidate address F at the time tf4 based on the row addresses received from the time tf3 to the time tf4 and the reference address D. At the time tf4, the candidate address F is not the comparison target, so it may not be determined whether the candidate address F is incorrect.
The row address checker 550 may compare the previous candidate address D of the first row address generator 510 with the candidate address D of the first row address generator 521 at the time tf4, and compare the previous candidate address B of the second row address generator 521 with the candidate address B of the third row address generator 531. The row address checker 550 may confirm that the candidate addresses D and B match. The row address checker 550 may output the candidate address F of the first row address generator 510 as the aggressor row address AGRA. The row address checker 550 may change the reference addresses of the second and third row address generators 521 and 531 to the candidate address F of the first row address generator 510.
In addition, the second row address generator 521 may output the candidate address G at the time tf5 based on the row addresses received from the time tf3 to the time tf5 and the reference address D. At the time tf5, the candidate address G is not the comparison target, so it may not be determined whether the candidate address G is incorrect.
The row address checker 550 may compare the previous candidate address F of the first row address generator 510 with the candidate address G of the second row address generator 522 at the time tf5. Since the candidate addresses F and G do not match, the row address checker 550 may determine that the first row address generator 510 of the previous level (level 1) operates abnormally. That is, when the candidate addresses do not match, the row address checker 550 may determine that the row address generator of the previous level is abnormal.
The row address checker 550 may change the reference address of the first row address generator 510 to the candidate address G of the second row address generator 521. That is, the first row address generator 510 outputs the candidate address K at the time tf5, but the candidate address K is generated based on the incorrect candidate address F at the time tf4, so the reference address changes to G.
The row address checker 550 may initialize the second and third row address generators 521 and 531 whose reference addresses changes based on the candidate address F of the first row address generator 510. The row address checker 550 may set the reference address of the second row address generator 521 to the candidate address L of the first row address generator 510 at the time tf6. The second row address generator 521 may output the candidate addresses based on the reference address L.
The row address checker 550 may compare the previous candidate address C of the second row address generator 521 with the candidate address C of the third row address generator 532 at the time tf5. Since the candidate addresses C match, the row address checker 550 may change the reference address of the third row address generator 532 to G. The row address checker 550 may output the candidate address G of the second row address generator 521 as the aggressor row address AGRA.
The row address checker 550 may compare the previous candidate address D of the second row address generator 521 with the candidate address D of the third row address generator 533 at the time tf6. Since the candidate addresses D match, the row address checker 550 may output the candidate address L of the first row address generator 510 as the aggressor row address AGRA. The row address checker 550 may change the reference address of the third row address generator 533 to the candidate address L of the first row address generator 510. At the time tf6, the second row address generator 521 is in an initialized state, so the candidate addresses of the first and second row address generators 510 and 521 may not be compared. The row address checker 550 may determine the candidate address L of the first row address generator 510 as the reference address of the second row address generator 521.
The row address checker 550 may compare the previous candidate address L of the first row address generator 510 with the candidate address K of the second row address generator 521 at the time tf7 (S51). Since the candidate addresses L and K do not match, the row address checker 550 may determine that the first row address generator 510 of the previous level (level 1) operates abnormally.
The row address checker 550 may change the reference address of the first row address generator 510 to the candidate address K of the second row address generator 521 (S52). That is, the first row address generator 510 outputs the candidate address N at the time tf7, but the candidate address N is generated based on the incorrect candidate address L at the time tf6, so the reference address changes to K.
The row address checker 550 may compare the previous candidate address G of the second row address generator 522 with the candidate address E of the third row address generator 534 at the time tf7. Since the candidate addresses G and E do not match, the row address checker 550 may determine that the second row address generator 522 of the previous level (level 2) operates abnormally. In the embodiment of
The row address checker 550 may change the reference addresses of the first and second row address generators 510 and 522 to the candidate address E of the third row address generator 534. That is, the candidate addresses N and K of the first and second row address generators 510 and 522 at the time tf7 are incorrect, so the reference address changes to E.
In addition, the row address checker 550 may initialize the second and third row address generators 521, 531, 532, and 533 (S56, S57, S58, and S59). The second and third row address generators 521, 531, 532, and 533 may be initialized because they generate the candidate addresses based on the incorrect reference addresses F, G, and L at the times tf4 to tf6.
Since the row address checker 550 determines that the second row address generator 522 is abnormal in the comparison operation (S51), it may output the candidate address E of the third row address generator 534 as the aggressor row address AGRA. In this way, the row hammer managing circuit 500 may protect against the aggressor pattern that is longer than the ‘refresh interval*2’.
Referring to
The first row address generator 610 may receive a row address Rx, a monitoring signal CMD1, an active signal Act, and a reference address Rpre,in. The first row address generator 610 may store a candidate address Rf,out based on the received signals, and output the candidate address Rf,out in response to the monitoring signal CMD1. The monitoring signal CMD1 may be a signal instructing an aggressor row refresh operation. The monitoring signal CMD1 may be a signal corresponding to the aggressor row refresh command signal (e.g., generated by the command decoder 220 or the refresh control circuit 290 in
The second row address generators 621 and 622 may receive the row address Rx, the monitoring signals CMD2 and CMD3, the active signal Act, a mode control signal Min, and the reference address Rpre,in. The second row address generators 621 and 622 may store the candidate address Rf,out based on the received signals, and output the candidate address Rf,out in response to the monitoring signals CMD2 and CMD3. The monitoring signals CMD2 and CMD3 may be signals generated based on the aggressor row refresh command signal and a second monitoring length. The monitoring signals CMD2 and CMD3 may have a cycle corresponding to the second monitoring length. For example, the second row address generators 621 and 622 may alternately output the candidate address Rf,out at different aggressor row refresh times.
The second row address generators 621 and 622 may output a mode confirmation signal Mout to the row address checker 650 in response to the mode control signal Min. When the second row address generators 621 and 622 receive the mode control signal Min, they may also output the mode confirmation signal Mout when outputting the candidate address Rf,out.
When the row address checker 650 receives the mode confirmation signal Mout, it may ignore the candidate address Rf,out without using the candidate address Rf,out. For example, when the row address checker 650 receives the mode confirmation signal Mout from the second row address generator 621, it may not use the candidate address Rf,out of the second row address generator 621. In this case, the mode confirmation signal Mout may be a signal for initialization. The row address checker 650 may receive the mode confirmation signal Mout from the second row address generator 621 and transmit a new reference address Rpre,in to the second row address generator 621.
In some embodiments, the second row address generators 621 and 622 and the row address checker 650 may operate without the mode control signal Min and the mode confirmation signal Mout. For example, the row address checker 650 may compare the candidate addresses Rf,out and determine the second row address generator (e.g., 621) to initialize. Even if the row address checker 650 receives the candidate address Rf,out from the second row address generator 621, it may not be used in the comparison operation. The row address checker 650 may transmit the new reference address Rpre,in to the second row address generator 621.
The row address checker 650 may receive the candidate addresses Rf,out from the first row address generator 610 and the second row address generators 621 and 622. The row address checker 650 may generate the aggressor row address AGRA based on the candidate addresses Rf,out. In an embodiment, the row address checker 650 may output one of the candidate addresses Rf,out of the row address generators 610, 621, and 622 as the aggressor row address AGRA. When the row address checker 650 receives the monitoring signal CMD1, it may output the aggressor row address AGRA. For example, the row address checker 650 may output the aggressor row address AGRA every time the aggressor row refresh command signal. The configuration in which the row address checker 650 determines the aggressor row address AGRA may be applied in the same way as described with reference to
Referring to
The first row address generator 700 may receive an input row address ROW_ADD and the monitoring signal CMD1, and provide a candidate address CADD for protecting against the aggressor pattern based on the input row address ROW_ADD and the monitoring signal CMD1. The input row address ROW_ADD may correspond to the row address Rx in
The register control circuit 710 may control the second register 740 based on the input row address ROW_ADD, the monitoring signal CMD1, a first comparison result signal CR1, a second comparison result signal CR2, and a flag signal FLAG.
The monitoring signal CMD1 may instruct monitoring in cycles of the first monitoring length. For example, the monitoring signal CMD1 may correspond to the aggressor row refresh command signal. For example, in
In some embodiments, when the input row address ROW_ADD is first input in a monitoring period, the register control circuit 710 may provide the input row address ROW_ADD to the second register 740. The second register 740 may store the input row address ROW_ADD. The input row address ROW_ADD first input may be referred to as the first input row address. When the first input row address is input, the flag signal FLAG may have a first bit value. For example, the first bit value may be “0” and a second bit value may be “1”, but are not limited thereto. Hereinafter, it is assumed that the first bit value of the flag signal FLAG is “0” and the second bit value is “1”.
In some embodiments, when the first input row address is smaller than or equal to the reference address Rpre (e.g., Rpre,in), the flag signal FLAG may have the first bit value. Meanwhile, when the first input row address is greater than the reference address Rpre, the flag signal FLAG may have the second bit value.
In some embodiments, the flag signal FLAG has a first bit value, and the input row address ROW_ADD input after the first input row address in the monitoring period may be greater than the reference address Rpre. In this case, the register control circuit 710 may provide the input row address ROW_ADD to the second register 740 so that the second register 740 stores the input row address ROW_ADD. The bit value of the flag signal FLAG may change from the first bit value to the second bit value. The fact that one row address is greater than another row address may mean, for example, that the address value of the row address is relatively large or that the number of the row address is relatively large.
In some embodiments, the flag signal FLAG may have the first bit value, the input row address ROW_ADD input after the first input row address may be smaller than or equal to the reference address Rpre, and the input row address ROW_ADD may be smaller than or equal to the row address Rfind stored in second register 740. In this case, the register control circuit 710 may provide the input row address ROW_ADD to the second register 740 so that the second register 740 stores the input row address ROW_ADD. The flag signal FLAG may maintain the first bit value.
In some embodiments, the flag signal FLAG may have the first bit value, and the input row address ROW_ADD input after the first input row address may be smaller than or equal to the reference address Rpre and greater than the row address Rfind stored in second register 740. In this case, the register control circuit 710 may wait without storing the input row address ROW_ADD in the second register 740. The flag signal FLAG may maintain the first bit value.
In some embodiments, the flag signal FLAG may have the second bit value, and the input row address ROW_ADD input after the first input row address may be greater than the reference address Rpre and smaller than the row address Rfind stored in second register 740. In this case, the register control circuit 710 may provide the input row address ROW_ADD to the second register 740 so that the second register 740 stores the input row address ROW_ADD. The flag signal FLAG may maintain the second bit value.
In some embodiments, the register control circuit 710 may control the second register 740 so that second register 740 provides the row address Rfind to the first register 720 in response to the monitoring signal CMD1. The register control circuit 710 may control the second register 740 so that the second register 740 outputs the row address Rfind as the candidate address CADD in response to the monitoring signal CMD1. The second register 740 may output the candidate address CADD to the row address checker. In this case, the flag signal FLAG may have an initial value. The initial value may be, for example, the first bit value. However, it is not limited thereto.
The first register 720 may store the reference address Rpre. The reference address Rpre may be a row address that has been detected as the candidate address CADD in the previous monitoring period of the monitoring period. The first register 720 may provide the reference address Rpre to the first comparator 730. In some embodiments, the first register 720 may store the row address Rfind output from the second register 740 as the reference address Rpre. In this specification, the row address stored in the first register 720 may be referred to as the reference address Rpre.
The first register 720 may receive the reference address change signal from the row address checker. The first register 720 may change the reference address Rpre based on the reference address change signal.
The first comparator 730 may compare the input row address ROW_ADD provided from the memory controller (e.g., 120 in
The second register 740 may store the input row address ROW_ADD under control of the register control circuit 710. The second register 740 may provide the stored row address Rfind to the second comparator 750. The second register 740 may output the stored row address Rfind under the control of the register control circuit 710. The output row address Rfind may be provided to the first register 720, and/or the output row address Rfind may be provided to the row address checker as the candidate address CADD.
In some embodiments, during the monitoring period, the input row address ROW_ADD may be stored in the second register 740 as a candidate for the candidate address CADD. That is, the input row address ROW_ADD may be a candidate for the candidate address CADD, and the candidate address CADD may be a candidate for the aggressor row address (e.g., AGRA in
In some embodiments, the input row address ROW_ADD detected as the candidate address CADD may be greater than the reference address Rpre. In addition, the number of input row addresses ROW_ADD that are detected as the candidate addresses CADD in a specific monitoring period may be one. Accordingly, the candidate addresses CADD greater than the reference address Rpre may be detected one by one during each monitoring period. In some embodiments, the input row address ROW_ADD, which is detected as the candidate address CADD greater than the reference address Rpre, may be sequentially stored in the second register 740. Here, the sequentially stored order is, for example, ascending order, and in this case, the ascending order may mean that the number of the row address gradually increases. However, it is not limited thereto.
The second comparator 750 may compare the input row address ROW_ADD with the row address Rfind stored in the second register 740, and output the second comparison result signal CR2. The second comparison result signal CR2 may represent the comparison result between the input row address ROW_ADD and the row address Rfind.
For example, when the input row address ROW_ADD is smaller than the row address Rfind, the second comparison result signal CR2 may have a third value. As another example, when the input row address ROW_ADD is greater than or equal to the row address Rfind, the second comparison result signal CR2 may have a fourth value different from the third value. In an embodiment, the third value and the fourth value may be expressed as bit values, but are not limited thereto. The second comparison result signal CR2 may be provided to the register control circuit 710 and the flag generation circuit 760. The second comparator 750 may be implemented as a digital comparator, but is not limited thereto.
The flag generation circuit 760 may output the flag signal FLAG based on the monitoring signal CMD1, the first comparison result signal CR1, and the second comparison result signal CR2. In some embodiments, if the input row address ROW_ADD is smaller than or equal to the reference address Rpre, the flag generation circuit 760 may output the flag signal FLAG having the first bit value. In some embodiments, when the input row address ROW_ADD is greater than the reference address Rpre in the state where the flag signal FLAG has the first bit value, the flag generation circuit 760 may output the flag signal FLAG having the second bit value.
In some embodiments, the flag generation circuit 760 may initialize the flag signal FLAG in response to the monitoring signal CMD1. In this case, the flag signal FLAG may have an initial value, and the initial value may be, for example, the first bit value.
The flag signal FLAG may be a signal that indicates execution of either a first mode or a second mode by having the first bit value or the second bit value. In an embodiment, when the flag signal FLAG has the first bit value, the first row address generator 700 may execute the first mode. The first mode may be a mode that detects a first minimum input row address among the plurality of input row addresses ROW_ADD. In another embodiment, when the flag signal FLAG has the second bit value, the first row address generator 700 may execute the second mode. The second mode may be a mode that detects a second minimum input row address among the input row addresses ROW_ADD that are greater than the reference address Rpre.
The flag generation circuit 760 may include a mode control circuit 761 and a status register 762. The mode control circuit 761 may control the status register 762 based on the first comparison result signal CR1, the second comparison result signal CR2, and the monitoring signal CMD1.
In some embodiments, the mode control circuit 761 may control the status register 762 to output the flag signal FLAG having the initial value in response to the monitoring signal CMD1. The initial value may be, for example, the first bit value.
In some embodiments, when the first comparison result signal CR1 has the first value in the state in which the flag signal FLAG has the initial value, the mode control circuit 761 may control the status register 762 to output the flag signal FLAG having the first bit value.
In some embodiments, when the first comparison result signal CR1 has the second value in the state in which the flag signal FLAG has the initial value, the mode control circuit 761 may control the status register 762 to output the flag signal FLAG having the second bit value.
In some embodiments, when the first comparison result signal CR1 has the first value and the second comparison result signal CR2 has the third value in the state in which the flag signal FLAG has the first bit value, the mode control circuit 761 may control the status register 762 to output the flag signal FLAG having the first bit value.
As described above, the first row address generator 700 has the advantage of efficiently controlling the row hammer by including a register for storing addresses that have been detected as the candidate address CADD and a register for storing addresses to be detected as the candidate address CADD.
In addition, according to the above description, the number of registers included in the first row address generator 700 is reduced, which has the effect of improving the integration of the memory device.
Referring to
For example, it is assumed that the row hammer aggressor pattern is a pattern in which a row hammer attack is performed on memory cell rows having a row address 10 R10, a row address 30 R30, a row address 100 R100, and a row address 1000 R1000, respectively, more than once. The cycle of the aggressor row refresh operation may correspond to the type of row address that is subject to a row hammer attack. For example, in the row hammer aggressor pattern illustrated in
In an embodiment, the monitoring signal CMD2 of
The total number of accesses within a cycle of the refresh operation may correspond to the product of the cycle and the type of row address subject to the row hammer attack. For example, within the cycle corresponding to the time interval (e.g., between the time tf0 and the time tf1) between one monitoring signal CMD1 and another monitoring signal CMD1, the number of access counts ACC CNT is “6”, so, the total number of accesses within the cycle of the refresh operation may be “24 (=6*4)”. However, it is not limited thereto.
Referring to
It is assumed that the initial value of the reference address Rpre is the row address 30 R30.
The access count ACC CNT may increase by +1 each time each of the row addresses R10, R30, R100, and R1000 is input to the first row address generator 700. The access count ACC CNT may be initialized to the initial value in response to the monitoring signal CMD1. Referring to
When the monitoring signal CMD1 is input, the flag signal FLAG may be the first bit value (e.g., “0”).
Referring to the first monitoring period pMNT1 illustrated in
In some embodiments, the first row address generator 700 may execute one of the first mode and the second mode based on the first input row address and the reference address Rpre. Referring
In some embodiments, when the input row address input after the first input row address in the second mode is greater than the reference address Rpre and the input row address is smaller than the temporarily stored row address (as the candidate for the candidate address CADD), the first row address generator 700 may temporarily store the input row address as the candidate for the candidate address CADD.
In an embodiment, in second mode, when the input row address is greater than the reference address Rpre and smaller than the row address Rfind already stored in the second register 740, the input row address may be stored in the second register 740.
Referring to
In some embodiments, in the second mode, the first row address generator 700 may output the row address temporarily stored in the monitoring period as the candidate address CADD in response to the monitoring signal CMD1.
As illustrated in the row address Rfind in the first monitoring period pMNT1 illustrated in
In some embodiments, the first row address generator 700 may detect the first input row address greater than the reference address Rpre as the candidate address CADD among the plurality of input row addresses in the first monitoring period pMNT1, and store the detected first input row address in the second resistor 740. In an embodiment, the first input row address (or first row address) may be the smallest row address among the input row addresses (or row addresses) input during the first monitoring section.
Referring to
In some embodiments, during the refresh operation (i.e., at the time tf1) after the first monitoring period pMNT1, the first row address generator 700 may store the first input row address (or first row address) in the first register 720 as the reference address Rpre. Referring to
Referring to the second monitoring period pMNT2 after the first monitoring period pMNT1 illustrated in
In some embodiments, the first row address generator 700 may store the first input row address (or first row address) as the reference address Rpre in the second monitoring period pMNT2. Referring to
In some embodiments, the first row address generator 700 may execute the first mode when the first input row address is smaller than or equal to the reference address Rpre. Referring to
In some embodiments, in the first mode, when the input row address input after the first input row address is greater than the reference address Rpre, the first row address generator 700 may temporarily store the input row address as the candidate for the candidate address CADD, and execute the second mode. Referring to
In some embodiments, the first row address generator 700 may detect the second input row address (or second row address) greater than the first input row address (or first row address) as the candidate address CADD in the second monitoring period pMNT2, and store the second input row address (or second row address) in the second register 740. In an embodiment, the second input row address (or second row address) may be a row address next smaller than the first input row address (or first row address) among the row addresses input during the second monitoring section.
Referring to
In some embodiments, during the refresh operation after the second monitoring period pMNT2, the first row address generator 700 may store the second input row address (or second row address) in the first register 720 as the reference address Rpre. Referring to
In some embodiments, in the third monitoring period pMNT3 after the second monitoring period pMNT2 illustrated in
In some embodiments, in the first mode, when the input row address input after the first input row address is smaller than or equal to the reference address Rpre and the input row address is smaller than or equal to the row address temporarily stored as the candidate for the candidate address CADD, the first row address generator 700 may temporarily store the input row address as the candidate in the candidate address CADD.
For example, referring to
In some embodiments, when the plurality of input row addresses are smaller than or equal to the reference address Rpre, the first row address generator 700 may detect the minimum input row address among the plurality of input row addresses as the candidate address CADD. For example, referring to
According to the above-described embodiment, there is an effect of improving the integration of the memory device by controlling various types of row hammers.
In addition, according to the above-described embodiment, it is possible to improve the performance and reliability of the memory device by controlling various types of row hammers.
Referring to
The memory device may generate candidate addresses based on the reference address and different monitoring information (S1810). The monitoring information may include a monitoring start time and a monitoring length. The monitoring start time corresponds to an aggressor row refresh time, and the basic unit of the monitoring length may be an aggressor row refresh interval. For example, the first monitoring length may correspond to the aggressor row refresh interval, and the second monitoring length may correspond to the ‘aggressor row refresh interval*2’. The monitoring length may correspond to the monitoring level. For example, the first monitoring length may correspond to the first level (higher level), and the second monitoring length may correspond to the second level (lower level).
For example, the memory device may monitor the input row address based on different monitoring start times and/or different monitoring lengths. For example, the memory device may perform monitoring based on the first monitoring length at a first refresh time, monitoring based on the second monitoring length at the first refresh time, and monitoring based on the second monitoring length at a second refresh time following the first refresh time.
The memory device may perform monitoring by comparing the reference address and input row addresses. As a result of the monitoring, the memory device may output one of the input row addresses as the candidate address. In an embodiment, the memory device may output the smallest address among the input row addresses that is greater than the reference address (or the immediately preceding aggressor row address) as the candidate address. In an embodiment, when there is no input row address greater than the reference address, the memory device may output the smallest address among the input row addresses as the candidate address.
The memory device may compare the candidate addresses (S1820). In this case, the memory device may compare the candidate addresses at different times. For example, the memory device may compare a higher-level candidate address at a previous time and a lower-level candidate address at a current time. That is, the memory device may store the candidate addresses. When the candidate addresses match, the memory device may determine it as the normal monitoring. When the candidate addresses do not match, the memory device may determine it as the abnormal monitoring.
The memory device may modify the reference address based on the comparison result (S1830). In addition, the memory device may determine the aggressor row address based on the comparison result (S1840).
In an embodiment, the memory device may modify the lower-level reference address when the candidate addresses match (i.e., normal monitoring). The memory device may use the higher-level candidate address as the lower-level reference address. The memory device may output the higher-level candidate address as the aggressor row address. The memory device may generate the lower-level candidate address based on a new reference address.
In an embodiment, the memory device may modify the higher-level reference address when the candidate addresses do not match (i.e., abnormal monitoring).
The memory device may use the lower-level candidate address as the higher-level reference address. The memory device may output the lower-level candidate address as the aggressor row address. The memory device may generate the higher-level candidate address based on the new reference address.
The memory device may refresh memory cells of rows corresponding to row addresses adjacent to the row corresponding to the aggressor row address.
Referring to
The processor 1510 controls the overall operation of each component of the computing system 1500. The processor 1510 may be implemented as at least one of various processing units, such as a central processing unit (CPU), an application processor (AP), and a graphic processing unit (GPU).
The memory 1520 stores various data and commands. The memory controller 1530 controls the transmission of the data or commands to and from memory 1520. The memory 1520 and/or the memory controller 1530 may perform the refresh operation described with reference to
In some embodiments, the memory controller 1530 may be provided as a separate chip from the processor 1510. In some embodiments, the memory controller 1530 may be provided as an internal component of the processor 1510.
The storage device 1540 non-temporarily stores programs and data. In some embodiments, the storage device 1540 may be implemented as non-volatile memory. The communication interface 1550 supports wired and wireless Internet communication of the computing system 1500. In addition, the communication interface 1550 may support various communication methods other than Internet communication. The bus 1560 provides communication functions between components of the computing system 1500. The bus 1560 may include at least one type of bus depending on the communication protocol between components.
Referring to
The memory chips (DRAM) may each be connected to a corresponding data buffer among the data buffers (DBs) through a corresponding data transmission line and may transmit and receive a data signal and a data strobe signal. The memory chips (DRAM) may each be connected to the data buffers (DBs) through the corresponding data transmission line and transmit and receive parity data and the data strobe signal.
The memory module 2000 may include a programmable read-only memory (EEPROM). The EEPROM may include initial information or device information of the memory module 2000. By way of example, the EEPROM may include initial information or device information such as a module form, a module configuration, storage capacity, a module type, and an execution environment of the memory module 2000. When the memory system including the memory module 2000 is booted, the memory controller may read the device information from the EEPROM and recognize the memory module based on the read device information.
The memory module 2000 may include a plurality of ranks. In an embodiment, each rank may include eight bank groups. Each bank group may include four banks.
The memory module 2000 may perform the refresh operation described with reference to
Referring to
The stack semiconductor chip 3300 may include at least one memory chip 3320 stacked on a buffer chip 3310 such as a logic chip. The buffer chip 3310 and at least one memory chip 3320 may be connected to each other through a through silicon via (TSV). The buffer chip 3310 may perform a training operation on the memory chip 3320. For example, the stack semiconductor chip 3300 may be a high bandwidth memory (HBM) of 500 GB/sec to 1 TB/sec or more.
At least one memory chip 3320 may perform the refresh operation described with reference to
In some embodiments, each component or a combination of two or more components described with reference to
| Number | Date | Country | Kind |
|---|---|---|---|
| 10-2023-0193334 | Dec 2023 | KR | national |