US20090147606A1 - Memory refresh method and apparatus - Google Patents
Memory refresh method and apparatus Download PDFInfo
- Publication number
- US20090147606A1 US20090147606A1 US11/950,778 US95077807A US2009147606A1 US 20090147606 A1 US20090147606 A1 US 20090147606A1 US 95077807 A US95077807 A US 95077807A US 2009147606 A1 US2009147606 A1 US 2009147606A1
- Authority
- US
- United States
- Prior art keywords
- row address
- refresh
- bits
- change state
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
Definitions
- Memory devices have one or more arrays of memory cells for storing information. A bit of information is written to or read from a particular memory cell by selecting the row and column at the intersection of which is located the desired memory cell. Information is stored in the selected memory cell by either charging or discharging a capacitor associated with the cell. In some memory devices, charge stored on a memory cell capacitor leaks out over time. If memory cell leakage is not addressed, information stored in a memory device will be lost. To prevent data loss, information stored in memory devices is periodically refreshed. Examples of memory devices that may suffer from leakage include Dynamic Random Access Memory (DRAM) devices.
- DRAM Dynamic Random Access Memory
- Data stored in a DRAM device is conventionally refreshed one row at a time.
- a row of memory cells is refreshed by selecting the row, reading the contents of the memory cells forming the row, and writing the same data back to the row.
- the predominant DRAM refresh operations are distributed and burst.
- memory access operations are evenly interspersed between refresh cycles. This way, data may be read from or written to a DRAM device between row refresh operations.
- burst refresh all refresh cycles are executed one right after the other until all rows have been refreshed.
- a DRAM device may not be accessed during a burst refresh.
- All addressable rows are typically refreshed during periodic distributed or burst refresh operations regardless of whether all rows are used when the DRAM device is active.
- some conventional approaches actively track which rows are accessed during normal DRAM operation, refreshing only the rows accessed during use.
- the circuit overhead needed to actively track which rows are accessed during normal operation becomes increasingly complex as the size of DRAM devices increase, thus consuming more chip area and power.
- an integrated circuit includes one or more memory array segments configured to store information and a refresh controller.
- Each memory array segment has a plurality of memory cells arranged in rows selectable through a row address.
- the refresh controller is configured to monitor row address activity to identify which bits of the row address change state at least once during a memory access operation and to skip refresh of the rows associated with the row address bits that do not change state at least once during the memory access operation.
- FIG. 1 is a block diagram of an embodiment of a memory device including a refresh controller.
- FIG. 2 is a block diagram of an embodiment of the refresh controller of FIG. 1 .
- FIG. 3 is a logic flow diagram of one embodiment of program logic for selectively refreshing rows in the memory device of FIG. 1 .
- FIG. 4 is a block diagram of an embodiment of control circuitry included in the refresh controller of FIG. 1 .
- FIG. 5 is a block diagram of an embodiment of a counter included in the refresh controller of FIG. 1 .
- FIG. 6 is a block diagram of an embodiment of one stage of the counter of FIG. 5 .
- FIG. 7 is a plot illustrating refresh addresses generated by the counter of FIG. 5 .
- FIG. 8 is a plot illustrating different refresh addresses generated by the counter of FIG. 5 .
- FIG. 9 is a block diagram of an embodiment of a refresh rate control circuit included in the refresh controller of FIG. 1 .
- FIG. 10 is a plot illustrating different refresh clocks generated by the refresh rate control circuit of FIG. 9 .
- FIG. 1 illustrates an embodiment of a Dynamic Random Access Memory (DRAM) device 100 such as Synchronous DRAM (SDRAM), Double Data Rate (DDR) SDRAM, Quad Data Rate (QDR) SDRAM, Synchronous Graphics DRAM, Pseudostatic SDRAM, embedded DRAM or the like. It is to be understood that the embodiments described herein may be applied to any type of memory that would benefit from a refresh operation.
- the DRAM device 100 includes a memory array 102 having rows of memory cells.
- the memory array 102 is arranged as one or more separately addressable segments such as a bank or any other type of logical and/or physical structure.
- a memory cell is accessed by providing the appropriate row address (row_addr ⁇ 0:n>) and column address (col_addr ⁇ 0:m>) to the memory device 100 .
- Data is read from or written to selected memory cells. Rows of memory cells are periodically refreshed so that information stored in the DRAM device 100 is not corrupted.
- a refresh controller 104 monitors row address activity to determine which row address bits change state at least once during normal DRAM operation, e.g., during read and write operations. Rows associated with the address bits that do not change state at least once during normal DRAM operation are skipped during refresh operations. Thus, unutilized rows are not refreshed. Accordingly, the refresh controller 104 may shorten periodic refresh operations to improve DRAM performance as will be described in more detail later. Alternatively, the refresh controller 104 may reduce DRAM power consumption by adjusting the refresh clock frequency so that it coincides with the number of un-accessed rows as will also be described in more detail later.
- address information is provided to the DRAM device 100 and stored in an address register 106 .
- the address information indicates a row and column location in the memory array 102 to be accessed (and segment if the memory array 102 is so arranged).
- row and column address information is carried over the same bus 108 while a separate bus 110 carries data. Accordingly, a row address is provided to the DRAM device 100 , followed by a column address.
- Information written to the DRAM device 100 or read from the device 100 is carried by the data bus 110 .
- a reduced-pin bus interface (not shown) may be used for carrying address, data, and control information on the same bus.
- row address information (row_addr ⁇ 0:n>) is latched by a row address latch 112 while a column address latch 114 stores column address information (col_addr ⁇ 0:m>).
- Row and column address decoders 116 , 118 determine which memory cells in the memory array 102 are selected during a memory operation based on latched row and column addresses, respectively. Data is then written to or read from the selected memory cells via data Input/Output circuitry 120 .
- the refresh controller 104 provides a refresh row address (rfsh_addr ⁇ 0:n>) to the row address latch 112 during a refresh operation.
- the refresh row address identifies particular rows in the array 102 to be refreshed.
- the refresh controller 104 activates the refresh row address bits to select different ones of the rows, the contents of which are then refreshed. However, not all rows are refreshed during the refresh operation. Instead, the refresh controller 104 monitors row address activity during normal DRAM operation to determine which row address bits change state at least once.
- the refresh controller 104 does not activate the row address bits that did not change state during normal DRAM operation, and thus the corresponding unutilized rows in the memory array 102 are not refreshed. As such, only those rows associated with address bits that change state at least once during normal DRAM operation are refreshed by the refresh controller 104 .
- FIG. 2 illustrates an embodiment of the refresh controller 104 .
- the refresh controller 104 comprises control circuitry 200 , a counter 202 and a refresh rate control circuit 204 .
- the control circuitry 200 monitors row address activity during normal DRAM operation, e.g., as illustrated by Step 300 of FIG. 3 . This way, the row address bits that change state at least once during DRAM operation are identified. Based on the monitored row address activity, the control circuitry 200 determines which memory cell rows have not been accessed, e.g., as illustrated by Step 302 of FIG. 3 .
- the control circuitry 200 generates a control signal CTRL ⁇ 0:n> having the same number of bits n as the row address. Each bit of the control signal corresponds to a respective bit of the row address.
- the control circuitry 200 programs each bit of the control signal CTRL ⁇ 0:n> based on whether the corresponding row address bit changed state at least once when latched by the row address latch 112 during normal DRAM operation. A bit changes state when it switches from a logic one to logic zero state or vice-versa. As such, the control signal CTRL ⁇ 0:n> indicates which row address bits have changed state at least once during normal DRAM operation.
- the counter 202 activates row addresses based on the state of the control signal CTRL ⁇ 0:n>, skipping those rows associated with the row address bits that did not change state during normal DRAM operation as indicated by the control signal CTRL ⁇ 0:n>. Thus, those rows not accessed during normal DRAM operation as indicated by the monitored row address activity are skipped during refresh operations, e.g., as illustrated by Step 304 of FIG. 3 . The remaining rows are refreshed.
- each row of memory cells in the array 102 is selectable by setting the row address to a particular value.
- sixteen rows are uniquely addressable based on a 4-bit row address (row_addr ⁇ 3:0>).
- a particular row is selected by setting the row address to a value which identifies the desired row. For example, row 0 is accessed by setting the row address to ⁇ 0,0,0,0>, row 1 is accessed by setting the least significant bit of the row address to ⁇ 0,0,0,1> and soon.
- the default row address is set to ⁇ 0,0,0,0> when the DRAM device is reset.
- the third row is then accessed followed by the fifth and seventh rows during normal DRAM operation. Accordingly, the row address successively changes state from ⁇ 0,0,0,0> to ⁇ 0,0,1,0> followed by ⁇ 0,1,0,0> and finally ⁇ 0,1,1,0>.
- each bit of the control signal CTRL ⁇ 0:n> is set to the same initial state, e.g., a logic one state. While the DRAM device 100 is active, only the control signal bits associated with row address bits that change state at least once during normal operation are triggered, e.g., from a logic one to a logic zero. Thus, each bit of the control signal CTRL ⁇ 0:n> that remains in its initial state indicates that the corresponding row address bit did not change state at least once during normal DRAM operation. To the contrary, each triggered control bit indicates that the corresponding row address bit changed state.
- the first and second bits of the control signal CTRL ⁇ 0:n> switch from an initial value of one to a value of zero because only the first and second row address bits change state during normal DRAM operation. Accordingly, the control signal is set to CTRL ⁇ 1,0,0,1> for indicating to the counter 202 that the second and third address bits row_addr ⁇ 0> and row_addr ⁇ 3> are not to be toggled during refresh, thus skipping refresh of Row 1, Row 3, Row 5, and Rows 7-15 in Table 1.
- the counter 202 does not activate the row address bits that did not change state during normal DRAM operation as indicated by the control signal CTRL ⁇ 0:n>. This way, unutilized rows are not refreshed.
- a control signal bit is triggered, it remains in a triggered state until the DRAM device 100 is deactivated or the control circuitry 200 reset.
- the control circuitry 200 cumulatively monitors row address activity.
- a reset signal causes the control circuitry 200 to reset the control signal CTRL ⁇ 0:n> to an initial state. This way, the control circuitry 200 monitors row address activity anew upon reactivation of the DRAM device 100 .
- the control circuitry 200 is segmented into several stages (not shown), each stage configured to generate one bit of the control signal CTRL ⁇ 0:n>.
- FIG. 4 illustrates an embodiment of one stage 400 of the control circuitry 200 .
- the control stage 400 monitors row address activity for the m th bit of the row address (row_addr ⁇ 0:n>). Initially, the m th control signal bit (CTRL ⁇ m>) is set to a predetermined state such as a logic one. If the m th row address bit changes state at least once when the DRAM device is active, the m th control signal bit is set to a triggered state such as a logic zero to indicate the m th address bit has been set in both logic states.
- the m th control signal bit remains in its initial state to indicate the m th row address bit has not changed state during normal DRAM operation. Once the m th control signal bit is triggered, it remains in a triggered state until the stage 400 is reset.
- the m th stage 400 also generates other control signals (H ⁇ m> and L ⁇ m>) used by the counter 202 to maintain the m th row address bit in its initial activation state during refresh if the bit does not change state during normal DRAM operation as will be described in detail later.
- an activate signal enables the m th stage 400 when the DRAM device 100 is active.
- the activate signal is a clock pulse periodically delivered when a new row address is ready for latching.
- a reset signal resets the control signals generated by stage 400 to their respective initial states.
- the reset signal drives an n-fet transistor N 1 to ground.
- a first inverter 402 inverts the n-fet transistor output, thus resetting control signal H ⁇ m> to a logic one state.
- a second inverter 404 drives a p-fet transistor P 1 to Vdd responsive to the active reset signal.
- a third inverter 406 inverts the p-fet transistor output, thus resetting control signal L ⁇ m> to a logic zero state.
- a fourth inverter 408 and a NAND gate 410 reset the m th bit of the control signal CTRL ⁇ m> to a logic one state.
- the control signals CTRL ⁇ m>, H ⁇ m> and L ⁇ m> may be reset to other states.
- the m th stage 400 monitors the m th row address bit after the stage 400 has been reset and the DRAM device 100 activated.
- control signal H ⁇ m> transitions from its initial logic one state to a logic zero state while control signal L ⁇ m> remains in its initial logic zero state.
- Control signal CTRL ⁇ m> likewise remains in its initial logic one state.
- a second NAND gate 412 outputs a logic low signal to a first trigger circuit 414 when the m th row address bit is initially at a high level.
- the first trigger circuit 414 comprising an inverter 416 and a NAND gate 418 , outputs a logic one signal which is inverted by the first inverter 402 , thus causing the low transition in control signal H ⁇ m>.
- a fifth inverter 420 inverts the activate signal (ACT) and provides the inverted signal to a NOR gate 422 .
- the NOR gate 422 outputs a logic zero signal to a second trigger circuit 424 because the m th row address bit is initially at a logic high level when the activate signal ACT is first activated.
- the second trigger circuit 424 comprising an inverter 426 and a NOR gate 428 , outputs a logic one signal because the p-fet transistor P 1 initially drives the inverter 426 of the second trigger circuit 424 with a logic one value.
- the control signal L ⁇ m> remains in its initial logic zero state. Because control signal L ⁇ m> remains in its initial logic zero state, control signal CTRL ⁇ m> also remains in its initial logic one state.
- control signal H ⁇ m> remains in its initial logic one state while control signal L ⁇ m> transitions from its initial logic zero state to a logic one state.
- Control signal CTRL ⁇ m> likewise remains in its initial logic one state.
- the second NAND gate 412 outputs a logic high signal to the first trigger circuit 414 when the m th row address bit is initially at a low level.
- the first trigger circuit 414 outputs a logic zero signal which is inverted by the first inverter 402 , thus causing the control signal H ⁇ m> to remain in its initial state.
- the NOR gate 422 outputs a logic one signal to the second trigger circuit 424 because both its inputs are low.
- the second trigger circuit 424 outputs a logic zero signal which is inverted by the p-fet transistor, thus causing the control signal L ⁇ m> to transition to a logic one state.
- the first and second trigger circuits 414 , 424 are set in an address evaluation state. That is, the output of the trigger circuits 414 , 424 depend upon the value of the m th row address bit. However, once the m th row address bit changes state at least once, the trigger circuit inverters 416 , 426 prevent the trigger circuit outputs from changing state regardless of address bit activity. Thus, once the m th row address bit changes state at least once, the first trigger circuit 414 always outputs a logic one while the second trigger circuit 424 always outputs a logic zero. As such, the NAND gate 410 that produces control signal CTRL ⁇ m> always outputs a logic zero after the m th row address bit changes state at least once. This way, the control circuitry 200 identifies to the counter 202 which row address bits changes state at least once during normal DRAM operation by triggering the appropriate bits of the control signal CTRL ⁇ 0:n>.
- FIG. 5 illustrates an embodiment of the counter 202 .
- the counter 202 is segmented into n stages 500 - 506 .
- Each stage 500 - 506 outputs one bit of the n-bit refresh address rfsh_addr ⁇ 0:n>.
- the refresh address determines which rows in the memory array 102 are activated during a refresh operation and depends upon the state of the control signal CTRL ⁇ 0:n> generated by the control circuitry 200 .
- Each counter stage 500 - 506 functions in either a normal mode or a bypass mode. Stages 500 - 506 configured in normal mode activate their respective address bit outputs to ensure rows accessed during normal DRAM operation are periodically refreshed. Stages 500 - 506 configured in bypass mode maintain their respective address bit outputs at a constant logic level to ensure that the corresponding rows not accessed during normal DRAM operation are not refreshed.
- the control signal CTRL ⁇ 0:n> indicates which counter stages 500 - 506 should be configured in bypass mode and which ones should not. If one or more bits of the control signal CTRL ⁇ 0:n> have not been triggered by the control circuitry 200 , the corresponding refresh address bits are bypassed during refresh. That is, the counter 202 determines which bits of the refresh address rfsh_addr ⁇ 0:n> are bypassed during refresh based on which bits of the control signal CTRL ⁇ 0:n> have been triggered and which ones have not. Bypassed refresh address bits are not activated during refresh. Instead, they are held in a constant logic state thus effectively skipping the rows that would have been selected if the bypassed bits were activated. The remaining refresh address bits are activated by the counter 202 in a manner such that each row accessed during normal DRAM operation are periodically refreshed.
- each counter stage 500 - 506 receives one bit of the control signals CTRL ⁇ 0:n>, H ⁇ 0:n>, and L ⁇ 0:n> generated by the control circuitry 200 and outputs a refresh address bit based on the state of the received control signal bits.
- the first stage 500 receives CTRL ⁇ 0>, H ⁇ 0>, and L ⁇ 0> and outputs rfsh_addr ⁇ 0>.
- the second stage 502 receives CTRL ⁇ 1>, H ⁇ 1>, and L ⁇ 1> and outputs rfsh_addr ⁇ 1>.
- the third stage 504 receives CTRL ⁇ 2>, H ⁇ 2>, and L ⁇ 2> and outputs rfsh_addr ⁇ 2>.
- the n th stage 506 receives CTRL ⁇ n>, H ⁇ n>, and L ⁇ n> and outputs rfsh_addr ⁇ n>.
- the m th counter stage activates the m th refresh address bit with a frequency based on either a clock or data signal output by the previous counter stage (m ⁇ 1) as will be described in more detail later. Otherwise, the m th counter stage is in bypass mode and maintains the m th refresh address bit at a constant logic state.
- the state at which the bypassed address bit is maintained depends on the state of the H ⁇ m> and L ⁇ m> control signal bits received by the m th stage. For example, if the m th address bit does not change state from its initial activation state during normal DRAM operation, the H ⁇ m> and L ⁇ m> control signal bits indicate that the m th refresh address bit should be maintained in a logic one state.
- the rate at which a counter stage 500 - 506 configured in normal mode activates its address bit output depends upon the mode of the previous stage. If the m ⁇ 1 stage is not in bypass mode, the m th stage selects the activated address bit output (DOUT) of stage m ⁇ 1 as its clock signal input (NCLK). Accordingly, the m th counter stage uses CTRL ⁇ m ⁇ 1> as a clock select input (CLKON). If CTRL ⁇ m ⁇ 1> has been triggered, the m th stage uses the activated address bit output of the m ⁇ 1 stage as its clock signal. This way, activation of the m ⁇ 1 refresh address bit actuates the m th counter stage.
- the m th stage selects a bypass clock input (BPCLK) as its clock signal if the m ⁇ 1 stage is in bypass mode, i.e., CTRL ⁇ m ⁇ 1> has not been triggered.
- the bypass clock input corresponds to the clock signal output by the previous stage (CLK). This way, if stage m ⁇ 1 is in bypass mode, the m th stage is not clocked by the constant address bit output by stage m ⁇ 1. Instead, the m th stage is actuated by the clock signal output by the m ⁇ 1 stage.
- the clock signal output by each counter stage 500 - 506 is either the bypass clock (BPCLK) output by the previous stage if the previous stage is in bypass mode or the activated address bit output by the previous stage if the previous stage is in normal mode. This way, proper timing is maintained within the counter.
- BPCLK bypass clock
- Each counter stage 500 - 506 maintains timing control as previously described except for the first stage 500 .
- the first stage 500 is clocked by either an auto refresh clock signal (auto_rfsh) generated by the DRAM device 100 or a self refresh clock signal (self_rfsh) generated by the refresh rate control circuit 204 .
- the first stage clock enable input (CLKON) and bypass clock input (BPCLK) are at a fixed state such as ground to ensure the first stage 500 selects an active clock signal.
- the counter 202 functions properly when the first stage 500 is in bypass mode. That is, the first stage 500 passes the active clock signal input to its clock output (CLK).
- the second stage 502 selects the clock output of the first stage 500 when CTRL ⁇ 0> indicates the first stage 500 is in bypass mode. Otherwise, the second stage 502 selects the activated address bit output of the first stage 500 as its clock signal.
- a logic OR gate 508 allows either the auto or self refresh clock signal to pass to the first logic stage 500 .
- FIG. 6 illustrates an embodiment of an m th stage 600 of the counter 202 .
- the m th stage 600 includes a clock generation circuit 602 and an address bit generation circuit 604 .
- the clock generation circuit 602 yields a clock signal for controlling operation of the address bit generation circuit 604 .
- the clock generation circuit 602 selects either the clock signal output (CLK) by stage m ⁇ 1 or the activated address bit output (DOUT) by stage m ⁇ 1 based on the clock enable input (CLKON) of the m th stage 600 .
- CLKON clock enable input
- the clock enable input corresponds to the control signal bit CTRL ⁇ m ⁇ 1> used by stage m ⁇ 1 to determine the state of its refresh address bit.
- CLKON CTRL ⁇ m ⁇ 1>.
- a first inverter 606 of the clock generation circuit 602 activates a second inverter 608 of the clock generation circuit 602 .
- the activated second inverter 608 causes the activated address bit output by stage m ⁇ 1 to be used as the clock signal (NCLCK) for the m th stage 600 .
- the m th stage 600 processes the CTRL ⁇ m>, H ⁇ m>, and L ⁇ m> control signal bits responsive to transitions in the address bit output by the m ⁇ 1 counter stage when stage m ⁇ 1 is not in bypass mode.
- stage m ⁇ 1 is in bypass mode. Accordingly, the address bit output by stage m ⁇ 1 is not used to clock the m th stage 600 because it does not periodically transition between high and low logic states. Instead, the clock generation circuit 602 selects the clock output by stage m ⁇ 1. Particularly, the first inverter 606 of the clock generation circuit 602 activates a third inverter 610 of the clock generation circuit 602 . The activated third inverter 610 causes the bypass clock signal input (BPCLK) of the m th stage 600 to be selected.
- BPCLK bypass clock signal input
- the m th stage 600 uses the clock signal output by stage m ⁇ 1 instead of the refresh address bit output by stage m ⁇ 1.
- the clock enable input signal (CLKON) ensures that the clock generation circuit 602 provides a properly-oscillating clock signal to the address bit generation circuit 604 .
- fourth and fifth inverters 612 , 614 of the clock generation circuit 602 generate a clock signal (CLK) and an inverted clock signal (bCLK) for use by the address bit generation circuit 604 .
- the address bit generation circuit 604 places the m th stage 600 in bypass mode when CTRL ⁇ m> has not been triggered.
- a first gated inverter 616 included in the address bit generation circuit 604 prevents activation of the address bit output (DOUT) by the m th stage 600 when CTRL ⁇ m> has not been triggered (e.g., in a logic one state). Instead, DOUT is driven to the same state in which the m th address bit was initially activated and never changed from during normal DRAM operation.
- the control signals H ⁇ m> and L ⁇ m> determine the constant logic state of DOUT in bypass mode.
- H ⁇ m> and L ⁇ m> are both set to a logic zero when the m th address bit is activated at a logic one and to a logic one when the m th address bit is activated at a logic zero as previously described.
- the address bit generation circuit 604 places the m th stage 600 in normal mode when CTRL ⁇ m> has been triggered.
- the address bit generation circuit 604 activates the address bit output (DOUT) of the m th stage 600 responsive to the CLK and bCLK signals when in normal mode.
- the first gated inverter 616 of the address bit generation circuit 604 enables activation of DOUT when CTRL ⁇ m> has been triggered (e.g., in a logic zero state).
- a second gated inverter 618 included in the address bit generation circuit 604 inverts the current state of DOUT as maintained by a first pair of inverters 620 , 622 included in the address bit generation circuit 604 .
- the counter 202 would comprise four stages 600 . Each counter stage 600 is associated with one of the four row address bits.
- the counter outputs a 4-bit refresh address rfsh_addr ⁇ 0:3> based on a four-bit control signal CTRL ⁇ 0:3> generated by the control circuitry 200 as previously described. If all row address bits change state at least once during normal DRAM operation then all bits of CTRL ⁇ 0:3> are triggered.
- the counter 202 activates all bits of the refresh address during a refresh operation where each successive bit has a period twice that of the immediately preceding bit, e.g., as illustrated in FIG. 7 .
- the first refresh address bit rfsh_addr ⁇ 0> has a period twice that of the self refresh clock signal (self_rfsh) generated by the refresh rate control circuit 204 .
- the second counter stage uses the activated address bit output of the first stage as its clock signal. Accordingly, the address bit output of the second stage rfsh_addr ⁇ 1> has a period twice that of the address bit output by the first stage and so on.
- the counter 202 activates only those row address bits whose corresponding control signal bit CTRL ⁇ 0:3> has been triggered. Take, for example, Table 1 above where only the second and third row address bits row_addr ⁇ 1> and row_addr ⁇ 2> changed state at least once during normal DRAM operation. Accordingly, the counter 202 activates only the second and third refresh address bits rfsh_addr ⁇ 1> and rfsh_addr ⁇ 2> during a refresh operation as shown in FIG. 8 .
- the first and last refresh address bits rfsh_addr ⁇ 0> and rfsh_addr ⁇ 3> remain at a fixed logic low state during the refresh operation.
- the second and third refresh address bits rfsh_addr ⁇ 1> and rfsh_addr ⁇ 2> transition during the refresh operation because their corresponding row address bits changed state during normal DRAM operation.
- a second stage of the counter 202 uses the self refresh clock signal (self_rfsh) as output by a first stage of the counter 202 for timing because the first stage of the counter 202 is in bypass mode.
- the address bit output by the second stage of the counter 202 transitions at a frequency 1 ⁇ 2 that of the self refresh clock signal.
- the activated address bit output by the second stage of the counter 202 serves as the clock for the third stage of the counter 202 because the second counter stage is not in bypass mode.
- the third refresh address bit transitions at a frequency 1 ⁇ 2 that of the second refresh address bit or 1 ⁇ 4 of the self refresh clock signal.
- the refresh rate control circuit 204 may shorten the refresh cycle based on the number of rows not to be refreshed as identified by the control circuitry 200 , thus improving DRAM performance.
- the memory array 102 may have 213 rows (8192 rows). Accordingly, the row address is thirteen bits wide.
- the refresh period may be 64 ms for refreshing all 8192 rows or 7.8 ⁇ s per row.
- the refresh rate control circuit 204 may shorten the refresh period if not all rows are to be refreshed.
- the refresh rate control circuit 204 determines the refresh period based on the number of rows not to be refreshed as indicated by the control signal CTRL ⁇ 0:n> as given by:
- RFSH T(NEW) is the newly calculated refresh period
- x is the number of triggered bits in the control signal CTRL ⁇ 0:n>.
- the refresh rate control circuit 204 reduces DRAM power consumption when the refresh period is held constant by adjusting the frequency of the self refresh clock signal to coincide with the number of row address bits that have not changed state at least once during normal DRAM operation.
- DRAM power consumption is reduced when the refresh clock frequency corresponds to the number of row address bits that have not changed state because the refresh clock pulses no faster than needed for refreshing the identified rows within a fixed refresh period (e.g., 64 ms). That is, the frequency of the refresh clock signal may be lowered to coincide with the number of row address bits to be skipped during refresh.
- the relationship between refresh clock frequency and the number of row address bits to be skipped during refresh is given by:
- RFSH Freq(NEW) is the newly determined clock frequency
- n is the total number of rows
- x is the number of triggered bits in the control signal CTRL ⁇ 0:n>.
- the refresh clock frequency may be reduced accordingly.
- the refresh rate control circuit 204 adjusts the refresh period or the refresh clock frequency based on the number of row address bits not to be refreshed during a refresh cycle.
- FIG. 9 illustrates an embodiment of the refresh rate control circuit 204 .
- the circuit 204 generates a self refresh clock signal (self_rfsh) having a frequency coinciding with the number of row address bits not to be refreshed.
- the self refresh clock signal may have any duty cycle, e.g., the signal may be pulsed.
- the refresh rate control circuit 204 adjusts the frequency of a clock signal input (clock_in) based on the number of control signal bits CTRL ⁇ 0:n> triggered by the control circuitry 200 in accordance with equation (2).
- the refresh rate control circuit 204 generates a frequency divider signal (DIV) that effectively divides the frequency of the input clock signal based on the state of the control signal CTRL ⁇ 0:n>.
- DIV frequency divider signal
- the number of frequency divider states is based on the length of the row address and thus the length of the control signal CTRL ⁇ 0:n>.
- the frequency divider signal has five states as shown in FIG. 9 and Table 2 below.
- the possible frequency divider states associated with the 4-bit row address are: divide-by-1 (DIV1); divide-by-2 (DIV2); divide-by-4 (DIV4); divide-by-8 (DIV8); and divide-by-16 (DIV16).
- the current state of the frequency divider signal is based on the number of row address bits that changed state at least once during normal DRAM operation, i.e., the number of triggered bits contained in the control signal CTRL ⁇ 0:n>. That is, the current frequency divider state corresponds to 2 (n-x) where n is the total number of row address bits and x is the number of triggered bits in the control signal CTRL ⁇ 0:n>.
- the divide-by-1 state occurs when all four row address bits change state at least once during normal DRAM operation, i.e., each of the control signal bits CTRL ⁇ 0:3> have been triggered (e.g., set to a logic zero value). Accordingly all rows are refreshed, and thus, the self refresh clock signal has the same frequency as the clock signal input to the refresh rate control circuit.
- the divide-by-2 state occurs when all but one of the four row address bits change state at least once during normal DRAM operation.
- the divide-by-4 state occurs when two row address bits change state at least once and the divide-by-8 state occurs when only one bit changes state.
- the divide-by-16 state occurs when none of the four address bits change state. In general, when none of n row address bits change state during normal DRAM operation, the refresh rate control circuit 204 divides the input clock frequency by 2 n and only the row corresponding to the initial row address is refreshed.
- the refresh rate control circuit 204 has five stages 900 - 908 .
- Each stage 900 - 908 includes a latch 910 and XNOR logic gate 912 .
- the latches 910 are controlled by the clock signal input (clock_in) provided to the refresh rate control circuit 204 .
- Each latch 910 may be reset (RST) depending on the state of the rate control circuit 204 . Initially, the latches 910 are reset to a logic zero value.
- the first stage 900 causes the refresh rate control circuit 204 to output a clock pulse at the same frequency as the input clock signal when the frequency divider state is divide-by-1 (i.e., all rows are to be refreshed). Particularly, the output of a five-input logic AND gate 914 follows the output of the first logic stage 900 .
- An inverter 916 included in the first logic stage 900 causes the output of the first stage latch 910 to alternate states responsive to a rising edge transition in the clock input signal. During a first clock cycle following reset, the output of the first stage 900 transitions to a logic one responsive to a rising-edge transition in the input clock signal.
- the first stage inverter 916 causes the output of the first stage latch 910 to transition back to a logic zero state.
- the first stage latch 910 holds the logic zero state.
- the clock signal output by the refresh rate control circuit 204 follows the input clock signal when the frequency divider state is divide-by-1 as shown in FIG. 10 .
- the first stage 900 causes the output of the second stage 902 to pulse at 1 ⁇ 2 the frequency of the input clock signal. Further, the output of the five-input logic AND gate 914 follows the output of the second logic stage 902 .
- An XOR gate 918 included in the second stage 902 causes the second stage 902 to output a logic zero during the first input clock cycle, thus causing the refresh clock signal to remain in a logic zero state.
- the latch outputs of the first and second stages 900 , 902 cause the XOR gate 918 of the second stage 902 to change state which is captured by the second stage latch 910 during a falling edge transition in the input clock signal.
- the second stage 902 outputs a pulse during the second input clock cycle.
- the third, fourth and fifth stages 904 , 906 , 908 do not adversely impinge upon the operation of the second stage 902 when the current state of the frequency divider signal is divide-by-2.
- the refresh clock signal pulses at 1 ⁇ 2 the frequency of the input clock signal when the current state of the frequency divider signal is divide-by-2 as shown in FIG. 10 because only 1 ⁇ 2 of the rows are to be refreshed.
- the first and second stages 900 , 902 cause the third stage 904 to output a pulse at 1 ⁇ 4 the frequency of the input clock signal.
- a two-input AND gate 920 and an XOR gate 922 included in the third stage 904 cause the third stage 904 to output a pulse every fourth cycle of the input clock based on the latch states of the first, second and third stages 900 , 902 , 904 .
- the refresh rate control circuit 204 outputs a pulse at 1 ⁇ 4 the frequency of the input clock signal when the state of the frequency divider signal is divide-by-4 as shown in FIG. 10 because only 1 ⁇ 4 of the rows are to be refreshed.
- the fourth stage 906 includes a three-input AND gate 924 and an XOR gate 926 .
- the fourth stage 906 outputs a pulse every eight input clock cycles based on the latch states of the first, second, third and fourth stages 900 , 902 , 904 , 906 .
- the refresh rate control circuit 204 outputs a pulse once every eight cycles of the input clock signal when the state of the frequency divider signal is divide-by-8 as shown in FIG. 10 because only one of the four control signal bits CTRL ⁇ 0:3> has been triggered.
- the fifth stage 908 includes a four-input AND gate 928 and a XOR gate 930 .
- the fifth stage 908 outputs a pulse every sixteen input clock cycles based on the latch states of the first through fifth stages 900 - 908 .
- the refresh clock signal has one-sixteenth the frequency of the input clock signal when the current state of the frequency divider signal is divide-by-16 as shown in FIG. 10 because none of the four control signal bits CTRL ⁇ 0:3> have been triggered.
- Optional inverters 932 , 934 and a logic OR gate 936 may be included at the output of the refresh rate circuit 204 for adjusting the pulse width of the refresh clock signal.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
Abstract
Description
- Memory devices have one or more arrays of memory cells for storing information. A bit of information is written to or read from a particular memory cell by selecting the row and column at the intersection of which is located the desired memory cell. Information is stored in the selected memory cell by either charging or discharging a capacitor associated with the cell. In some memory devices, charge stored on a memory cell capacitor leaks out over time. If memory cell leakage is not addressed, information stored in a memory device will be lost. To prevent data loss, information stored in memory devices is periodically refreshed. Examples of memory devices that may suffer from leakage include Dynamic Random Access Memory (DRAM) devices.
- Data stored in a DRAM device is conventionally refreshed one row at a time. A row of memory cells is refreshed by selecting the row, reading the contents of the memory cells forming the row, and writing the same data back to the row. The predominant DRAM refresh operations are distributed and burst. During distributed refresh, memory access operations are evenly interspersed between refresh cycles. This way, data may be read from or written to a DRAM device between row refresh operations. During burst refresh, all refresh cycles are executed one right after the other until all rows have been refreshed. Thus, a DRAM device may not be accessed during a burst refresh. All addressable rows are typically refreshed during periodic distributed or burst refresh operations regardless of whether all rows are used when the DRAM device is active. However, some conventional approaches actively track which rows are accessed during normal DRAM operation, refreshing only the rows accessed during use. The circuit overhead needed to actively track which rows are accessed during normal operation becomes increasingly complex as the size of DRAM devices increase, thus consuming more chip area and power.
- According to the methods and apparatus taught herein, one embodiment of an integrated circuit includes one or more memory array segments configured to store information and a refresh controller. Each memory array segment has a plurality of memory cells arranged in rows selectable through a row address. The refresh controller is configured to monitor row address activity to identify which bits of the row address change state at least once during a memory access operation and to skip refresh of the rows associated with the row address bits that do not change state at least once during the memory access operation.
- Of course, the present invention is not limited to the above features and advantages. Those skilled in the art will recognize additional features and advantages upon reading the following detailed description, and upon viewing the accompanying drawings.
-
FIG. 1 is a block diagram of an embodiment of a memory device including a refresh controller. -
FIG. 2 is a block diagram of an embodiment of the refresh controller ofFIG. 1 . -
FIG. 3 is a logic flow diagram of one embodiment of program logic for selectively refreshing rows in the memory device ofFIG. 1 . -
FIG. 4 is a block diagram of an embodiment of control circuitry included in the refresh controller ofFIG. 1 . -
FIG. 5 is a block diagram of an embodiment of a counter included in the refresh controller ofFIG. 1 . -
FIG. 6 is a block diagram of an embodiment of one stage of the counter ofFIG. 5 . -
FIG. 7 is a plot illustrating refresh addresses generated by the counter ofFIG. 5 . -
FIG. 8 is a plot illustrating different refresh addresses generated by the counter ofFIG. 5 . -
FIG. 9 is a block diagram of an embodiment of a refresh rate control circuit included in the refresh controller ofFIG. 1 . -
FIG. 10 is a plot illustrating different refresh clocks generated by the refresh rate control circuit ofFIG. 9 . -
FIG. 1 illustrates an embodiment of a Dynamic Random Access Memory (DRAM)device 100 such as Synchronous DRAM (SDRAM), Double Data Rate (DDR) SDRAM, Quad Data Rate (QDR) SDRAM, Synchronous Graphics DRAM, Pseudostatic SDRAM, embedded DRAM or the like. It is to be understood that the embodiments described herein may be applied to any type of memory that would benefit from a refresh operation. TheDRAM device 100 includes amemory array 102 having rows of memory cells. Thememory array 102 is arranged as one or more separately addressable segments such as a bank or any other type of logical and/or physical structure. A memory cell is accessed by providing the appropriate row address (row_addr<0:n>) and column address (col_addr<0:m>) to thememory device 100. Data is read from or written to selected memory cells. Rows of memory cells are periodically refreshed so that information stored in theDRAM device 100 is not corrupted. To this end, arefresh controller 104 monitors row address activity to determine which row address bits change state at least once during normal DRAM operation, e.g., during read and write operations. Rows associated with the address bits that do not change state at least once during normal DRAM operation are skipped during refresh operations. Thus, unutilized rows are not refreshed. Accordingly, therefresh controller 104 may shorten periodic refresh operations to improve DRAM performance as will be described in more detail later. Alternatively, therefresh controller 104 may reduce DRAM power consumption by adjusting the refresh clock frequency so that it coincides with the number of un-accessed rows as will also be described in more detail later. - During operation, address information (ADDR) is provided to the
DRAM device 100 and stored in anaddress register 106. The address information indicates a row and column location in thememory array 102 to be accessed (and segment if thememory array 102 is so arranged). In some embodiments, row and column address information is carried over thesame bus 108 while aseparate bus 110 carries data. Accordingly, a row address is provided to theDRAM device 100, followed by a column address. Information written to theDRAM device 100 or read from thedevice 100 is carried by thedata bus 110. In other embodiments, a reduced-pin bus interface (not shown) may be used for carrying address, data, and control information on the same bus. Regardless, row address information (row_addr<0:n>) is latched by arow address latch 112 while a column address latch 114 stores column address information (col_addr<0:m>). Row andcolumn address decoders memory array 102 are selected during a memory operation based on latched row and column addresses, respectively. Data is then written to or read from the selected memory cells via data Input/Output circuitry 120. - The
refresh controller 104 provides a refresh row address (rfsh_addr<0:n>) to therow address latch 112 during a refresh operation. The refresh row address identifies particular rows in thearray 102 to be refreshed. Therefresh controller 104 activates the refresh row address bits to select different ones of the rows, the contents of which are then refreshed. However, not all rows are refreshed during the refresh operation. Instead, therefresh controller 104 monitors row address activity during normal DRAM operation to determine which row address bits change state at least once. Therefresh controller 104 does not activate the row address bits that did not change state during normal DRAM operation, and thus the corresponding unutilized rows in thememory array 102 are not refreshed. As such, only those rows associated with address bits that change state at least once during normal DRAM operation are refreshed by therefresh controller 104. -
FIG. 2 illustrates an embodiment of therefresh controller 104. According to this embodiment, therefresh controller 104 comprisescontrol circuitry 200, acounter 202 and a refreshrate control circuit 204. Thecontrol circuitry 200 monitors row address activity during normal DRAM operation, e.g., as illustrated byStep 300 ofFIG. 3 . This way, the row address bits that change state at least once during DRAM operation are identified. Based on the monitored row address activity, thecontrol circuitry 200 determines which memory cell rows have not been accessed, e.g., as illustrated byStep 302 ofFIG. 3 . - The
control circuitry 200 generates a control signal CTRL<0:n> having the same number of bits n as the row address. Each bit of the control signal corresponds to a respective bit of the row address. Thecontrol circuitry 200 programs each bit of the control signal CTRL<0:n> based on whether the corresponding row address bit changed state at least once when latched by therow address latch 112 during normal DRAM operation. A bit changes state when it switches from a logic one to logic zero state or vice-versa. As such, the control signal CTRL<0:n> indicates which row address bits have changed state at least once during normal DRAM operation. During a refresh operation, thecounter 202 activates row addresses based on the state of the control signal CTRL<0:n>, skipping those rows associated with the row address bits that did not change state during normal DRAM operation as indicated by the control signal CTRL<0:n>. Thus, those rows not accessed during normal DRAM operation as indicated by the monitored row address activity are skipped during refresh operations, e.g., as illustrated byStep 304 ofFIG. 3 . The remaining rows are refreshed. - In more detail, each row of memory cells in the
array 102 is selectable by setting the row address to a particular value. In a purely illustrative example illustrated in Table 1 below, sixteen rows (Row 0-Row 15) are uniquely addressable based on a 4-bit row address (row_addr<3:0>). A particular row is selected by setting the row address to a value which identifies the desired row. For example,row 0 is accessed by setting the row address to <0,0,0,0>,row 1 is accessed by setting the least significant bit of the row address to <0,0,0,1> and soon. In the present example, the default row address is set to <0,0,0,0> when the DRAM device is reset. The third row is then accessed followed by the fifth and seventh rows during normal DRAM operation. Accordingly, the row address successively changes state from <0,0,0,0> to <0,0,1,0> followed by <0,1,0,0> and finally <0,1,1,0>. Thecontrol circuitry 200 monitors the row address activity and sets the state of the control signal CTRL<0:n> accordingly where n=3 in the present example. -
TABLE 1 Exemplary 4-Bit Row Address row_addr<3> row_addr <2> row_addr <1> row_addr <0> Row ID Row States 0 0 0 0 Row 0Initial State 0 0 0 1 Row 1— 0 0 1 0 Row 2First State 0 0 1 1 Row 3— 0 1 0 0 Row 4 Second State 0 1 0 1 Row 5 — 0 1 1 0 Row 6 Third State 0 1 1 1 Row 7 — 1 0 0 0 Row 8 — 1 0 0 1 Row 9 — 1 0 1 0 Row 10 — 1 0 1 1 Row 11 — 1 1 0 0 Row 12 — 1 1 0 1 Row 13 — 1 1 1 0 Row 14 — 1 1 1 1 Row 15 — - Initially, each bit of the control signal CTRL<0:n> is set to the same initial state, e.g., a logic one state. While the
DRAM device 100 is active, only the control signal bits associated with row address bits that change state at least once during normal operation are triggered, e.g., from a logic one to a logic zero. Thus, each bit of the control signal CTRL<0:n> that remains in its initial state indicates that the corresponding row address bit did not change state at least once during normal DRAM operation. To the contrary, each triggered control bit indicates that the corresponding row address bit changed state. Based on the example illustrated in Table 1 above, the first and second bits of the control signal CTRL<0:n> switch from an initial value of one to a value of zero because only the first and second row address bits change state during normal DRAM operation. Accordingly, the control signal is set to CTRL<1,0,0,1> for indicating to thecounter 202 that the second and third address bits row_addr<0> and row_addr<3> are not to be toggled during refresh, thus skipping refresh ofRow 1,Row 3, Row 5, and Rows 7-15 in Table 1. - During a refresh cycle, the
counter 202 does not activate the row address bits that did not change state during normal DRAM operation as indicated by the control signal CTRL<0:n>. This way, unutilized rows are not refreshed. Once a control signal bit is triggered, it remains in a triggered state until theDRAM device 100 is deactivated or thecontrol circuitry 200 reset. Thus, thecontrol circuitry 200 cumulatively monitors row address activity. When theDRAM device 100 is deactivated, a reset signal (RESET) causes thecontrol circuitry 200 to reset the control signal CTRL<0:n> to an initial state. This way, thecontrol circuitry 200 monitors row address activity anew upon reactivation of theDRAM device 100. - In one embodiment, the
control circuitry 200 is segmented into several stages (not shown), each stage configured to generate one bit of the control signal CTRL<0:n>.FIG. 4 illustrates an embodiment of onestage 400 of thecontrol circuitry 200. Thecontrol stage 400 monitors row address activity for the mth bit of the row address (row_addr<0:n>). Initially, the mth control signal bit (CTRL<m>) is set to a predetermined state such as a logic one. If the mth row address bit changes state at least once when the DRAM device is active, the mth control signal bit is set to a triggered state such as a logic zero to indicate the mth address bit has been set in both logic states. Otherwise, the mth control signal bit remains in its initial state to indicate the mth row address bit has not changed state during normal DRAM operation. Once the mth control signal bit is triggered, it remains in a triggered state until thestage 400 is reset. The mth stage 400 also generates other control signals (H<m> and L<m>) used by thecounter 202 to maintain the mth row address bit in its initial activation state during refresh if the bit does not change state during normal DRAM operation as will be described in detail later. - In more detail, an activate signal (ACT) enables the mth stage 400 when the
DRAM device 100 is active. In one embodiment, the activate signal is a clock pulse periodically delivered when a new row address is ready for latching. A reset signal (RESET) resets the control signals generated bystage 400 to their respective initial states. In the present embodiment, the reset signal drives an n-fet transistor N1 to ground. Afirst inverter 402 inverts the n-fet transistor output, thus resetting control signal H<m> to a logic one state. Asecond inverter 404 drives a p-fet transistor P1 to Vdd responsive to the active reset signal. Athird inverter 406 inverts the p-fet transistor output, thus resetting control signal L<m> to a logic zero state. Finally, afourth inverter 408 and aNAND gate 410 reset the mth bit of the control signal CTRL<m> to a logic one state. Of course, the control signals CTRL<m>, H<m> and L<m> may be reset to other states. Regardless, the mth stage 400 monitors the mth row address bit after thestage 400 has been reset and theDRAM device 100 activated. - When the activate signal ACT is first activated and the mth row address bit is at a logic high level, control signal H<m> transitions from its initial logic one state to a logic zero state while control signal L<m> remains in its initial logic zero state. Control signal CTRL<m> likewise remains in its initial logic one state. Particularly, a
second NAND gate 412 outputs a logic low signal to afirst trigger circuit 414 when the mth row address bit is initially at a high level. Thefirst trigger circuit 414, comprising aninverter 416 and aNAND gate 418, outputs a logic one signal which is inverted by thefirst inverter 402, thus causing the low transition in control signal H<m>. Afifth inverter 420 inverts the activate signal (ACT) and provides the inverted signal to a NORgate 422. The NORgate 422 outputs a logic zero signal to asecond trigger circuit 424 because the mth row address bit is initially at a logic high level when the activate signal ACT is first activated. Thesecond trigger circuit 424, comprising aninverter 426 and a NORgate 428, outputs a logic one signal because the p-fet transistor P1 initially drives theinverter 426 of thesecond trigger circuit 424 with a logic one value. Thus, the control signal L<m> remains in its initial logic zero state. Because control signal L<m> remains in its initial logic zero state, control signal CTRL<m> also remains in its initial logic one state. - Conversely, if the mth row address bit is at a logic low level when the activate signal ACT is first activated, control signal H<m> remains in its initial logic one state while control signal L<m> transitions from its initial logic zero state to a logic one state. Control signal CTRL<m> likewise remains in its initial logic one state. Particularly, the
second NAND gate 412 outputs a logic high signal to thefirst trigger circuit 414 when the mth row address bit is initially at a low level. Thefirst trigger circuit 414 outputs a logic zero signal which is inverted by thefirst inverter 402, thus causing the control signal H<m> to remain in its initial state. The NORgate 422 outputs a logic one signal to thesecond trigger circuit 424 because both its inputs are low. Thesecond trigger circuit 424 outputs a logic zero signal which is inverted by the p-fet transistor, thus causing the control signal L<m> to transition to a logic one state. - Initially, the first and
second trigger circuits trigger circuits trigger circuit inverters first trigger circuit 414 always outputs a logic one while thesecond trigger circuit 424 always outputs a logic zero. As such, theNAND gate 410 that produces control signal CTRL<m> always outputs a logic zero after the mth row address bit changes state at least once. This way, thecontrol circuitry 200 identifies to thecounter 202 which row address bits changes state at least once during normal DRAM operation by triggering the appropriate bits of the control signal CTRL<0:n>. -
FIG. 5 illustrates an embodiment of thecounter 202. According to this embodiment, thecounter 202 is segmented into n stages 500-506. Each stage 500-506 outputs one bit of the n-bit refresh address rfsh_addr<0:n>. The refresh address determines which rows in thememory array 102 are activated during a refresh operation and depends upon the state of the control signal CTRL<0:n> generated by thecontrol circuitry 200. Each counter stage 500-506 functions in either a normal mode or a bypass mode. Stages 500-506 configured in normal mode activate their respective address bit outputs to ensure rows accessed during normal DRAM operation are periodically refreshed. Stages 500-506 configured in bypass mode maintain their respective address bit outputs at a constant logic level to ensure that the corresponding rows not accessed during normal DRAM operation are not refreshed. - The control signal CTRL<0:n> indicates which counter stages 500-506 should be configured in bypass mode and which ones should not. If one or more bits of the control signal CTRL<0:n> have not been triggered by the
control circuitry 200, the corresponding refresh address bits are bypassed during refresh. That is, thecounter 202 determines which bits of the refresh address rfsh_addr<0:n> are bypassed during refresh based on which bits of the control signal CTRL<0:n> have been triggered and which ones have not. Bypassed refresh address bits are not activated during refresh. Instead, they are held in a constant logic state thus effectively skipping the rows that would have been selected if the bypassed bits were activated. The remaining refresh address bits are activated by thecounter 202 in a manner such that each row accessed during normal DRAM operation are periodically refreshed. - In more detail, each counter stage 500-506 receives one bit of the control signals CTRL<0:n>, H<0:n>, and L<0:n> generated by the
control circuitry 200 and outputs a refresh address bit based on the state of the received control signal bits. For example, the first stage 500 (STAGE 0) receives CTRL<0>, H<0>, and L<0> and outputs rfsh_addr<0>. The second stage 502 (STAGE 1) receives CTRL<1>, H<1>, and L<1> and outputs rfsh_addr<1>. The third stage 504 (STAGE 2) receives CTRL<2>, H<2>, and L<2> and outputs rfsh_addr<2>. Finally, the nth stage 506 (STAGE n) receives CTRL<n>, H<n>, and L<n> and outputs rfsh_addr<n>. - If the mth control signal bit CTRL<m> has been triggered, the mth counter stage activates the mth refresh address bit with a frequency based on either a clock or data signal output by the previous counter stage (m−1) as will be described in more detail later. Otherwise, the mth counter stage is in bypass mode and maintains the mth refresh address bit at a constant logic state. The state at which the bypassed address bit is maintained depends on the state of the H<m> and L<m> control signal bits received by the mth stage. For example, if the mth address bit does not change state from its initial activation state during normal DRAM operation, the H<m> and L<m> control signal bits indicate that the mth refresh address bit should be maintained in a logic one state.
- The rate at which a counter stage 500-506 configured in normal mode activates its address bit output depends upon the mode of the previous stage. If the m−1 stage is not in bypass mode, the mth stage selects the activated address bit output (DOUT) of stage m−1 as its clock signal input (NCLK). Accordingly, the mth counter stage uses CTRL<m−1> as a clock select input (CLKON). If CTRL<m−1> has been triggered, the mth stage uses the activated address bit output of the m−1 stage as its clock signal. This way, activation of the m−1 refresh address bit actuates the mth counter stage.
- However, the mth stage selects a bypass clock input (BPCLK) as its clock signal if the m−1 stage is in bypass mode, i.e., CTRL<m−1> has not been triggered. The bypass clock input corresponds to the clock signal output by the previous stage (CLK). This way, if stage m−1 is in bypass mode, the mth stage is not clocked by the constant address bit output by stage m−1. Instead, the mth stage is actuated by the clock signal output by the m−1 stage. The clock signal output by each counter stage 500-506 is either the bypass clock (BPCLK) output by the previous stage if the previous stage is in bypass mode or the activated address bit output by the previous stage if the previous stage is in normal mode. This way, proper timing is maintained within the counter.
- Each counter stage 500-506 maintains timing control as previously described except for the
first stage 500. Thefirst stage 500 is clocked by either an auto refresh clock signal (auto_rfsh) generated by theDRAM device 100 or a self refresh clock signal (self_rfsh) generated by the refreshrate control circuit 204. Particularly, the first stage clock enable input (CLKON) and bypass clock input (BPCLK) are at a fixed state such as ground to ensure thefirst stage 500 selects an active clock signal. This way, thecounter 202 functions properly when thefirst stage 500 is in bypass mode. That is, thefirst stage 500 passes the active clock signal input to its clock output (CLK). Thesecond stage 502 selects the clock output of thefirst stage 500 when CTRL<0> indicates thefirst stage 500 is in bypass mode. Otherwise, thesecond stage 502 selects the activated address bit output of thefirst stage 500 as its clock signal. A logic ORgate 508 allows either the auto or self refresh clock signal to pass to thefirst logic stage 500. -
FIG. 6 illustrates an embodiment of an mth stage 600 of thecounter 202. The mth stage 600 includes aclock generation circuit 602 and an addressbit generation circuit 604. Theclock generation circuit 602 yields a clock signal for controlling operation of the addressbit generation circuit 604. Theclock generation circuit 602 selects either the clock signal output (CLK) by stage m−1 or the activated address bit output (DOUT) by stage m−1 based on the clock enable input (CLKON) of the mth stage 600. The clock enable input ensures proper operation of the mth stage 600. - The clock enable input corresponds to the control signal bit CTRL<m−1> used by stage m−1 to determine the state of its refresh address bit. Thus, for the mth stage 600, CLKON=CTRL<m−1>. If CTRL<m−1> has been triggered (e.g., is in a logic zero state), a
first inverter 606 of theclock generation circuit 602 activates asecond inverter 608 of theclock generation circuit 602. The activatedsecond inverter 608 causes the activated address bit output by stage m−1 to be used as the clock signal (NCLCK) for the mth stage 600. The mth stage 600 processes the CTRL<m>, H<m>, and L<m> control signal bits responsive to transitions in the address bit output by the m−1 counter stage when stage m−1 is not in bypass mode. - If CTRL<m−1> has not been triggered (e.g., is in a logic one state), stage m−1 is in bypass mode. Accordingly, the address bit output by stage m−1 is not used to clock the mth stage 600 because it does not periodically transition between high and low logic states. Instead, the
clock generation circuit 602 selects the clock output by stage m−1. Particularly, thefirst inverter 606 of theclock generation circuit 602 activates athird inverter 610 of theclock generation circuit 602. The activatedthird inverter 610 causes the bypass clock signal input (BPCLK) of the mth stage 600 to be selected. This way, the mth stage 600 uses the clock signal output by stage m−1 instead of the refresh address bit output by stage m−1. As such, the clock enable input signal (CLKON) ensures that theclock generation circuit 602 provides a properly-oscillating clock signal to the addressbit generation circuit 604. Particularly, fourth andfifth inverters clock generation circuit 602 generate a clock signal (CLK) and an inverted clock signal (bCLK) for use by the addressbit generation circuit 604. - The address
bit generation circuit 604 places the mth stage 600 in bypass mode when CTRL<m> has not been triggered. Particularly, a firstgated inverter 616 included in the addressbit generation circuit 604 prevents activation of the address bit output (DOUT) by the mth stage 600 when CTRL<m> has not been triggered (e.g., in a logic one state). Instead, DOUT is driven to the same state in which the mth address bit was initially activated and never changed from during normal DRAM operation. The control signals H<m> and L<m> determine the constant logic state of DOUT in bypass mode. H<m> and L<m> are both set to a logic zero when the mth address bit is activated at a logic one and to a logic one when the mth address bit is activated at a logic zero as previously described. This way, DOUT is driven to a constant logic one state by first and second p-fet transistors P2 and P3 when H<m>=0 and to a constant logic zero state by first and second n-fet transistors N2 and N3 when H<m>=1. - The address
bit generation circuit 604 places the mth stage 600 in normal mode when CTRL<m> has been triggered. The addressbit generation circuit 604 activates the address bit output (DOUT) of the mth stage 600 responsive to the CLK and bCLK signals when in normal mode. Particularly, the firstgated inverter 616 of the addressbit generation circuit 604 enables activation of DOUT when CTRL<m> has been triggered (e.g., in a logic zero state). To this end, a secondgated inverter 618 included in the addressbit generation circuit 604 inverts the current state of DOUT as maintained by a first pair ofinverters bit generation circuit 604. This causes a second pair ofinverters bit generation circuit 604 to change the bit state of DOUT. However, the new bit state maintained by the second pair ofinverters gated inverter 628 included in the addressbit generation circuit 604 is enabled. This occurs on falling edge transitions of the clock signal CLK. Thus, when the mth stage 600 is not in bypass mode, DOUT transitions at a frequency ½ that at which the previous active stage transitions its address bit output. This way, thecounter 202 increments the refresh address in a binary fashion as is well known in the art, but skipping the address bits that do not change state at least once during normal DRAM operation as indicated by the control signal CTRL<0:n>. - By way of example, if the
memory array 102 had sixteen rows of memory cells uniquely addressable through a 4-bit row address row_addr<0:3> as shown in Table 1 above, thecounter 202 would comprise fourstages 600. Eachcounter stage 600 is associated with one of the four row address bits. The counter outputs a 4-bit refresh address rfsh_addr<0:3> based on a four-bit control signal CTRL<0:3> generated by thecontrol circuitry 200 as previously described. If all row address bits change state at least once during normal DRAM operation then all bits of CTRL<0:3> are triggered. Accordingly, thecounter 202 activates all bits of the refresh address during a refresh operation where each successive bit has a period twice that of the immediately preceding bit, e.g., as illustrated inFIG. 7 . Particularly, the first refresh address bit rfsh_addr<0> has a period twice that of the self refresh clock signal (self_rfsh) generated by the refreshrate control circuit 204. The second counter stage uses the activated address bit output of the first stage as its clock signal. Accordingly, the address bit output of the second stage rfsh_addr<1> has a period twice that of the address bit output by the first stage and so on. - However, if some of the rows are not accessed during normal DRAM operation, then some bits of CTRL<0:3> are not triggered. Accordingly, the
counter 202 activates only those row address bits whose corresponding control signal bit CTRL<0:3> has been triggered. Take, for example, Table 1 above where only the second and third row address bits row_addr<1> and row_addr<2> changed state at least once during normal DRAM operation. Accordingly, thecounter 202 activates only the second and third refresh address bits rfsh_addr<1> and rfsh_addr<2> during a refresh operation as shown inFIG. 8 . Particularly, the first and last refresh address bits rfsh_addr<0> and rfsh_addr<3> remain at a fixed logic low state during the refresh operation. To the contrary, the second and third refresh address bits rfsh_addr<1> and rfsh_addr<2> transition during the refresh operation because their corresponding row address bits changed state during normal DRAM operation. - In the present example, a second stage of the
counter 202 uses the self refresh clock signal (self_rfsh) as output by a first stage of thecounter 202 for timing because the first stage of thecounter 202 is in bypass mode. As such, the address bit output by the second stage of thecounter 202 transitions at a frequency ½ that of the self refresh clock signal. The activated address bit output by the second stage of thecounter 202 serves as the clock for the third stage of thecounter 202 because the second counter stage is not in bypass mode. Thus, the third refresh address bit transitions at a frequency ½ that of the second refresh address bit or ¼ of the self refresh clock signal. - The refresh
rate control circuit 204 may shorten the refresh cycle based on the number of rows not to be refreshed as identified by thecontrol circuitry 200, thus improving DRAM performance. For example, thememory array 102 may have 213 rows (8192 rows). Accordingly, the row address is thirteen bits wide. The refresh period may be 64 ms for refreshing all 8192 rows or 7.8 μs per row. However, the refreshrate control circuit 204 may shorten the refresh period if not all rows are to be refreshed. In one embodiment, the refreshrate control circuit 204 determines the refresh period based on the number of rows not to be refreshed as indicated by the control signal CTRL<0:n> as given by: -
- where n is the total number of rows, RFSHT(x=n) is the refresh period when all rows are to be refreshed (e.g., 64 ms), RFSHT(NEW) is the newly calculated refresh period and x is the number of triggered bits in the control signal CTRL<0:n>. This way, the refresh period may be adjusted based on the number of row address bits that do not change state at least once during normal DRAM operation, thus improving DRAM performance.
- Alternatively, the refresh
rate control circuit 204 reduces DRAM power consumption when the refresh period is held constant by adjusting the frequency of the self refresh clock signal to coincide with the number of row address bits that have not changed state at least once during normal DRAM operation. DRAM power consumption is reduced when the refresh clock frequency corresponds to the number of row address bits that have not changed state because the refresh clock pulses no faster than needed for refreshing the identified rows within a fixed refresh period (e.g., 64 ms). That is, the frequency of the refresh clock signal may be lowered to coincide with the number of row address bits to be skipped during refresh. The relationship between refresh clock frequency and the number of row address bits to be skipped during refresh is given by: -
- where RFSHFreq(NEW) is the newly determined clock frequency, RFSHFreq(x=0) is the clock frequency when all rows are to be refreshed, n is the total number of rows and x is the number of triggered bits in the control signal CTRL<0:n>. For example, if all rows are to be refreshed, RFSHFreq(NEW)=RFSHFreq(x=0). However, if one or more rows are not to be refreshed, the refresh clock frequency may be reduced accordingly. Thus, the refresh
rate control circuit 204 adjusts the refresh period or the refresh clock frequency based on the number of row address bits not to be refreshed during a refresh cycle. -
FIG. 9 illustrates an embodiment of the refreshrate control circuit 204. According to this embodiment, thecircuit 204 generates a self refresh clock signal (self_rfsh) having a frequency coinciding with the number of row address bits not to be refreshed. The self refresh clock signal may have any duty cycle, e.g., the signal may be pulsed. Regardless, the refreshrate control circuit 204 adjusts the frequency of a clock signal input (clock_in) based on the number of control signal bits CTRL<0:n> triggered by thecontrol circuitry 200 in accordance with equation (2). Particularly, the refreshrate control circuit 204 generates a frequency divider signal (DIV) that effectively divides the frequency of the input clock signal based on the state of the control signal CTRL<0:n>. - The number of frequency divider states is based on the length of the row address and thus the length of the control signal CTRL<0:n>. For example, in the case of the 4-bit row address shown in Table 1 above, the frequency divider signal has five states as shown in
FIG. 9 and Table 2 below. Based on equation (2), the possible frequency divider states associated with the 4-bit row address are: divide-by-1 (DIV1); divide-by-2 (DIV2); divide-by-4 (DIV4); divide-by-8 (DIV8); and divide-by-16 (DIV16). The current state of the frequency divider signal is based on the number of row address bits that changed state at least once during normal DRAM operation, i.e., the number of triggered bits contained in the control signal CTRL<0:n>. That is, the current frequency divider state corresponds to 2(n-x) where n is the total number of row address bits and x is the number of triggered bits in the control signal CTRL<0:n>. - Continuing with the 4-bit row address example, the divide-by-1 state occurs when all four row address bits change state at least once during normal DRAM operation, i.e., each of the control signal bits CTRL<0:3> have been triggered (e.g., set to a logic zero value). Accordingly all rows are refreshed, and thus, the self refresh clock signal has the same frequency as the clock signal input to the refresh rate control circuit. The divide-by-2 state occurs when all but one of the four row address bits change state at least once during normal DRAM operation. The divide-by-4 state occurs when two row address bits change state at least once and the divide-by-8 state occurs when only one bit changes state. Finally, the divide-by-16 state occurs when none of the four address bits change state. In general, when none of n row address bits change state during normal DRAM operation, the refresh
rate control circuit 204 divides the input clock frequency by 2n and only the row corresponding to the initial row address is refreshed. -
TABLE 2 Control Signal CTRL<0:n> Mapping CTRL<3> CTRL<2> CTRL<1> CTRL<0> DIV1 DIV2 DIV4 DIV8 DIV16 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 - For ease of explanation only, operation of the refresh
rate control circuit 204 is described next with reference to a 4-bit row address. Accordingly, the refreshrate control circuit 204 has five stages 900-908. Each stage 900-908 includes alatch 910 andXNOR logic gate 912. Thelatches 910 are controlled by the clock signal input (clock_in) provided to the refreshrate control circuit 204. Eachlatch 910 may be reset (RST) depending on the state of therate control circuit 204. Initially, thelatches 910 are reset to a logic zero value. - The
first stage 900 causes the refreshrate control circuit 204 to output a clock pulse at the same frequency as the input clock signal when the frequency divider state is divide-by-1 (i.e., all rows are to be refreshed). Particularly, the output of a five-input logic ANDgate 914 follows the output of thefirst logic stage 900. Aninverter 916 included in thefirst logic stage 900 causes the output of thefirst stage latch 910 to alternate states responsive to a rising edge transition in the clock input signal. During a first clock cycle following reset, the output of thefirst stage 900 transitions to a logic one responsive to a rising-edge transition in the input clock signal. Before the clock input signal drops low, thefirst stage inverter 916 causes the output of thefirst stage latch 910 to transition back to a logic zero state. When the input clock signal completes the falling-edge transition during the first clock cycle, thefirst stage latch 910 holds the logic zero state. Thus, the clock signal output by the refreshrate control circuit 204 follows the input clock signal when the frequency divider state is divide-by-1 as shown inFIG. 10 . - When the state of the frequency divider signal is divide-by-2 (i.e., all rows but one are to be refreshed), the
first stage 900 causes the output of thesecond stage 902 to pulse at ½ the frequency of the input clock signal. Further, the output of the five-input logic ANDgate 914 follows the output of thesecond logic stage 902. Thus, the frequency of the clock signal output by the refreshrate control circuit 204 is ½ that of the input clock signal when the frequency divider state is divide-by-2 (DIV2=1). Particularly, thefirst stage 900 inverts the clock input signal when the divide-by-1 state is inactive (DIV1=0). AnXOR gate 918 included in thesecond stage 902 causes thesecond stage 902 to output a logic zero during the first input clock cycle, thus causing the refresh clock signal to remain in a logic zero state. During the next clock cycle, the latch outputs of the first andsecond stages XOR gate 918 of thesecond stage 902 to change state which is captured by thesecond stage latch 910 during a falling edge transition in the input clock signal. As such, thesecond stage 902 outputs a pulse during the second input clock cycle. The third, fourth andfifth stages second stage 902 when the current state of the frequency divider signal is divide-by-2. Thus, the refresh clock signal pulses at ½ the frequency of the input clock signal when the current state of the frequency divider signal is divide-by-2 as shown inFIG. 10 because only ½ of the rows are to be refreshed. - When the state of the frequency divider signal is divide-by-4 (i.e., two rows are to be refreshed), the first and
second stages third stage 904 to output a pulse at ¼ the frequency of the input clock signal. Particularly, thefirst stage 900 causes thesecond stage 902 to output a pulse at ½ the frequency of the input clock signal when the divide-by-1 state is inactive (DIV1=0). In turn, thesecond stage 902 causes thethird stage 904 to output a pulse at ½ the frequency of thesecond stage 902 when the divide-by-2 state is also inactive (DIV2=0). Accordingly, a two-input ANDgate 920 and anXOR gate 922 included in thethird stage 904 cause thethird stage 904 to output a pulse every fourth cycle of the input clock based on the latch states of the first, second andthird stages fifth stages third stage 904 when the current state of the frequency divider signal is divide-by-4 (DIV4=1). Thus, the refreshrate control circuit 204 outputs a pulse at ¼ the frequency of the input clock signal when the state of the frequency divider signal is divide-by-4 as shown inFIG. 10 because only ¼ of the rows are to be refreshed. - The
fourth stage 906 controls the refresh clock frequency when the current state of the frequency divider signal is divide-by-8 (DIV8=1). Thefourth stage 906 includes a three-input ANDgate 924 and anXOR gate 926. Thefourth stage 906 outputs a pulse every eight input clock cycles based on the latch states of the first, second, third andfourth stages fifth stage 908 does not adversely impinge upon the operation of thefourth stage 906 when the current state of the frequency divider signal is divide-by-8 (DIV8=1). Thus, the refreshrate control circuit 204 outputs a pulse once every eight cycles of the input clock signal when the state of the frequency divider signal is divide-by-8 as shown inFIG. 10 because only one of the four control signal bits CTRL<0:3> has been triggered. - The
fifth stage 908 controls the refresh clock frequency when the current state of the frequency divider signal is divide-by-16 (DIV16=1). Thefifth stage 908 includes a four-input ANDgate 928 and aXOR gate 930. Thefifth stage 908 outputs a pulse every sixteen input clock cycles based on the latch states of the first through fifth stages 900-908. The refresh clock signal has one-sixteenth the frequency of the input clock signal when the current state of the frequency divider signal is divide-by-16 as shown inFIG. 10 because none of the four control signal bits CTRL<0:3> have been triggered.Optional inverters gate 936 may be included at the output of therefresh rate circuit 204 for adjusting the pulse width of the refresh clock signal. - With the above range of variations and applications in mind, it should be understood that the present invention is not limited by the foregoing description, nor is it limited by the accompanying drawings. Instead, the present invention is limited only by the following claims and their legal equivalents.
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/950,778 US7551505B1 (en) | 2007-12-05 | 2007-12-05 | Memory refresh method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/950,778 US7551505B1 (en) | 2007-12-05 | 2007-12-05 | Memory refresh method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090147606A1 true US20090147606A1 (en) | 2009-06-11 |
US7551505B1 US7551505B1 (en) | 2009-06-23 |
Family
ID=40721526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/950,778 Expired - Fee Related US7551505B1 (en) | 2007-12-05 | 2007-12-05 | Memory refresh method and apparatus |
Country Status (1)
Country | Link |
---|---|
US (1) | US7551505B1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090237415A1 (en) * | 2008-03-20 | 2009-09-24 | Apple Inc. | Anti-phase pulse width modulator |
US20150109872A1 (en) * | 2011-04-13 | 2015-04-23 | PS4 Luxco S.a.r.I. | Device performing refresh operations of memory areas |
US20180108401A1 (en) * | 2016-10-17 | 2018-04-19 | SK Hynix Inc. | Memory device |
CN108509151A (en) * | 2018-03-13 | 2018-09-07 | 华中科技大学 | A kind of row caching method and system based on DRAM Memory Controller Hub |
US10163496B2 (en) | 2016-01-29 | 2018-12-25 | Taiwan Semiconductor Manufacturing Company, Ltd. | Static random access memory (SRAM) tracking cells and methods of forming the same |
CN112106138A (en) * | 2018-05-24 | 2020-12-18 | 美光科技公司 | Apparatus and method for pure time self-adapted sampling for row hammer refresh sampling |
US11935576B2 (en) | 2018-12-03 | 2024-03-19 | Micron Technology, Inc. | Semiconductor device performing row hammer refresh operation |
US11955158B2 (en) | 2018-10-31 | 2024-04-09 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
US12002501B2 (en) | 2018-12-26 | 2024-06-04 | Micron Technology, Inc. | Apparatuses and methods for distributed targeted refresh operations |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364889B2 (en) | 2010-05-28 | 2013-01-29 | International Business Machines Corporation | Dynamic row-width memory |
WO2012074724A1 (en) | 2010-12-03 | 2012-06-07 | Rambus Inc. | Memory refresh method and devices |
KR102048407B1 (en) | 2012-10-19 | 2019-11-25 | 삼성전자주식회사 | Refresh address generator and volatile memory device |
KR20170045795A (en) | 2015-10-20 | 2017-04-28 | 삼성전자주식회사 | Memory device and memory system including the same |
US20190066760A1 (en) * | 2017-08-23 | 2019-02-28 | Nanya Technology Corporation | Dram and method for operating the same |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4292676A (en) * | 1978-11-15 | 1981-09-29 | Lockheed Electronics Co., Inc. | Refresh cycle minimizer in a dynamic semiconductor memory |
US4628488A (en) * | 1982-12-27 | 1986-12-09 | Tokyo Shibaura Denki Kabushiki Kaisha | Semiconductor memory device with a refresh mechanism |
US5717644A (en) * | 1996-10-09 | 1998-02-10 | International Business Machines Corporation | Apparatus for varying the refresh rate for a DRAM in response to variation in operating voltages and method thereof |
US6094705A (en) * | 1999-03-10 | 2000-07-25 | Picoturbo, Inc. | Method and system for selective DRAM refresh to reduce power consumption |
US6167484A (en) * | 1998-05-12 | 2000-12-26 | Motorola, Inc. | Method and apparatus for leveraging history bits to optimize memory refresh performance |
US6178479B1 (en) * | 1999-02-22 | 2001-01-23 | Nband Communications | Cycle-skipping DRAM for power saving |
US6490216B1 (en) * | 2001-07-20 | 2002-12-03 | United Microelectronics Corp. | Selective memory refresh circuit and method |
US6603694B1 (en) * | 2002-02-05 | 2003-08-05 | Infineon Technologies North America Corp. | Dynamic memory refresh circuitry |
US6781908B1 (en) * | 2003-02-19 | 2004-08-24 | Freescale Semiconductor, Inc. | Memory having variable refresh control and method therefor |
US6819618B2 (en) * | 2003-02-25 | 2004-11-16 | Renesas Technology Corp. | Semiconductor memory device capable of executing refresh operation according to refresh space |
US6958944B1 (en) * | 2004-05-26 | 2005-10-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | Enhanced refresh circuit and method for reduction of DRAM refresh cycles |
US20050248755A1 (en) * | 2004-05-07 | 2005-11-10 | Chung-Cheng Chou | Refresh counter with dynamic tracking of process, voltage and temperature variation for semiconductor memory |
US20060010350A1 (en) * | 2004-07-07 | 2006-01-12 | Pelley Perry H | Memory having variable refresh control and method therefor |
US20060245288A1 (en) * | 2005-04-29 | 2006-11-02 | Wolfgang Hokenmaier | Self-refresh circuit with optimized power consumption |
-
2007
- 2007-12-05 US US11/950,778 patent/US7551505B1/en not_active Expired - Fee Related
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4292676A (en) * | 1978-11-15 | 1981-09-29 | Lockheed Electronics Co., Inc. | Refresh cycle minimizer in a dynamic semiconductor memory |
US4628488A (en) * | 1982-12-27 | 1986-12-09 | Tokyo Shibaura Denki Kabushiki Kaisha | Semiconductor memory device with a refresh mechanism |
US5717644A (en) * | 1996-10-09 | 1998-02-10 | International Business Machines Corporation | Apparatus for varying the refresh rate for a DRAM in response to variation in operating voltages and method thereof |
US6167484A (en) * | 1998-05-12 | 2000-12-26 | Motorola, Inc. | Method and apparatus for leveraging history bits to optimize memory refresh performance |
US6178479B1 (en) * | 1999-02-22 | 2001-01-23 | Nband Communications | Cycle-skipping DRAM for power saving |
US6094705A (en) * | 1999-03-10 | 2000-07-25 | Picoturbo, Inc. | Method and system for selective DRAM refresh to reduce power consumption |
US6490216B1 (en) * | 2001-07-20 | 2002-12-03 | United Microelectronics Corp. | Selective memory refresh circuit and method |
US6603694B1 (en) * | 2002-02-05 | 2003-08-05 | Infineon Technologies North America Corp. | Dynamic memory refresh circuitry |
US20030147295A1 (en) * | 2002-02-05 | 2003-08-07 | Gerd Frankowsky | Dynamic memory refresh circuitry |
US6781908B1 (en) * | 2003-02-19 | 2004-08-24 | Freescale Semiconductor, Inc. | Memory having variable refresh control and method therefor |
US6819618B2 (en) * | 2003-02-25 | 2004-11-16 | Renesas Technology Corp. | Semiconductor memory device capable of executing refresh operation according to refresh space |
US20050248755A1 (en) * | 2004-05-07 | 2005-11-10 | Chung-Cheng Chou | Refresh counter with dynamic tracking of process, voltage and temperature variation for semiconductor memory |
US6958944B1 (en) * | 2004-05-26 | 2005-10-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | Enhanced refresh circuit and method for reduction of DRAM refresh cycles |
US20060010350A1 (en) * | 2004-07-07 | 2006-01-12 | Pelley Perry H | Memory having variable refresh control and method therefor |
US20060245288A1 (en) * | 2005-04-29 | 2006-11-02 | Wolfgang Hokenmaier | Self-refresh circuit with optimized power consumption |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090237415A1 (en) * | 2008-03-20 | 2009-09-24 | Apple Inc. | Anti-phase pulse width modulator |
US9218769B2 (en) * | 2008-03-20 | 2015-12-22 | Apple Inc. | Anti-phase pulse width modulator |
US20150109872A1 (en) * | 2011-04-13 | 2015-04-23 | PS4 Luxco S.a.r.I. | Device performing refresh operations of memory areas |
US10163496B2 (en) | 2016-01-29 | 2018-12-25 | Taiwan Semiconductor Manufacturing Company, Ltd. | Static random access memory (SRAM) tracking cells and methods of forming the same |
US10643688B2 (en) | 2016-01-29 | 2020-05-05 | Taiwan Semiconductor Manufacturing Company, Ltd. | Static random access memory (SRAM) tracking cells and methods of forming the same |
US20180108401A1 (en) * | 2016-10-17 | 2018-04-19 | SK Hynix Inc. | Memory device |
US10497421B2 (en) * | 2016-10-17 | 2019-12-03 | SK Hynix Inc. | Memory device |
CN108509151A (en) * | 2018-03-13 | 2018-09-07 | 华中科技大学 | A kind of row caching method and system based on DRAM Memory Controller Hub |
CN112106138A (en) * | 2018-05-24 | 2020-12-18 | 美光科技公司 | Apparatus and method for pure time self-adapted sampling for row hammer refresh sampling |
US11955158B2 (en) | 2018-10-31 | 2024-04-09 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
US11935576B2 (en) | 2018-12-03 | 2024-03-19 | Micron Technology, Inc. | Semiconductor device performing row hammer refresh operation |
US12002501B2 (en) | 2018-12-26 | 2024-06-04 | Micron Technology, Inc. | Apparatuses and methods for distributed targeted refresh operations |
Also Published As
Publication number | Publication date |
---|---|
US7551505B1 (en) | 2009-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7551505B1 (en) | Memory refresh method and apparatus | |
US11315619B2 (en) | Apparatuses and methods for distributing row hammer refresh events across a memory device | |
US10210922B2 (en) | Apparatus and methods for refreshing memory cells of a semiconductor device | |
US10930335B2 (en) | Apparatuses and methods for selective row refreshes | |
CN111247586B (en) | Apparatus and method for refreshing memory | |
US10192608B2 (en) | Apparatuses and methods for detection refresh starvation of a memory | |
US6711093B1 (en) | Reducing digit equilibrate current during self-refresh mode | |
TWI430270B (en) | Apparatus and method for self-refreshing dynamic random access memory cells | |
US7545699B2 (en) | Semiconductor memory device with partial refresh function | |
JPH08287676A (en) | Semiconductor memory device | |
US20040196719A1 (en) | Semiconductor memory device having reduced current dissipation in data holding mode | |
US8630141B2 (en) | Circuits and methods for providing refresh addresses and alternate refresh addresses to be refreshed | |
US6463005B2 (en) | Semiconductor memory device | |
US6219292B1 (en) | Semiconductor memory device having reduced power requirements during refresh operation by performing refresh operation in a burst method | |
US7433261B2 (en) | Directed auto-refresh for a dynamic random access memory | |
US6711084B2 (en) | Semiconductor device capable of reliable power-on reset | |
US7330391B2 (en) | Memory having directed auto-refresh | |
US7327631B2 (en) | Semiconductor memory device and method of operating semiconductor memory device | |
US6700828B2 (en) | Semiconductor memory device | |
JP4563694B2 (en) | Semiconductor memory device and word line driving method. | |
CN116264090A (en) | Apparatus and method for 1T and 2T memory cell architecture | |
JP3640165B2 (en) | Semiconductor device, memory system and electronic device | |
JPH065075A (en) | Dynamic semiconductor memory device | |
US6845056B2 (en) | Semiconductor memory device with reduced power consumption | |
US20020159314A1 (en) | Semiconductor device, refreshing method thereof, memory system, and electronic instrument |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: QIMONDA NORTH AMERICA CORP., NORTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DANIEL, ALAN;REEL/FRAME:020359/0963 Effective date: 20071205 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: QIMONDA AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QIMONDA NORTH AMERICA CORP;REEL/FRAME:026138/0613 Effective date: 20110221 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: INFINEON TECHNOLOGIES AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QIMONDA AG;REEL/FRAME:035623/0001 Effective date: 20141009 |
|
AS | Assignment |
Owner name: POLARIS INNOVATIONS LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INFINEON TECHNOLOGIES AG;REEL/FRAME:037254/0782 Effective date: 20150708 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20170623 |