Semiconductor devices may include a controller and a memory. The controller may operate the memory, for example by providing commands to the memory and sending and receiving data to and from the memory. The memory may be a volatile memory in which the information stored therein may decay over time. The memory may carry out a self-refresh operation to restore the information before it can decay. Certain patterns of commands sent by the controller may increase the rate at which information decays in the memory. The memory may track access patterns, for example, by tracking commands and/or addresses,
The following description of certain embodiments is merely exemplary in nature and is in no way intended to limit the scope of the disclosure or its applications or uses. In the following detailed description of embodiments of the present systems and methods, reference is made to the accompanying drawings which form a part hereof, and which are shown by way of illustration specific embodiments in which the described systems and methods may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice presently disclosed systems and methods, and it is to be understood that other embodiments may be utilized and that structural and logical changes may be made without departing from the spirit and scope of the disclosure. Moreover, for the purpose of clarity, detailed descriptions of certain features will not be discussed when they would be apparent to those with skill in the art so as not to obscure the description of embodiments of the disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the disclosure is defined only by the appended claims.
A memory may be operated by a controller, which may provide various signals to the memory. For example, the controller may perform a read command by provide a read command and addresses along a command/address (CA) bus. The addresses may specify where in the memory array of the memory that the data should be read from. The memory may provide the data from the specified location along a data (DQ) bus. The controller may perform a write operation by providing a write command and addresses along the CA bus, and may receive the read information along the DQ bus.
The memory may store information in memory cells of the memory array, which may be arranged at the intersection of word lines (rows) and bit lines (columns or digit lines). Accordingly, row and column addresses may be used by the controller to specify the location of one or more memory cells. The memory array may be volatile, and the information in the memory cells may decay over time. The memory may refresh information (e.g., on a row-by-row basis) to restore the information before it can decay beyond the point of recovery. Certain patterns of access may increase the rate at which the information decays. For example, repeated access to a given row (an aggressor row) may increase the rate at which information decays in neighboring rows (victim rows). Such a pattern may be referred to as a row hammer. The memory may track accesses in order to identify aggressor rows, such that their victims may be refreshed.
In some circumstances, the controller may inadvertently access the memory in a manner which causes an increased rate of information decay in some cells. In some circumstances, a malicious actor may deliberately attack the memory by instructing the controller to behave in a manner which causes increased rate of data decay, for example as part of an effort to manipulate the data stored in the memory. For brevity, both types of access patters (deliberate and inadvertent) may be referred to as an attack. In these and other circumstances, it may be useful to frustrate the attack by preventing the controller from providing further instructions for a period of time.
The present disclosure is drawn to apparatuses, systems, and methods for a memory directed access pause. During operations, the controller may provide commands and addresses along the CA bus. The memory may monitor the addresses to determine if one or more forms of attack are occurring. If the memory determines an attack is occurring, the memory may provide an alert signal (e.g., along an alert bus) to notify the controller that an attack is occurring. The memory may also provide pause data (e.g., along the DQ bus) which indicates how long the memory would like to be offline for. The controller may suspend access operations to the memory (e.g., by not providing commands and addresses) for a period of time specified by the pause data. The pause may allow the memory to perform refresh operations. The pause may also slow down the rate at which attacks can occur, which may frustrate attackers in situations where the attack is deliberate.
Information may be provided along the buses as voltages. For example, different voltages received at the pins of the controller 102 and memories 110 may represent different logical levels. The buses may use a mix of serial and parallel transmission to convey information. For example, the data bus may include sixteen conductive elements coupled to sixteen pins, each of which may convey eight bits as part of a serial burst information (e.g., for 128 total bits). Other formats of carrying information may be used in other examples.
The controller 102 is coupled to the memories 110 along a command/address bus CA, which carries both commands and addresses from the controller 102 to one or more of the memories 110. The controller 102 is also coupled to the memories 110 along a data bus DQ, which carries data information between the controller 102 and memories 110. For example, the controller 102 may provide a read command along the CA bus, along with one or more addresses, such as a row address, column address, and/or bank address. The addresses may also specify one or more of the memories 110 to activate. Responsive to the read command, the memory may retrieve the information stored in the memory cells specified by the addresses and provide that read information along the DQ bus back to the controller 102.
As part of an example write operation, the controller 102 may provide a write command along the CA bus along with addresses (which may specify one or more of the memories 110). The controller 102 may also provide write data along the DQ bus. The memory may store the write data from the DQ bus into one or more memory cells specified by the addresses. In some example operations, data may be read from (or written to) multiple memories 110 at once. In some example operation, data may be read from (or written to) selected ones of the memories 110.
Each of the memories 110 may include a refresh control circuit 112 which manages refresh operations in the memory. In some embodiments, there may be a refresh control circuit 112 for each bank of the memory. Other organizations of refresh control circuits 112 for different portions of the memory 110 are possible in other embodiments. During normal operations memory may be entered into a refresh mode (e.g., based on logic internal to the memory 110, signals from the controller 102, and combinations thereof). During the refresh mode the refresh control circuit 112 may refresh word lines of the memory to restore information before it can decay. For example, as part of auto-refresh operations the refresh control circuit 112 may generate refresh addresses based on a sequence of addresses. Over time the auto-refresh operations may cycle through all of the word lines of the memory at a rate high enough to prevent information loss.
The refresh control circuit 112 may also target particular word lines for refreshing as part of targeted refresh operations. For example, the refresh control circuit 112 may identify aggressor rows of the memory so that the victim rows associated with the identified aggressors may be refreshed as part of targeted refresh operations. It should be understood that the refresh control circuit 112 may use some criteria to identify aggressors, and that it is not necessary for the identified aggressors to have actually caused increased rates of data decay or for the identified victim rows to actually undergo increased rates of data decay.
The refresh control circuit 112 may include an aggressor detector circuit 114, which may detect aggressor rows based on various criteria. For example, the aggressor detector 114 may count accesses to various row addresses provided along the CA bus. If a given address is accessed a certain number of times (e.g., its access count crosses a threshold) then that address may be identified as an aggressor. The aggressor detector 114 may include various monitoring circuits (e.g., counters, registers, etc.) as well as a refresh queue, which stores identified aggressors until their respective victims can be refreshed.
During an attack on one or more memories 110, word lines which require refreshing may accumulate faster than the memory can refresh them as part of normal refresh operations. To prevent the victims of the excess aggressors from going unrefreshed, the refresh control circuit 110 may include an attack detector 116 which detects one or more types of attack pattern. An example attack pattern may include hammering different rows such that there are too many aggressor rows for the refresh queue to store. Such an attack pattern may be referred to as a queue overflow attack. An example attack may include accessing many rows such that each row is accessed a number of times (or at a rate) just below the threshold at which they would be judged to be aggressors, and then accessing them again rapidly such that a large number of rows are suddenly judged to be aggressors. Such an attack pattern may be referred to as a waterfall attack. The attack detector 116 may use various criteria to identify one or more attack patterns. An example attack detector is described in more detail in
When the attack detector 116 indicates that one or more attacks is underway, it may signal alert logic 118 of the refresh control circuit 112. The alert logic 118 may signal the controller 102 that the memory 110 (or portion of the memory) is under attack, and provide pause data which indicates how long the controller 102 should suspend access operations on the memory 110 (or portion of the memory). The refresh control circuit 112 may include a pause calculator circuit 119, which may generate the pause data. The pause data may indicate how long the memory 110 wants access operations to be suspended for. The length of time specified in the pause data may depend, in part, on what type of attack was detected by the attack detector 116. For example, the pause data may specify a longer time in response to a detected waterfall attack than it does in response to a refresh queue overflow attack. The pause calculator circuit 119 may receive signals from the attack detector 116 which indicate which type of attack is occurring, and may generate the pause data accordingly. In some embodiments, the pause calculator circuit 119 may also take into account additional factors (e.g., how many attacks have occurred within a given time span) when determining the length of time to specify in the pause data.
The alert signal may be provided along an alert bus, which may be shared by multiple memories. For example, the memories 110 may be coupled to the controller 102 in common by the alert bus. In some embodiments, the alert bus may be a single alert pin, coupled in common to each of the memories 110. Accordingly, the alert signal may be a single binary signal which is either active or inactive. The memory 110 which detected an attack may provide the alert signal at an active level along the alert bus, and may provide identification information so the controller 102 knows which memory is under attack. For example, the memory 110 may use the data bus inversion (DBI) to identify which memory is under attack. Each memory may have a DBI pin associated with that memory. If the memory provides a active signal along its associated DBI pin, the controller may use which of the DBI pins is carrying an active signal to determine which of the memories is requesting a pause in operations.
The controller 102 may include pause logic 104 which may be used to suspend operations to one or more memories (and/or memory portions) responsive to a detected attack. For example, the pause logic 104 may receive the alert signal (and the identification information) which indicates that one of the memories is undergoing an attack. In some embodiments, the alert signal may provide limited information (e.g., in embodiments where it is a single bit, it will not indicate what kind of problem caused the alert). The controller 102 may query the memories 110 for more information, for example by performing a read operation to retrieve information from the memories 110 about the cause of the alert. The pause logic 104 may also cause the controller 102 to query the memories 110 in order to retrieve the pause data. For example the controller 102 may perform a read operation to retrieve the pause data along the DQ bus. In some embodiments, the controller 102 queries may be combined, and the controller 102 may read the pause data as part of asking about whether an attack is occurring.
The pause logic 104 may use the pause data to determine how long to suspend operations to the memory (or portion of the memory). For example the pause data may specify a length of time (e.g., in clock cycles). The pause logic 104 may provide internal signals to the controller 104 which instruct it to not send access commands to the specified memory for at least that length of time. The controller 102 may also have internal logic which may save a state of operations to the memory which is being paused. For example, the controller 102 may save the most recent commands sent to the paused memory, as well as any additional commands which would have been sent during the pause in a queue to provide once the pause has elapsed.
In some embodiments, the memories 110 may take no actions during the pause. In some embodiments, the memories 110 which are paused may enter a self-refresh mode to ‘heal’ the attack by performing refresh operations. For example, in the case of a refresh queue overflow attack, all of the victims of the aggressors stored in the refresh queue may be refreshed to empty the queue. In the case of a waterfall attack, the memory may refresh the victims of all wordlines which are close to being detected as aggressors. In some embodiments, the memory may perform other refresh patterns, such as refreshing all wordlines. The length of time specified in the pause data may be based in part, on how long the memory anticipates taking to perform these refresh operations.
The semiconductor device 200 includes a memory array 228. The memory array 228 is shown as including a plurality of memory banks. In the embodiment of
The semiconductor device 200 may employ a plurality of external terminals that include command and address (CA) terminals coupled to a command and address bus (e.g., 110 of
The clock terminals are supplied with external clock signals CK_t and CK_c that are provided to an input buffer 218. The external clock signals may be complementary. The input buffer 218 generates an internal clock ICLK based on the CK_t and CK_c clock signals. The ICLK clock is provided to the command decoder 216 and to an internal clock generator 220. The internal clock generator 220 provides various internal clock signals LCLK based on the ICLK clock. The LCLK clock signals may be used for timing operation of various internal circuits. In some embodiments, data clocks (not shown) may also be provided to control the operation of data being written to/read from the device 200.
The CA terminals may be supplied with memory addresses. The memory addresses supplied to the CA terminals are transferred, via a command/address input circuit 212, to an address decoder 214. The address decoder 214 receives the address and supplies a decoded row address XADD to the row decoder 224 and supplies a decoded column address YADD to the column decoder 226. The CA terminals may be supplied with commands. Examples of commands include timing commands for controlling the timing of various operations, access commands for accessing the memory, such as read commands for performing read operations and write commands for performing write operations, mode register write and read commands for performing mode register write and read operations, as well as other commands and operations.
The commands may be provided as internal command signals to a command decoder 216 via the command/address input circuit 212. The command decoder 216 includes circuits to decode the internal command signals to generate various internal signals and commands for performing operations. For example, the command decoder 216 may provide a row command signal ACT to select a word line and a column command signal R/W to select a bit line.
When a read command is received, and a row address and a column address are timely supplied with the read command, read data is read from memory cells in the memory array 228 corresponding to the row address and column address. The read command is received by the command decoder 244, which provides internal commands so that read data from the memory array 228 is provided to the read/write amplifiers 230. The read data is output to outside from the data terminals DQ via the input/output circuit 232.
When the write command is received, and a row address and a column address are timely supplied with the write command, write data supplied to the data terminals DQ is written to a memory cells in the memory array 228 corresponding to the row address and column address. A data mask may be provided to the data terminals DM to mask portions of the data when written to memory. The write command is received by the command decoder 244, which provides internal commands so that the write data is received by data receivers in the input/output circuit 232. The write data is supplied via the input/output circuit 232 to the read/write amplifiers 230, and by the read/write amplifiers 230 to the memory array 228 to be written into the memory cell MC.
The refresh control circuit 222 may receive a refresh signal AREF. The memory may be entered into a self-refresh mode by an external signal, such as an external refresh signal or a command entering the memory device 200 into a replacement mode. Once in a self-refresh mode, the memory 200 may generate activations (e.g., pulses) of the refresh signal AREF. Responsive to each activation of the refresh signal AREF, the memory may refresh one or more word lines. For example, responsive to an activation of AREF, the refresh control circuit 222 may provide a number of ‘pumps’ each of which may be associated with one or more refresh addresses. The refresh addresses may be provided to the row decoder 224, which may refresh the word lines. The signal AREF may continue to be periodically generated until the memory exits the self-refresh mode (e.g., responsive to a replacement mode exit command). The refresh control circuit 222 may use internal logic to generate the refresh addresses. For example the refresh control circuit 222 may have a sequence generator which provides a refresh address from a sequence of refresh addresses.
In some embodiments, the refresh control circuit 222 may additionally identify memory cells which are at risk of a faster rate of memory decay and refresh them out of sequence. For example, repeated accesses to a given row (a ‘row hammer’) may cause nearby rows to experience faster information decay. The refresh control circuit 222 may identify these victim rows (e.g., based on access patterns) and refresh them as part of a targeted refresh. In some embodiments, the refresh control circuit 222 may mix refreshing rows in sequence and targeted refreshes.
The refresh control circuit 222 may also monitor the state of the commands and accesses to determine if an attack is occurring. For example, the refresh control circuit 222 may monitor a number (or rate) of rows which have been hammered, or which are close to being hammered to determine if one or more types of attack is occurring. If the refresh control circuit 222 determines that an attack is occurring, it may provide pause data PAUSE and an alert signal ALERT at an active level. The pause data PAUSE may be provided to the IO circuit 232 and may then be provided along the data terminals DQ. The alert signal may be provided to an ALERT pin.
The pause data may be a number which represents a length of time the memory wants to be offline for. For example the pause data may be a binary number which specifies a number of clock cycles. Responsive to providing the alert signal ALERT and pause data PAUSE, the memory may be entered into a self-refresh mode. In some embodiments, the controller may provide signals entering the memory 200 into the self-refresh mode. In some embodiments, the memory 200 may enter itself into the self-refresh mode. During the self-refresh mode, the refresh control circuit 222 may perform refresh operations based on the type of attack which was detected.
In some embodiments, the refresh control circuit may be repeated on a bank-by-bank basis, and accordingly the refresh control circuits 222 may determine if an attack is occurring on a bank-by-bank basis. Accordingly, responsive to an attack being detected, the bank which is under attack may have its access operations suspended and may be entered into a self-refresh mode, while other banks may continue to receive access operations as normal. Other subdivisions (e.g., section-by-section, mat-by-mat) of the memory attack monitoring and refreshing may be used in other examples. In embodiments where only a portion of the memory 200 has its access operations suspended, the memory may provide identification information (e.g., along with the PAUSE data) which indicates which portion(s) of the memory are under attack.
The power supply terminals are supplied with power supply potentials VDD and VSS. The power supply potentials VDD and VSS are supplied to an internal voltage generator circuit 234. The internal voltage generator circuit 234 generates various internal potentials VPP, VOD, VARY, VTARGET, VPERI, and the like based on the power supply potentials VDD and VSS supplied to the power supply terminals.
The power supply terminals are also supplied with power supply potentials VDDQ and VSSQ. The power supply potentials VDDQ and VSSQ are supplied to the input/output circuit 232. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be the same potentials as the power supply potentials VDD and VSS supplied to the power supply terminals in an embodiment of the disclosure. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be different potentials from the power supply potentials VDD and VSS supplied to the power supply terminals in another embodiment of the disclosure. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals are used for the input/output circuit 232 so that power supply noise generated by the input/output circuit 232 does not propagate to the other circuit blocks.
The refresh control circuit 300 includes a refresh state control 302, which may manage the timing of various refresh operations. The refresh state control 302 may use perform a number of refresh operations responsive to each time an activation (e.g., pulse) of the signal AREF is received. For example, the refresh state control 302 may generate a number of refresh ‘pumps’ each of which is associated with a refresh operation. So, for example, an activation of AREF may cause four refresh pumps, and four refresh operations. Other numbers of pumps per activation of AREF may be used in other examples. In some embodiments, the number of pumps per activation of AREF may be variable.
Each pump may be associated with an auto-refresh operation, where word lines are refreshed as part of a refresh sequence, or a targeted refresh operation, where the victims of identified aggressor rows are refreshed. The refresh state control 302 may apportion pumps between the two operations based on various criteria. For example, if four pumps are provided per AREF activation, then two pumps may be used for auto-refresh operations and two may be used for targeted refresh operations. Other patterns may be used in other examples, and some patterns may span multiple activations of AREF. The refresh state control may provide pump signals NREF (to indicate an auto-refresh) and RHR (to indicate a targeted refresh) to a refresh address generator 304. In some embodiments, there may be a generic pump signal which is active for all pumps, and the state of an RHR signal may determine if the pump is used for an auto-refresh or targeted refresh signal.
The refresh address generator 304 may provide the refresh address RXADD. If the signal NREF is active, the refresh address generator 304 may provide an auto-refresh address based on an internal auto-refresh address generator. If the signal RHR is active, the refresh address generator 304 may generate the refresh address RXADD based on an aggressor address stored in an aggressor refresh queue 320. The auto-refresh addresses may be generated based on a sequence of addresses. For example, a first auto-refresh address may be provided and then a second auto-refresh address may be provided from a next entry in the sequence. In some embodiments, the sequence may be based on a numerical value of the refresh addresses. For example, the refresh address may be incremented to generate a next address in the sequence. In some embodiments, the refresh address may be associated with multiple word lines of the memory array, which may be refreshed simultaneously. For example, the row address may be truncated, and all rows which share the truncated row address in common may be refreshed together (e.g., a row in each different section of the memory). Other methods of generating the auto-refresh addresses may be used in other example embodiments.
The targeted refresh address may be based on a row address stored in the aggressor refresh queue 320. The aggressor refresh queue 320 may include a set of address registers 322, each of which stores a row address identified as an aggressor by the aggressor detector circuit 310. When a targeted refresh operation is called for (e.g., by the signal RHR being active) the refresh address generator 304 may retrieve an address RHR_XADD from one of the address registers 322. The aggressor refresh queue 320 may include logic which determines the order in which addresses are retrieved for refreshing.
The refresh address generator 304 may generate one or more refresh addresses RXADD based on the retrieved aggressor address. In some embodiments, the refresh addresses may include wordlines which are adjacent to the aggressor wordline (e.g., R+/−1). In some embodiments, the refresh addresses may include word lines further from the aggressor address (e.g., R+/−2). In some embodiments the refresh address generator 304 may refresh further away victims at a slower rate than the closer victims are refreshed.
The aggressor detector circuit 310 may receive a row address XADD along the row address bus. Based on the row addresses received overtime, the aggressor detector 310 may determine if a given address is an aggressor. The example aggressor detector 310 is shown as including a number of count values 312. The count values 312 may each represent accesses to one or more row addresses. For example, a given count value 312 may represent a number of times that a given row address has been provided along the row address bus. The aggressor detector 310 may compare the counts to a threshold value to determine if the address is an aggressor address. For example if the count value is greater than the threshold, then the row address(es) associated with that count value may be judged to be aggressors and may be stored in the aggressor refresh queue 320 so that their victims can be refreshed. When an aggressor is detected, the aggressor detector 310 may provide an aggressor signal AGGR at an active level, which may cause the aggressor refresh queue 320 to latch the value of the row address XADD off the row address bus and into one of the address registers 322.
In some embodiments, rather than respond to every row address across the row address bus, the refresh control circuit 300 may sample the value of the row address. The refresh control circuit 300 may include a sampling circuit which may activate a sampling signal with regular timing, random timing, timing based on one or more other signals, semi-random timing, pseudo-random timing, or combinations thereof. The aggressor detector 310 may respond to the row address when the sampling signal is active.
The refresh control circuit 300 may include an attack detector circuit 306 which may monitor the state of the refresh control circuit 300 to determine when an attack is occurring. When the attack detector 306 determines that an attack is in progress, it may provide an attack signal ATK at an active level. The attack signal may also indicate which type of attack is occurring in situations where the attack detector 306 detects more than one type of attack. In some embodiments, there may be multiple attack signals, each of which may be active to indicate that a different type of attack is occurring. An example attack detector is described in more detail in
An example attack may include a waterfall attack, where the count values 312 are kept close to, but just below a hammer threshold that would cause the address(es) associated with that count value to be identified as an aggressor. Once a large number of the count values 312 are just below the hammer threshold, further accesses may be provided to push the count values 312 above the hammer threshold, which may be an overwhelming number of aggressor addresses, which the refresh control 300 may not be able to process in a timely manner. The attack detector may monitor the count values 312 and signal that a waterfall attack is occurring based on the count values 312. For example the attack detector may track a capacity count based on a number of the count values 312 which are above a first threshold which is smaller than the hammer threshold. When the capacity count rises above a second threshold, the attack detector 306 may signal that a waterfall type attack is occurring.
An example attack may include a refresh queue overflow attack. In such an attack, rows may be hammered quickly, such that the aggressor refresh queue 320 fills faster than it can be emptied. For example, if the address register 322 is storing a maximum number M different aggressor addresses, and the aggressor detector 310 provides the signal AGGR, then an address may be lost, since there are now M+1 identified aggressors. The attack detector 306 may monitor a state of the address registers 322 and may indicate that an overflow attack is occurring based on the state of the address registers 322. For example, the aggressor refresh queue 320 may provide a queue full signal FULL at an active level when the address register 322 is storing a maximum number of addresses. Responsive to another detected aggressor (e.g., the signal AGGR being active) while the signal FULL is active, the attack detector 306 may indicate that a refresh queue overflow attack is occurring.
The refresh control circuit 300 may include an alert logic circuit 308, which activates an alert signal ALERT and generates pause data PAUSE responsive to the attack signal ATK indicating that an attack is occurring. The alert logic circuit 308 may include a pause calculation circuit 309 (e.g., pause calculation circuit 119 of
The pause calculation circuit 309 may generate different values of the pause data PAUSE responsive to which type of attack is indicated by the attack detector 306. For example, a first type of attack, such as a waterfall attack, may lead to a first value of the pause data PAUSE, while a second type of attack, such as a refresh queue overflow attack, may lead to a second value of the pause data PAUSE. In some embodiments, the value of PAUSE for a waterfall attack may be longer than the value of PAUSE for an overflow attack. In some embodiments, the pause calculation circuit 309 may also respond to a number of times that the attack signal (or an attack signal of a particular type) is provided. For example, if the signal indicating an overflow attack is provided a threshold number of times, the pause calculation circuit 309 may provide pause data PAUSE which is longer than the duration used when fewer overflow attacks are indicated. In some embodiments, if the overflow attack is detected above the threshold number of times, the pause calculation circuit 309 may set the pause data PAUSE to the same duration as if a waterfall attack had been detected. The pause data PAUSE may be stored in the memory for retrieval by the controller. In some embodiments, various other signals (e.g., ATK) may be provided to components of the memory to indicate that a suspension in operations is imminent.
In some embodiments, the refresh state control 302 may also respond to the detected attack (e.g., may respond to the signals ATK, ALERT, PAUSE, or combinations thereof) to enter the memory into a refresh mode while operations from the controller are suspended. For example, responsive to the attack detector 306 indicating a refresh queue overflow attack, the refresh state control circuit 302 may be entered into a refresh pattern where targeted refresh operations are performed until all of the addresses in the address registers 322 have their victims refreshed. The ‘extra’ address which triggered the overflow may also have its victims refreshed, as it may still be present along the row address bus. Responsive to the attack detector 306 indicating that a waterfall type attack is occurring, the refresh state control 302 may be entered into a mode where one or more of the address(es) associated with the counters 312 are refreshed. The refresh state control 302 may, for example, refresh every address associated with any counter 312 which is above the second threshold (e.g., close to the hammer threshold). In some embodiments, responsive to an attack the refresh state 302 may enter a mode where all word lines are refreshed. In some embodiments, the refresh state control 302 may enter a mode where more word lines are refreshed than are identified as aggressors (or are close to being identified as aggressors. In some embodiments, the refresh operations may take all or part of the time indicated by the pause data PAUSE.
The attack detector 400 includes a first threshold comparator 402. The first threshold comparator 402 provides a signal INC at an active level for each of the count values 412 which is above a threshold THi. The threshold THi may be below a hammer threshold used to determine if a count value is associated with one or more aggressor addresses. For example, if the count values are 4001, 3988, 4996, and 2043, the hammer threshold may be 5000, the value of the threshold THi may be 4000, and the first comparator 402 may provide two activations of the signal INC. These values are for example only, and other values may be used in other example embodiments.
In some embodiments, the threshold THi used by the first comparator may be based on the way in which the count values 412 are stored. For example, the count values 412 may be stored as N-bit numbers. To simplify the operation of the first comparator 402, the first comparator may provide an activation of the signal INC any time the next-to-most-significant bit (e.g., the N-lth bit) first becomes a logical high for that count value.
Responsive to an activation of the signal INC, the capacity counter circuit 404 may change a value of a stored capacity count value CNT. For example, the attack counter circuit 404 may increment the capacity count value CNT. Responsive to an activation of the signal RHR_XADD, which represents that an address from the targeted refresh queue (e.g., 320) is being provided to the refresh address generator, the attack counter circuit 404 may change the value of CNT in a different direction. For example, the attack counter circuit 404 may decrease the value CNT responsive to an activation of RHR_XADD. In some embodiments, the value CNT may be decreased by an amount based on one or more threshold values (e.g., THi, THj, and/or the hammer threshold) responsive to signal RHR_XADD.
In some embodiments, the attack counter 404 may store multiple count values (e.g., CNT0, CNT1, etc.) which may be used to determine the value of the overall capacity count value CNT. For example, the attack counter 404 may periodically switch between using the signals INC and RHR_XADD to change a first count value CNT0 and a second value CNT1. The overall count value CNT may then be a difference between CNT0 and CNT1, and may represent a change in the count value in a given period of time (e.g., the period over which the attack counter 404 switches count values).
The capacity count value CNT may be provided to a second threshold comparator 406, which may compare the count value CNT to a second threshold THj. If the count value CNT is greater than the second threshold THj, then the second comparator 406 may provide an attack signal ATK_waterfall at an active level, which indicates that a waterfall attack is occurring. The signal ATK_waterfall may be reset to an inactive level when the operations to the memory are suspended, and/or when the memory is refreshed to a point that the count value CNT is no longer above the threshold value THj.
The attack detector 400 may also monitor for overflow attacks. For example, an overflow logic circuit 408 may monitor the signals FULL and AGGR from the targeted refresh queue (e.g., 320 of
In some embodiments, one or more of the threshold values THi, THj and/or the hammer threshold may be a pre-set value of the memory, a programmable value, or combinations thereof. In some embodiments, one or more of the threshold values may be varied over time. For example, the memory may include a random number generator (or some other source of randomness) which may periodically change the values of one or more of the threshold values. This randomness may make it more difficult to predict the behavior of the memory during an attack.
In some embodiments, the attack detector 400 may also trigger an attack signal based on the number and/or rate at which attacks are detected. For example, the attack detector 400 may count a number of times the ATK_overflow signal is activated. The overflow count may be periodically reset. In this manner, the overflow count may act as a measure of the rate at which overflow attacks are detected. If the overflow count rises above a threshold, the attack detector may trigger an attack signal, which may be associated with pause data of longer duration than the pause data normally triggered by the activation of ATK_overflow. In some embodiments, to simplify signaling, the overflow count rising above the threshold may lead to an activation of the signal ATK_waterfall.
The method 500 may include block 510 which describes sending commands and addresses to a memory. A controller (e.g., 102 of
Block 510 may generally be followed by block 520, which describes determining that the memory is under attack based on the addresses. The attack may be a deliberate attack (e.g., caused by a malicious actor) or may be an inadvertent attack (e.g., caused by operations which were not deliberately meant to cause problems in the memory). The memory may include an attack detector circuit which may monitor the commands and/or addresses received by the memory to determine if one or more types of attack is occurring.
The attack detector may determine if a queue overflow attack is occurring. The memory may identify aggressor addresses. For example, the memory may count accesses to various row addresses, and check to see if any of the counts has risen above a hammer threshold. The memory may store the identified aggressor addresses, for example in a targeted refresh queue. The queue may provide a full signal at an active level when the number of stored identified aggressor addresses rises above a threshold. In some embodiments, the threshold may represent a maximum capacity of the targeted refresh queue. When an additional address would be stored in the queue (e.g., based on identifying a new aggressor address), and the full signal is at the active level, the attack detector may determine that an overflow attack is occurring.
The attack detector may determine if a waterfall attack is occurring. The memory may change selected ones of a plurality of count values (e.g., 312 of
Block 520 may generally be followed by block 530, which describes providing, from the memory, an alert signal and pause data responsive to the determination that the memory is under attack. The alert signal may indicate that a problem is occurring in the memory. The controller may perform a read operation to retrieve the pause data. In some embodiments, where multiple memories are coupled to the same controller, the controller may also determine which memory is under attack. The alert signal may be provided along an alert bus (e.g., an alert pin). The pause data may be provided along a data bus. For example, the controller may perform a read operation to retrieve the pause data responsive to the alert signal.
Block 530 may generally be followed by block 540 which describes pausing sending the commands and addresses for a length of time based on the pause data. The pause data may specify a length of time (e.g., in clock cycles). The controller may suspend operations to the memory for the length of time specified in the pause data. The memory may take into account the type of attack detected when setting the length of time which is specified by the pause data. For example, the pause data generated responsive to an overflow attack may specify a shorter duration than the pause data generated responsive to a waterfall attack.
While the commands and addresses are paused, the memory may enter a refresh mode in order to refresh word lines of the memory. For example, the memory may refresh enough word lines associated with the type of attack which was detected. In some embodiments, the length of time specified by the pause data may be based, in part, on the length of time it will take to perform the refreshing.
It is to be appreciated that any one of the examples, embodiments or processes described herein may be combined with one or more other examples, embodiments and/or processes or be separated and/or performed amongst separate devices or device portions in accordance with the present systems, devices and methods.
Finally, the above-discussion is intended to be merely illustrative of the present system and should not be construed as limiting the appended claims to any particular embodiment or group of embodiments. Thus, while the present system has been described in particular detail with reference to exemplary embodiments, it should also be appreciated that numerous modifications and alternative embodiments may be devised by those having ordinary skill in the art without departing from the broader and intended spirit and scope of the present system as set forth in the claims that follow. Accordingly, the specification and drawings are to be regarded in an illustrative manner and are not intended to limit the scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5299159 | Balistreri et al. | Mar 1994 | A |
5654929 | Mote, Jr. | Aug 1997 | A |
5699297 | Yamazaki et al. | Dec 1997 | A |
5867442 | Kim et al. | Feb 1999 | A |
5933377 | Hidaka | Aug 1999 | A |
5943283 | Wong et al. | Aug 1999 | A |
5956288 | Bermingham et al. | Sep 1999 | A |
5959923 | Matteson et al. | Sep 1999 | A |
5970507 | Kato et al. | Oct 1999 | A |
5999471 | Choi | Dec 1999 | A |
6002629 | Kim et al. | Dec 1999 | A |
6011734 | Pappert | Jan 2000 | A |
6061290 | Shirley | May 2000 | A |
6064621 | Tanizaki et al. | May 2000 | A |
6212118 | Fujita | Apr 2001 | B1 |
6306721 | Teo et al. | Oct 2001 | B1 |
6310806 | Higashi et al. | Oct 2001 | B1 |
6310814 | Hampel et al. | Oct 2001 | B1 |
6363024 | Fibranz | Mar 2002 | B1 |
6392952 | Chen et al. | May 2002 | B1 |
6424582 | Ooishi | Jul 2002 | B1 |
6434064 | Nagai | Aug 2002 | B2 |
6452868 | Fister | Sep 2002 | B1 |
6515928 | Sato et al. | Feb 2003 | B2 |
6535950 | Funyu | Mar 2003 | B1 |
6567340 | Nataraj et al. | May 2003 | B1 |
6950364 | Kim | Sep 2005 | B2 |
7002868 | Takahashi | Feb 2006 | B2 |
7057960 | Fiscus et al. | Jun 2006 | B1 |
7082070 | Hong | Jul 2006 | B2 |
7187607 | Koshikawa et al. | Mar 2007 | B2 |
7203113 | Takahashi et al. | Apr 2007 | B2 |
7203115 | Eto et al. | Apr 2007 | B2 |
7209402 | Shinozaki et al. | Apr 2007 | B2 |
7215588 | Lee | May 2007 | B2 |
7444577 | Best et al. | Oct 2008 | B2 |
7551502 | Dono et al. | Jun 2009 | B2 |
7565479 | Best et al. | Jul 2009 | B2 |
7692993 | Iida et al. | Apr 2010 | B2 |
7830742 | Han | Nov 2010 | B2 |
8174921 | Kim et al. | May 2012 | B2 |
8400805 | Yoko | Mar 2013 | B2 |
8572423 | Isachar et al. | Oct 2013 | B1 |
8625360 | Iwamoto et al. | Jan 2014 | B2 |
8681578 | Narui | Mar 2014 | B2 |
8756368 | Best et al. | Jun 2014 | B2 |
8811100 | Ku | Aug 2014 | B2 |
8862973 | Zimmerman et al. | Oct 2014 | B2 |
8938573 | Greenfield et al. | Jan 2015 | B2 |
9032141 | Bains et al. | May 2015 | B2 |
9047978 | Bell et al. | Jun 2015 | B2 |
9076499 | Schoenborn | Jul 2015 | B2 |
9087602 | Youn et al. | Jul 2015 | B2 |
9117544 | Bains et al. | Aug 2015 | B2 |
9123447 | Lee et al. | Sep 2015 | B2 |
9153294 | Kang | Oct 2015 | B2 |
9190137 | Kim et al. | Nov 2015 | B2 |
9190139 | Jung et al. | Nov 2015 | B2 |
9236110 | Bains | Jan 2016 | B2 |
9251885 | Greenfield et al. | Feb 2016 | B2 |
9286964 | Halbert et al. | Mar 2016 | B2 |
9299400 | Bains et al. | Mar 2016 | B2 |
9311984 | Hong et al. | Apr 2016 | B1 |
9311985 | Lee et al. | Apr 2016 | B2 |
9324398 | Jones et al. | Apr 2016 | B2 |
9384821 | Bains et al. | Jul 2016 | B2 |
9390782 | Best et al. | Jul 2016 | B2 |
9396786 | Yoon et al. | Jul 2016 | B2 |
9406358 | Lee | Aug 2016 | B1 |
9412432 | Narui et al. | Aug 2016 | B2 |
9418723 | Chishti et al. | Aug 2016 | B2 |
9424907 | Fujishiro | Aug 2016 | B2 |
9484079 | Lee | Nov 2016 | B2 |
9514850 | Kim | Dec 2016 | B2 |
9570143 | Lim et al. | Feb 2017 | B2 |
9570201 | Morgan et al. | Feb 2017 | B2 |
9646672 | Kim et al. | May 2017 | B1 |
9653139 | Park | May 2017 | B1 |
9672889 | Lee et al. | Jun 2017 | B2 |
9685240 | Park | Jun 2017 | B1 |
9691466 | Kim | Jun 2017 | B1 |
9697913 | Marcello et al. | Jul 2017 | B1 |
9734887 | Tavva | Aug 2017 | B1 |
9741409 | Jones et al. | Aug 2017 | B2 |
9741447 | Akamatsu | Aug 2017 | B2 |
9747971 | Bains et al. | Aug 2017 | B2 |
9761297 | Tomishima | Sep 2017 | B1 |
9786351 | Lee et al. | Oct 2017 | B2 |
9799391 | Wei | Oct 2017 | B1 |
9805782 | Liou | Oct 2017 | B1 |
9805783 | Ito et al. | Oct 2017 | B2 |
9812185 | Fisch et al. | Nov 2017 | B2 |
9818469 | Kim et al. | Nov 2017 | B1 |
9831003 | Sohn et al. | Nov 2017 | B2 |
9865326 | Bains et al. | Jan 2018 | B2 |
9865328 | Desimone et al. | Jan 2018 | B1 |
9922694 | Akamatsu | Mar 2018 | B2 |
9934143 | Bains et al. | Apr 2018 | B2 |
9953696 | Kim | Apr 2018 | B2 |
9978430 | Seo et al. | May 2018 | B2 |
10020045 | Riho | Jul 2018 | B2 |
10020046 | Uemura | Jul 2018 | B1 |
10032501 | Ito et al. | Jul 2018 | B2 |
10049716 | Proebsting | Aug 2018 | B2 |
10083737 | Bains et al. | Sep 2018 | B2 |
10090038 | Shin | Oct 2018 | B2 |
10134461 | Bell et al. | Nov 2018 | B2 |
10141042 | Richter | Nov 2018 | B1 |
10147472 | Jones et al. | Dec 2018 | B2 |
10153031 | Akamatsu | Dec 2018 | B2 |
10170174 | Ito et al. | Jan 2019 | B1 |
10192608 | Morgan | Jan 2019 | B2 |
10210925 | Bains et al. | Feb 2019 | B2 |
10297305 | Moon et al. | May 2019 | B1 |
10297307 | Raad et al. | May 2019 | B1 |
10339994 | Ito et al. | Jul 2019 | B2 |
10381327 | Ramachandra et al. | Aug 2019 | B2 |
10446256 | Ong et al. | Oct 2019 | B2 |
10468076 | He et al. | Nov 2019 | B1 |
10490250 | Ito et al. | Nov 2019 | B1 |
10490251 | Wolff | Nov 2019 | B2 |
10504577 | Alzheimer | Dec 2019 | B1 |
10510396 | Notani et al. | Dec 2019 | B1 |
10572377 | Zhang et al. | Feb 2020 | B1 |
10573370 | Ito et al. | Feb 2020 | B2 |
10607679 | Nakaoka | Mar 2020 | B2 |
10685696 | Brown et al. | Jun 2020 | B2 |
10699796 | Benedict et al. | Jun 2020 | B2 |
10790005 | He et al. | Sep 2020 | B1 |
10825505 | Rehmeyer | Nov 2020 | B2 |
10832792 | Penney et al. | Nov 2020 | B1 |
10930335 | Bell et al. | Feb 2021 | B2 |
10943636 | Wu et al. | Mar 2021 | B1 |
10950289 | Ito et al. | Mar 2021 | B2 |
10957377 | Noguchi | Mar 2021 | B2 |
10964378 | Ayyapureddi et al. | Mar 2021 | B2 |
10978132 | Rehmeyer et al. | Apr 2021 | B2 |
11017833 | Wu et al. | May 2021 | B2 |
11069393 | Cowles et al. | Jul 2021 | B2 |
11081160 | Ito et al. | Aug 2021 | B2 |
20010008498 | Ooishi | Jul 2001 | A1 |
20020026613 | Niiro | Feb 2002 | A1 |
20020181301 | Takahashi et al. | Dec 2002 | A1 |
20020191467 | Matsumoto et al. | Dec 2002 | A1 |
20030026161 | Yamaguchi et al. | Feb 2003 | A1 |
20030063512 | Takahashi et al. | Apr 2003 | A1 |
20030067825 | Shimano et al. | Apr 2003 | A1 |
20030081483 | De et al. | May 2003 | A1 |
20030123301 | Jang et al. | Jul 2003 | A1 |
20030161208 | Nakashima et al. | Aug 2003 | A1 |
20030193829 | Morgan et al. | Oct 2003 | A1 |
20030231540 | Lazar et al. | Dec 2003 | A1 |
20040004856 | Sakimura et al. | Jan 2004 | A1 |
20040008544 | Shinozaki et al. | Jan 2004 | A1 |
20040022093 | Lee | Feb 2004 | A1 |
20040024955 | Patel | Feb 2004 | A1 |
20040114446 | Takahashi et al. | Jun 2004 | A1 |
20040130959 | Kawaguchi | Jul 2004 | A1 |
20040184323 | Mori et al. | Sep 2004 | A1 |
20040218431 | Chung et al. | Nov 2004 | A1 |
20050002268 | Otsuka et al. | Jan 2005 | A1 |
20050041502 | Perner | Feb 2005 | A1 |
20050105362 | Choi et al. | May 2005 | A1 |
20050108460 | David | May 2005 | A1 |
20050213408 | Shieh | Sep 2005 | A1 |
20050243627 | Lee et al. | Nov 2005 | A1 |
20050265104 | Remaklus et al. | Dec 2005 | A1 |
20060018174 | Park et al. | Jan 2006 | A1 |
20060083099 | Bae et al. | Apr 2006 | A1 |
20060087903 | Riho et al. | Apr 2006 | A1 |
20060104139 | Hur et al. | May 2006 | A1 |
20060176744 | Stave | Aug 2006 | A1 |
20060215474 | Hokenmaier | Sep 2006 | A1 |
20060233012 | Sekiguchi et al. | Oct 2006 | A1 |
20060262616 | Chen | Nov 2006 | A1 |
20060262617 | Lee | Nov 2006 | A1 |
20060268643 | Schreck et al. | Nov 2006 | A1 |
20070002651 | Lee | Jan 2007 | A1 |
20070008799 | Dono et al. | Jan 2007 | A1 |
20070014175 | Min et al. | Jan 2007 | A1 |
20070028068 | Golding et al. | Feb 2007 | A1 |
20070030746 | Best et al. | Feb 2007 | A1 |
20070033339 | Best et al. | Feb 2007 | A1 |
20070147154 | Lee | Jun 2007 | A1 |
20070237016 | Miyamoto et al. | Oct 2007 | A1 |
20070263442 | Cornwell et al. | Nov 2007 | A1 |
20070297252 | Singh | Dec 2007 | A1 |
20080028260 | Oyagi et al. | Jan 2008 | A1 |
20080031068 | Yoo et al. | Feb 2008 | A1 |
20080126893 | Harrand et al. | May 2008 | A1 |
20080130394 | Dono et al. | Jun 2008 | A1 |
20080181048 | Han | Jul 2008 | A1 |
20080212386 | Riho | Sep 2008 | A1 |
20080224742 | Pomichter | Sep 2008 | A1 |
20080253212 | Iida et al. | Oct 2008 | A1 |
20080253213 | Sato et al. | Oct 2008 | A1 |
20080266990 | Loeffler | Oct 2008 | A1 |
20080270683 | Barth et al. | Oct 2008 | A1 |
20080306723 | De Ambroggi et al. | Dec 2008 | A1 |
20080316845 | Wang et al. | Dec 2008 | A1 |
20090021999 | Tanimura et al. | Jan 2009 | A1 |
20090052264 | Hong et al. | Feb 2009 | A1 |
20090059641 | Jeddeloh | Mar 2009 | A1 |
20090073760 | Betser et al. | Mar 2009 | A1 |
20090161468 | Fujioka | Jun 2009 | A1 |
20090168571 | Pyo et al. | Jul 2009 | A1 |
20090185440 | Lee | Jul 2009 | A1 |
20090201752 | Riho et al. | Aug 2009 | A1 |
20090228739 | Cohen et al. | Sep 2009 | A1 |
20090251971 | Futatsuyama | Oct 2009 | A1 |
20090296510 | Lee et al. | Dec 2009 | A1 |
20100005217 | Jeddeloh | Jan 2010 | A1 |
20100005376 | Laberge et al. | Jan 2010 | A1 |
20100061153 | Yen et al. | Mar 2010 | A1 |
20100074042 | Fukuda et al. | Mar 2010 | A1 |
20100097870 | Kim et al. | Apr 2010 | A1 |
20100110809 | Kobayashi et al. | May 2010 | A1 |
20100110810 | Kobayashi | May 2010 | A1 |
20100124138 | Lee et al. | May 2010 | A1 |
20100128547 | Kagami | May 2010 | A1 |
20100131812 | Mohammad | May 2010 | A1 |
20100141309 | Lee | Jun 2010 | A1 |
20100157693 | Iwai et al. | Jun 2010 | A1 |
20100182862 | Teramoto | Jul 2010 | A1 |
20100182863 | Fukiage | Jul 2010 | A1 |
20100329069 | Ito et al. | Dec 2010 | A1 |
20110026290 | Noda et al. | Feb 2011 | A1 |
20110055495 | Remaklus, Jr. et al. | Mar 2011 | A1 |
20110069572 | Lee et al. | Mar 2011 | A1 |
20110122987 | Neyer | May 2011 | A1 |
20110134715 | Norman | Jun 2011 | A1 |
20110216614 | Hosoe | Sep 2011 | A1 |
20110225355 | Kajigaya | Sep 2011 | A1 |
20110299352 | Fujishiro et al. | Dec 2011 | A1 |
20110310648 | Iwamoto et al. | Dec 2011 | A1 |
20120014199 | Narui | Jan 2012 | A1 |
20120059984 | Kang et al. | Mar 2012 | A1 |
20120151131 | Kilmer et al. | Jun 2012 | A1 |
20120155173 | Lee et al. | Jun 2012 | A1 |
20120155206 | Kodama et al. | Jun 2012 | A1 |
20120213021 | Riho et al. | Aug 2012 | A1 |
20120254472 | Ware et al. | Oct 2012 | A1 |
20120287727 | Wang | Nov 2012 | A1 |
20120307582 | Marumoto et al. | Dec 2012 | A1 |
20120327734 | Sato | Dec 2012 | A1 |
20130003467 | Klein | Jan 2013 | A1 |
20130003477 | Park et al. | Jan 2013 | A1 |
20130028034 | Fujisawa | Jan 2013 | A1 |
20130051157 | Park | Feb 2013 | A1 |
20130051171 | Porter et al. | Feb 2013 | A1 |
20130077423 | Lee | Mar 2013 | A1 |
20130173971 | Zimmerman | Jul 2013 | A1 |
20130254475 | Perego et al. | Sep 2013 | A1 |
20130279284 | Jeong | Oct 2013 | A1 |
20140000670 | Bains et al. | Jan 2014 | A1 |
20140006700 | Schaefer et al. | Jan 2014 | A1 |
20140006704 | Greenfield et al. | Jan 2014 | A1 |
20140013169 | Kobla et al. | Jan 2014 | A1 |
20140013185 | Kobla et al. | Jan 2014 | A1 |
20140016422 | Kim et al. | Jan 2014 | A1 |
20140022858 | Chen et al. | Jan 2014 | A1 |
20140043888 | Chen et al. | Feb 2014 | A1 |
20140050004 | Mochida | Feb 2014 | A1 |
20140078841 | Chopra | Mar 2014 | A1 |
20140078842 | Oh et al. | Mar 2014 | A1 |
20140089576 | Bains et al. | Mar 2014 | A1 |
20140089758 | Kwok et al. | Mar 2014 | A1 |
20140095780 | Bains et al. | Apr 2014 | A1 |
20140095786 | Moon et al. | Apr 2014 | A1 |
20140119091 | You et al. | May 2014 | A1 |
20140143473 | Kim et al. | May 2014 | A1 |
20140169114 | Oh | Jun 2014 | A1 |
20140177370 | Halbert et al. | Jun 2014 | A1 |
20140181453 | Tayasena et al. | Jun 2014 | A1 |
20140185403 | Lai | Jul 2014 | A1 |
20140189228 | Greenfield et al. | Jul 2014 | A1 |
20140219042 | Yu et al. | Aug 2014 | A1 |
20140219043 | Jones et al. | Aug 2014 | A1 |
20140237307 | Kobla et al. | Aug 2014 | A1 |
20140241099 | Seo et al. | Aug 2014 | A1 |
20140254298 | Dally | Sep 2014 | A1 |
20140281206 | Crawford et al. | Sep 2014 | A1 |
20140281207 | Mandava et al. | Sep 2014 | A1 |
20140293725 | Best et al. | Oct 2014 | A1 |
20140321226 | Pyeon | Oct 2014 | A1 |
20150016203 | Sriramagiri et al. | Jan 2015 | A1 |
20150049566 | Lee et al. | Feb 2015 | A1 |
20150049567 | Chi | Feb 2015 | A1 |
20150055420 | Bell et al. | Feb 2015 | A1 |
20150078112 | Huang | Mar 2015 | A1 |
20150085564 | Yoon et al. | Mar 2015 | A1 |
20150089326 | Joo et al. | Mar 2015 | A1 |
20150092508 | Bains | Apr 2015 | A1 |
20150109871 | Bains et al. | Apr 2015 | A1 |
20150120999 | Kim et al. | Apr 2015 | A1 |
20150134897 | Sriramagiri et al. | May 2015 | A1 |
20150162064 | Oh et al. | Jun 2015 | A1 |
20150162067 | Kim et al. | Jun 2015 | A1 |
20150170728 | Jung et al. | Jun 2015 | A1 |
20150199126 | Jayasena et al. | Jul 2015 | A1 |
20150206572 | Lim et al. | Jul 2015 | A1 |
20150213872 | Mazumder et al. | Jul 2015 | A1 |
20150243339 | Bell et al. | Aug 2015 | A1 |
20150255140 | Song | Sep 2015 | A1 |
20150279442 | Hwang | Oct 2015 | A1 |
20150294711 | Gaither et al. | Oct 2015 | A1 |
20150340077 | Akamatsu | Nov 2015 | A1 |
20150356048 | King | Dec 2015 | A1 |
20150380073 | Joo et al. | Dec 2015 | A1 |
20160019940 | Jang et al. | Jan 2016 | A1 |
20160027498 | Ware et al. | Jan 2016 | A1 |
20160027531 | Jones et al. | Jan 2016 | A1 |
20160027532 | Kim | Jan 2016 | A1 |
20160042782 | Narui et al. | Feb 2016 | A1 |
20160070483 | Yoon et al. | Mar 2016 | A1 |
20160078846 | Liu et al. | Mar 2016 | A1 |
20160078911 | Fujiwara et al. | Mar 2016 | A1 |
20160086649 | Hong et al. | Mar 2016 | A1 |
20160093402 | Kitagawa et al. | Mar 2016 | A1 |
20160125931 | Doo et al. | May 2016 | A1 |
20160133314 | Hwang et al. | May 2016 | A1 |
20160155491 | Roberts et al. | Jun 2016 | A1 |
20160180917 | Chishti et al. | Jun 2016 | A1 |
20160180921 | Jeong | Jun 2016 | A1 |
20160196863 | Shin et al. | Jul 2016 | A1 |
20160202926 | Benedict | Jul 2016 | A1 |
20160225433 | Bains et al. | Aug 2016 | A1 |
20160336060 | Shin | Nov 2016 | A1 |
20160343423 | Shido | Nov 2016 | A1 |
20170011792 | Oh et al. | Jan 2017 | A1 |
20170052722 | Ware et al. | Feb 2017 | A1 |
20170076779 | Bains et al. | Mar 2017 | A1 |
20170092350 | Halbert et al. | Mar 2017 | A1 |
20170111792 | Correia Fernandes et al. | Apr 2017 | A1 |
20170133085 | Kim et al. | May 2017 | A1 |
20170133108 | Lee et al. | May 2017 | A1 |
20170140807 | Sun et al. | May 2017 | A1 |
20170140810 | Choi et al. | May 2017 | A1 |
20170140811 | Joo | May 2017 | A1 |
20170146598 | Kim et al. | May 2017 | A1 |
20170148504 | Saifuddin et al. | May 2017 | A1 |
20170177246 | Miller et al. | Jun 2017 | A1 |
20170186481 | Oh et al. | Jun 2017 | A1 |
20170213586 | Kang et al. | Jul 2017 | A1 |
20170221546 | Loh et al. | Aug 2017 | A1 |
20170263305 | Cho | Sep 2017 | A1 |
20170269861 | Lu et al. | Sep 2017 | A1 |
20170287547 | Ito et al. | Oct 2017 | A1 |
20170323675 | Jones et al. | Nov 2017 | A1 |
20170345482 | Balakrishnan | Nov 2017 | A1 |
20170352404 | Lee et al. | Dec 2017 | A1 |
20180005690 | Morgan et al. | Jan 2018 | A1 |
20180025770 | Ito et al. | Jan 2018 | A1 |
20180025772 | Lee et al. | Jan 2018 | A1 |
20180025773 | Bains et al. | Jan 2018 | A1 |
20180033479 | Lea et al. | Feb 2018 | A1 |
20180047110 | Blackman et al. | Feb 2018 | A1 |
20180061476 | Kim | Mar 2018 | A1 |
20180061483 | Morgan | Mar 2018 | A1 |
20180061485 | Joo | Mar 2018 | A1 |
20180075927 | Jeong et al. | Mar 2018 | A1 |
20180082737 | Lee | Mar 2018 | A1 |
20180096719 | Tomishima et al. | Apr 2018 | A1 |
20180102776 | Chandrasekar et al. | Apr 2018 | A1 |
20180107417 | Shechter et al. | Apr 2018 | A1 |
20180108401 | Choi et al. | Apr 2018 | A1 |
20180114561 | Fisch et al. | Apr 2018 | A1 |
20180114565 | Lee | Apr 2018 | A1 |
20180122454 | Lee et al. | May 2018 | A1 |
20180130506 | Kang et al. | May 2018 | A1 |
20180137005 | Wu et al. | May 2018 | A1 |
20180158504 | Akamatsu | Jun 2018 | A1 |
20180158507 | Bang | Jun 2018 | A1 |
20180182445 | Lee et al. | Jun 2018 | A1 |
20180190340 | Kim et al. | Jul 2018 | A1 |
20180218767 | Wolff | Aug 2018 | A1 |
20180226119 | Kim et al. | Aug 2018 | A1 |
20180233197 | Laurent | Aug 2018 | A1 |
20180240511 | Yoshida et al. | Aug 2018 | A1 |
20180247876 | Kim et al. | Aug 2018 | A1 |
20180254078 | We et al. | Sep 2018 | A1 |
20180261268 | Hyun et al. | Sep 2018 | A1 |
20180276150 | Eckert et al. | Sep 2018 | A1 |
20180285007 | Franklin et al. | Oct 2018 | A1 |
20180294028 | Lee et al. | Oct 2018 | A1 |
20180308539 | Ito et al. | Oct 2018 | A1 |
20180341553 | Koudele et al. | Nov 2018 | A1 |
20190013059 | Akamatsu | Jan 2019 | A1 |
20190043558 | Suh et al. | Feb 2019 | A1 |
20190051344 | Bell et al. | Feb 2019 | A1 |
20190065087 | Li et al. | Feb 2019 | A1 |
20190066759 | Naie | Feb 2019 | A1 |
20190066766 | Lee | Feb 2019 | A1 |
20190088315 | Saenz et al. | Mar 2019 | A1 |
20190088316 | Inuzuka et al. | Mar 2019 | A1 |
20190103147 | Jones et al. | Apr 2019 | A1 |
20190115069 | Lai | Apr 2019 | A1 |
20190122723 | Ito et al. | Apr 2019 | A1 |
20190129651 | Wuu et al. | May 2019 | A1 |
20190130960 | Kim | May 2019 | A1 |
20190130961 | Bell et al. | May 2019 | A1 |
20190147964 | Yun et al. | May 2019 | A1 |
20190161341 | Howe | May 2019 | A1 |
20190190341 | Beisele et al. | Jun 2019 | A1 |
20190196730 | Imran | Jun 2019 | A1 |
20190198078 | Hoang et al. | Jun 2019 | A1 |
20190198099 | Mirichigni et al. | Jun 2019 | A1 |
20190205253 | Roberts | Jul 2019 | A1 |
20190228810 | Jones et al. | Jul 2019 | A1 |
20190228815 | Morohashi et al. | Jul 2019 | A1 |
20190252020 | Rios et al. | Aug 2019 | A1 |
20190267077 | Ito et al. | Aug 2019 | A1 |
20190279706 | Kim | Sep 2019 | A1 |
20190294348 | Ware et al. | Sep 2019 | A1 |
20190333573 | Shin et al. | Oct 2019 | A1 |
20190348100 | Smith et al. | Nov 2019 | A1 |
20190348102 | Smith et al. | Nov 2019 | A1 |
20190348103 | Jeong et al. | Nov 2019 | A1 |
20190362774 | Kuramori et al. | Nov 2019 | A1 |
20190385661 | Koo et al. | Dec 2019 | A1 |
20190385667 | Morohashi et al. | Dec 2019 | A1 |
20190385668 | Fujioka et al. | Dec 2019 | A1 |
20190385670 | Notani et al. | Dec 2019 | A1 |
20190386557 | Wang et al. | Dec 2019 | A1 |
20190391760 | Miura et al. | Dec 2019 | A1 |
20190392886 | Cox et al. | Dec 2019 | A1 |
20200005857 | Ito et al. | Jan 2020 | A1 |
20200051616 | Cho | Feb 2020 | A1 |
20200075086 | Hou et al. | Mar 2020 | A1 |
20200082873 | Wolff | Mar 2020 | A1 |
20200126611 | Riho et al. | Apr 2020 | A1 |
20200135263 | Brown et al. | Apr 2020 | A1 |
20200143871 | Kim et al. | May 2020 | A1 |
20200176050 | Ito et al. | Jun 2020 | A1 |
20200185026 | Yun et al. | Jun 2020 | A1 |
20200194056 | Sakurai et al. | Jun 2020 | A1 |
20200202921 | Morohashi et al. | Jun 2020 | A1 |
20200210278 | Rooney et al. | Jul 2020 | A1 |
20200211632 | Noguchi | Jul 2020 | A1 |
20200211633 | Okuma | Jul 2020 | A1 |
20200211634 | Ishikawa et al. | Jul 2020 | A1 |
20200219555 | Rehmeyer | Jul 2020 | A1 |
20200219556 | Ishikawa et al. | Jul 2020 | A1 |
20200265888 | Ito et al. | Aug 2020 | A1 |
20200273517 | Yamamoto | Aug 2020 | A1 |
20200273518 | Raad et al. | Aug 2020 | A1 |
20200279599 | Ware et al. | Sep 2020 | A1 |
20200294569 | Wu et al. | Sep 2020 | A1 |
20200294576 | Brown et al. | Sep 2020 | A1 |
20200321049 | Meier et al. | Oct 2020 | A1 |
20200381040 | Penney et al. | Dec 2020 | A1 |
20200388324 | Rehmeyer et al. | Dec 2020 | A1 |
20200388325 | Cowles et al. | Dec 2020 | A1 |
20200395063 | Rehmeyer | Dec 2020 | A1 |
20210057021 | Wu et al. | Feb 2021 | A1 |
20210057022 | Jenkinson et al. | Feb 2021 | A1 |
20210118491 | Li et al. | Apr 2021 | A1 |
20210166752 | Noguchi | Jun 2021 | A1 |
20210183433 | Jenkinson et al. | Jun 2021 | A1 |
20210183435 | Meier et al. | Jun 2021 | A1 |
20210225431 | Rehmeyer et al. | Jul 2021 | A1 |
20210304813 | Cowles et al. | Sep 2021 | A1 |
20210335411 | Wu et al. | Oct 2021 | A1 |
Number | Date | Country |
---|---|---|
101038785 | Sep 2007 | CN |
101067972 | Nov 2007 | CN |
104350546 | Feb 2015 | CN |
106710621 | May 2017 | CN |
107871516 | Apr 2018 | CN |
2005-216429 | Aug 2005 | JP |
2011-258259 | Dec 2011 | JP |
4911510 | Jan 2012 | JP |
2013-004158 | Jan 2013 | JP |
6281030 | Jan 2018 | JP |
2014120477 | Aug 2014 | WO |
2015030991 | Mar 2015 | WO |
2017171927 | Oct 2017 | WO |
2019222960 | Nov 2019 | WO |
2020010010 | Jan 2020 | WO |
2020117686 | Jun 2020 | WO |
2020247163 | Dec 2020 | WO |
2020247639 | Dec 2020 | WO |
Entry |
---|
International Application No. PCT/US20/23689, titled “Semiconductor Device Having Cam That Stores Address Signals”, dated Mar. 19, 2020, pp. all. |
U.S. Appl. No. 16/797,658, titles “Apparatuses and Methods for Controlling Refresh Operations”, filed Feb. 21, 2020, pp. all. |
U.S. Appl. No. 16/818,981 titled “Apparatuses and Methods for Staggered Timing of Targeted Refresh Operations” filed Mar. 13, 2020, pp. all. |
U.S. Appl. No. 16/824,460, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, dated Mar. 19, 2020, pp. all. |
U.S. Appl. No. 16/025,844, titled “Apparatus and Methods for Triggering Row Hammer Address Sampling”, filed Jul. 2, 2018, pp. all. |
U.S. Appl. No. 16/783,063, titled “Apparatus and Methods for Triggering Row Hammer Address Sampling”, dated Feb. 5, 2020, pp. all. |
U.S. Appl. No. 16/805,197, titled “Apparatuses and Methods for Calculating Row Hammer Refresh Addresses in a Semiconductor Device”, dated Feb. 28, 2020, pp. all. |
U.S. Appl. No. 16/232,837, titled “Apparatuses and Methods for Distributed Targeted Refresh Operations”, filed Dec. 26, 2018, pp. all. |
U.S. Appl. No. 16/818,989, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, dated Mar. 13, 2020, pp. all. |
U.S. Appl. No. 16/268,818, titled “Apparatuses and Methods for Managing Row Access Counts”, filed Feb. 6, 2019, pp. all. |
U.S. Appl. No. 16/286,187 titled “Apparatuses and Methods for Memory Mat Refresh Sequencing” filed Feb. 26, 2019, pp. all. |
U.S. Appl. No. 16/084,119, titled “Apparatuses and Methods for Pure-Time, Self Adopt Sampling for Row Hammer Refresh Sampling”, filed Sep. 11, 2018, pp. all. |
U.S. Appl. No. 16/886,284 titled “Apparatuses and Methods for Access Based Refresh Timing” filed May 28, 2020, pp. all. |
U.S. Appl. No. 16/886,284, titled “Apparatuses and Methods for Access Based Refresh Timing”, dated May 28, 2020, pp. all. |
U.S. Appl. No. 16/358,587, titled “Semiconductor Device Having Cam That Stores Address Signals”, dated Mar. 19, 2019, pp. all. |
U.S. Appl. No. 16/375,716 titled “Apparatuses and Methods for Staggered Timing of Targeted Refresh Operations” filed Apr. 4, 2019; pp. all. |
U.S. Appl. No. 16/411,573 titled “Apparatuses, Systems, and Methods for a Content Addressable Memory Cell” filed May 14, 2019, pp. all. |
U.S. Appl. No. 16/428,625 titled “Apparatuses and Methods for Tracking Victim Rows” filed May 31, 2019, pp. all. |
U.S. Appl. No. 17/008,396 titled “Apparatuses and Methods for Staggered Timing of Targeted Refresh Operations” filed Aug. 31, 2020, pp. all. |
U.S. Appl. No. 16/513,400 titled “Apparatuses and Methods for Tracking Row Accesses” filed Jul. 16, 2019, pp. all. |
U.S. Appl. No. 16/548,027 titled “Apparatuses, Systems, and Methods for Analog Row Access Rate Determination” filed Aug. 22, 2019, pp. all. |
U.S. Appl. No. 16/549,942 titled “Apparatuses and Methods for Lossy Row Access Counting” filed Aug. 23, 2019, pp. all. |
U.S. Appl. No. 16/546,152 titled “Apparatuses and Methods for Analog Row Access Tracking” filed Aug. 20, 2019, pp. all. |
U.S. Appl. No. 16/549,411 titled “Apparatuses and Methods for Dynamic Refresh Allocation” filed Aug. 23, 2019, pp. all. |
International Application No. PCT/US19/40169 titled “Apparatus and Methods for Triggering Row Hammer Address Sampling” filed Jul. 1, 2019, pp. all. |
International Application No. PCT/US19/64028, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, dated Dec. 2, 2019, pp. all. |
International Application No. PCT/US20/26689, titled “Apparatuses and Methods for Staggered Timing of Targeted Refresh Operations”, dated Apr. 3, 2020, pp. all. |
PCT Application No. PCT/US20/32931, titled “Apparatuses and Methods for Controlling Steal Rates”, dated May 14, 2020, pp. all. |
U.S. Appl. No. 16/788,657, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, dated Feb. 12, 2020, pp. all. |
U.S. Appl. No. 15/881,256 entitled ‘Apparatuses and Methods for Detecting a Row Hammer Attack With a Bandpass Filter’ filed Jan. 26, 2018, pp. all. |
U.S. Appl. No. 16/425,525 titled “Apparatuses and Methods for Tracking All Row Accesses” filed May 29, 2019, pp. all. |
U.S. Appl. No. 16/427,105 titled “Apparatuses and Methods for Priority Targeted Refresh Operations” filed May 30, 2019, pp. all. |
U.S. Appl. No. 16/427,140 titled “Apparatuses and Methods for Tracking Row Access Counts Between Multiple Register Stacks” filed May 30, 2019, pp. all. |
U.S. Appl. No. 16/437,811 titled “Apparatuses, Systems, and Methods for Determining Extremum Numerical Values” filed Jun. 11, 2019, pp. all. |
U.S. Appl. No. 16/537,981 titled “Apparatuses and Methods for Controlling Targeted Refresh Rates” filed Aug. 12, 2019, pp. all. |
U.S. Appl. No. 16/655,110 titled “Apparatuses and Methods for Dynamic Targeted Refresh Steals” filed Oct. 16, 2019, pp. all. |
U.S. Appl. No. 16/997,659 titled “Apparatuses, Systems, and Methods for Refresh Modes” filed Aug. 19, 2020, pp. all. |
U.S. Appl. No. 16/997,766 titled “Refresh Logic Circuit Layouts Thereof” filed Aug. 19, 2020, pp. all. |
U.S. Appl. No. 17/095,978 titled “Apparatuses and Methods for Controlling Refresh Timing” filed Nov. 12, 2020, pp. all. |
U.S. Appl. No. 17/127,654 titled “Apparatuses and Methods for Row Hammer Based Cache Lockdown” filed Dec. 18, 2020, pp. all. |
U.S. Appl. No. 17/175,485 titled “Apparatuses and Methods for Distributed Targeted Refresh Operations” filed Feb. 12, 2021, pp. all. |
U.S. Appl. No. 17/186,913 titled “Apparatuses and Methods for Dynamic Refresh Allocation” filed Feb. 26, 2021, pp. all. |
U.S. Appl. No. 17/187,002 titled “Apparatuses and Methods for Staggered Timing of Targeted Refresh Operations” filed Feb. 26, 2021, pp. all. |
U.S. Appl. No. 15/789,897, entitled “Apparatus and Methods for Refreshing Memory”, filed Oct. 20, 2017; pp. all. |
U.S. Appl. No. 15/796,340, entitled: “Apparatus and Methods for Refreshing Memory” filed Oct. 27, 2017, pp. all. |
U.S. Appl. No. 16/012,679, titled “Apparatuses and Methods for Multiple Row Hammer Refresh Address Sequences”, filed Jun. 19, 2018, pp. all. |
U.S. Appl. No. 16/020,863, titled “Semiconductor Device”, filed Jun. 27, 2018, pp. all. |
U.S. Appl. No. 16/112,471 titled “Apparatuses and Methods for Controlling Refresh Operations” filed Aug. 24, 2018, pp. all. |
U.S. Appl. No. 16/160,801, titled “Apparatuses and Methods for Selective Row Refreshes” filed Oct. 15, 2018, pp. all. |
U.S. Appl. No. 16/176,932, titled “Apparatuses and Methods for Access Based Refresh Timing”, filed Oct. 31, 2018, pp. all. |
U.S. Appl. No. 16/208,217, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, filed Dec. 3, 2018, pp. all. |
U.S. Appl. No. 16/230,300, titled “Apparatuses and Methods for Staggered Timing of Targeted Refresh Operations” filed Dec. 21, 2018, pp. all. |
U.S. Appl. No. 16/231,327 titled “Apparatuses and Methods for Selective Row Refreshes”, filed Dec. 21, 2018, pp. all. |
U.S. Appl. No. 16/237,291, titled “Apparatus and Methods for Refreshing Memory”, filed Dec. 31, 2018, pp. all. |
U.S. Appl. No. 16/290,730, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, filed Mar. 1, 2019, pp. all. |
U.S. Appl. No. 16/374,623, titled “Semiconductor Device Performing Row Hammer Refresh Operation”, filed Apr. 3, 2019, pp. all. |
U.S. Appl. No. 16/411,698 title “Semiconductor Device” filed May 14, 2019, pp. all. |
U.S. Appl. No. 16/427,330 titled “Apparatuses and Methods for Storing Victim Row Data” filed May 30, 2019, pp. all. |
U.S. Appl. No. 16/431,641 titled “Apparatuses and Methods for Controlling Steal Rates” filed Jun. 4, 2019, pp. all. |
U.S. Appl. No. 16/682,606, titled “Apparatuses and Methods for Distributing Row Hammer Refresh Events Across a Memory Device”, filed Nov. 13, 2019, pp. all. |
U.S. Appl. No. 15/876,566 entitled ‘Apparatuses and Methods for Calculating Row Hammer Refresh Addresses in a Semiconductor Device’ filed Jan. 22, 2018, pp. all. |
U.S. Appl. No. 15/656,084, titled “Apparatuses and Methods for Targeted Refreshing of Memory”, filed Jul. 21, 2017, pp. all. |
U.S. Appl. No. 16/459,520 titled “Apparatuses and Methods for Monitoring Word Line Accesses”, filed Jul. 1, 2019, pp. all. |
PCT Application No. PCT/US18/55821 “Apparatus and Methods for Refreshing Memory” filed Oct. 15, 2018, pp. all. |
U.S. Appl. No. 15/715,846, entitled “Semiconductor Device”, filed Sep. 26, 2017, pp. all. |
U.S. Appl. No. 15/888,993, entitled “Apparatuses and Methods for Controlling Refresh Operations”, filed Feb. 5, 2018, pp. all. |
U.S. Appl. No. 16/190,627 titled “Apparatuses and Methods for Targeted Refreshing of Memory” filed Nov. 14, 2018, pp. all. |
U.S. Appl. No. 17/030,018, titled “Apparatuses and Methods for Controlling Refresh Operations”, filed Sep. 23, 2020, pp. all. |
U.S. Appl. No. 15/281,818, entitled: “Semiconductor Device” filed Sep. 30, 2016, pp. all. |
Kim, et al., “Flipping Bits in MemoryWithout Accessing Them: An Experimental Study of DRAM Disturbance Errors”, IEEE,Jun. 2014, 12 pgs. |
U.S. Appl. No. 17/324,621 titled “Apparatuses and Methods for Pure-Time, Self-Adopt Sampling for Row Hammer Refresh Sampling” filed May 19, 2021. |
U.S. Appl. No. 17/347,957 titled “Apparatuses and Methods for Controlling Steal Rates” filed Jun. 15, 2021. |
U.S. Appl. No. 16/432,604 titled “Apparatuses and Methods for Staggered Timing of Skipped Refresh Operations” filed Jun. 5, 2019, pp. all. |
U.S. Appl. No. 17/226,975, titled “Apparatuses and Methods for Staggered Timing of Skipped Refresh Operations” filed Apr. 9, 2021, pp. all. |
Number | Date | Country | |
---|---|---|---|
20220051716 A1 | Feb 2022 | US |