WO2017099906A1 - Performance of additional refresh operations during self-refresh mode - Google Patents

Performance of additional refresh operations during self-refresh mode Download PDF

Info

Publication number
WO2017099906A1
WO2017099906A1 PCT/US2016/059747 US2016059747W WO2017099906A1 WO 2017099906 A1 WO2017099906 A1 WO 2017099906A1 US 2016059747 W US2016059747 W US 2016059747W WO 2017099906 A1 WO2017099906 A1 WO 2017099906A1
Authority
WO
WIPO (PCT)
Prior art keywords
refresh
memory
self
mode
commands
Prior art date
Application number
PCT/US2016/059747
Other languages
French (fr)
Inventor
Kuljit S. Bains
Shay FUX
John B. Halbert
Original Assignee
Intel Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to CN201680072231.0A priority Critical patent/CN108369819B/en
Priority to EP16873531.4A priority patent/EP3387649A4/en
Publication of WO2017099906A1 publication Critical patent/WO2017099906A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4067Refresh in standby or low power modes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • TECHNICAL FIELD Embodiments described herein generally relate to the field of computer memory and, more particularly, to performance of additional refresh operations during self-refresh mode.
  • Dynamic random access memory requires regular refreshing of the contents of the memory to prevent data loss.
  • certain refresh cycles are required in order to maintain memory, but further to maintain compliance with memory standards.
  • a system may be authorized to pull in (issue in advance) or postpone a certain number of refresh commands.
  • a memory device may perform self- refresh cycles in self-refresh mode.
  • a memory controller is required at time to delay entry to self-refresh mode in order to catch up on the required refreshes. This operation can require significant consumption of power for systems in completing refresh cycles, and then proceeding into a self-refresh mode.
  • Figure 1 is an illustration of a memory controller and memory device to perform refresh credit operations according to an embodiment
  • Figure 2 is an illustration of a command for a self-refresh mode according to an embodiment
  • Figure 3 is an illustration of a mode register according to an embodiment
  • Figure 4 is a flowchart to illustrate refresh operations for a memory controller according to an embodiment
  • FIG. 5 is a flowchart to illustrate refresh operations for a DRAM device according to an embodiment
  • Figure 6 is an illustration of an apparatus or system including a memory providing a refresh credit mode according to an embodiment.
  • Embodiments described herein are generally directed to performance of additional refresh operations during self-refresh mode.
  • DRAM Dynamic random access memory
  • DRAM may include a type of physical random access memory (RAM) used for storing bits of data in computing devices, wherein each bit of data is stored in an memory element including a capacitor that must be refreshed (reenergized) to avoid losing the contents of the DRAM.
  • DRAM may include, but is not limited to, memory contained in modules such as DIMMs (Dual In-Line Memory Modules).
  • DRAM may include DDR (Double Data Rate) technology, where DDR SDRAM (synchronous DRAM) is organized is organized in rows, which are referred to as memory pages (which may generally be referred to herein as pages).
  • DDR SDRAM synchronous DRAM
  • memory pages which may generally be referred to herein as pages.
  • JEDEC Joint Electronic Devices Engineering Council
  • DDR SDRAM specification JESD79-3C for DDR3, JESD79- 4 for DDR4, and JESD209-3 for LPDDR3 (Low Power DDR.
  • the memory pages are divided into sections referred to as banks, with each bank having a register associated with it.
  • Mobile electronic device or “mobile device” may include a smartphone, smartwatch, tablet computer, notebook or laptop computer, handheld computer, mobile Internet device, wearable technology, or other mobile electronic device that includes processing capability.
  • a Refresh (REF) command is issued regularly to a DRAM, and in general a Refresh command is provided each tREFI (refresh interval time).
  • a certain maximum (such as 8) Refresh commands can be postponed during operation of the DRAM, indicating that at no point in time should more than a total of eight Refresh commands be postponed.
  • the maximum number (8) refresh commands are postponed in a row, the resulting maximum interval between the surrounding Refresh commands is limited to, for example, 9 x tREFI.
  • a maximum of eight additional refresh commands can be issued in advance (which is referred to as refresh commands being "pulled in”), with each one refresh command issued in advance resulting in reducing the number of regular refresh commands that are required later by one.
  • Advancing (pulling in) more than eight refresh commands in advance does not further reduce the number of regular refresh commands required later, and thus the resulting maximum interval between two surrounding refresh commands is limited to 9 x tREFI.
  • a Self-Refresh mode may be entered with a maximum of eight refresh commands being postponed. After exiting the Self-Refresh mode with one or more Refresh commands postponed, additional Refresh commands may be postponed to the extent that the total number of postponed Refresh commands (before and after the self -refresh) do not exceed the maximum of eight. In a conventional operation, during the Self-Refresh mode, the number of postponed or pulled-in Refresh commands does not change.
  • DRAMs may allow for pulling-in or postponing of a certain number (8) refresh commands.
  • the memory controller is required to delay entry to Self-Refresh in order to catch up on the required refreshes.
  • this process requires additional consumption of power as it delays a time when the system may enter a reduced power state.
  • an apparatus, system, or process may utilize a Refresh Credit mode to allow early entry to self-refresh, during which memory operations may be performed to catch up with or get ahead of refresh cycle requirements.
  • the DRAM is to perform additional refreshes during a Self-Refresh mode to catch up on one or more postponed refreshes.
  • the DRAM may further perform additional refreshes during the Self-Refresh mode to allow the memory controller to get ahead on refreshes (increase a number of refreshes advanced), thereby allowing improvement in power consumption and performance of memory operation.
  • the DRAM Refresh Credit mode is utilized to catch up on refreshes and to get ahead on refreshes while DRAM is in the Self-Refresh mode.
  • an apparatus, system, or process enables an early entry to Self-Refresh and, during the Self-Refresh mode, the DRAM is to perform refreshes to catch up on any postponed refreshes.
  • a new command encoding is defined to indicate to a DRAM a number of refreshes it needs to perform to catch up on refresh cycles.
  • the performance of refreshes while in the Self-Refresh mode may be used to reduce power consumption as the memory controller and other portions of the system can potentially be powered off (in a reduced power state) during the Self-Refresh mode.
  • Self-Refresh may be implemented on a per memory bank basis, group of memory banks, as well as all memory banks, and a Refresh Credit mode may further be extended to per memory bank operation, with communications of refresh status on a per memory bank basis.
  • Refresh Credit mode can be extended to group of memory banks, as well as all memory banks.
  • FIG 1 is an illustration of a memory controller and memory device to perform refresh credit operations according to an embodiment.
  • a memory controller 100 is to provide Refresh commands 120 to a DRAM device 150.
  • the memory controller 100 may postpone a certain number of refreshes 110 up to a maximum number, and may pull in (advance) a certain number of refreshes 115 to get ahead on refresh requests.
  • Figure 1 provides simplified drawings of the memory controller 100 and DRAM 150 for illustration, and is not intended to illustrate all elements of these components.
  • the DRAM includes a control logic 155, the central logic 155 includes a mode register set (MRS) 160.
  • the mode register set 160 includes a register for a Refresh Credit mode 165, shown as n mode register bits.
  • the DRAM further includes a memory array 170 including multiple memory banks, wherein the memory of the memory backs requires refresh cycles to maintain data stored in the memory banks.
  • Figure 1 further illustrates an address register 172 and I/O (input-output) interfaces 174.
  • the DRAM 150 includes a Refresh Credit mode that allow for the DRAM to catch up on or get further ahead on refresh cycles for the memory controller 100.
  • the Refresh Credit mode is enabled using a mode register bit of the available register bits 165.
  • the refresh credit mode may be enabled or disabled by the memory controller 100 via performance of a mode register set write operation.
  • the memory controller may provide a
  • Self-Refresh command 125 that includes data to inform the DRAM if controller has any postponed or pulled-in refreshes, and the number of such postponed or pulled-in refreshes.
  • the Self-Refresh command may be as illustrated in Figure 2.
  • the DRAM while in the Self-Refresh mode, the DRAM is to perform additional refresh cycles to enable catching up or getting ahead on a certain number of refresh cycles.
  • the Refresh Credit is encoded by the DRAM in the mode register bits 165 upon exit from the Self-Refresh mode, wherein the memory controller 100 can access the mode register bits to determine a modified refresh status, and can then continue with refresh operations based on the modified refresh status.
  • FIG. 2 is an illustration of a command for a self-refresh mode according to an embodiment.
  • a Self-Refresh command 200 is based on command based entry.
  • a command is a two-cycle command over Command Address (CA) bits CA0 to CA13 for a Command Strobe (CS) (CS low (L) or high (H)) at a certain value.
  • CA Command Address
  • CS Command Strobe
  • Mode Register bits 5:0 there are six Mode Register bits defined, MRx bits 5:0.
  • an RC bit in command encoding informs DRAM if the controller has any postponed or pulled-in refreshes, wherein the number of refreshes postponed or pulled in are encoded.
  • a DRAM for a first portion of a refresh implementation, if refreshes have been postponed, then the DRAM will perform additional refreshes in the Self-Refresh state to catch up. In some embodiments, for a second part of a refresh implementation, the DRAM will operate to get ahead on refreshes by pulling-in up to a maximum of eight refreshes in the Self-Refresh state. In some embodiments, upon exit from the Self-Refresh mode, a DRAM is to store the number of refreshes the DRAM was able to catchup on and the additional refreshes it has performed in MRx bits 4:0.
  • Figure 3 is an illustration of a mode register according to an embodiment.
  • a mode register 300 includes certain mode register bits, which may be the mode register bits 165 illustrated in Figure 1.
  • Mode Register bits there are six Mode Register bits defined, such register bits being MRx bits 5:0.
  • the DRAM on Self-Refresh mode exit, the DRAM is to store data indicating a modified refresh status, the data reflecting the number of refreshes the DRAM was able to catch up on or the additional refreshes the DRAM was able to perform during the self-refresh mode.
  • the mode register bit may include a refresh credit (RC) status and a number of refreshes it was able to catch up on (N3:N0).
  • the bits of the memory register 300 may indicate refresh status as follows:
  • MR bit 4 Refresh Credit (RC)
  • N3:N0 number of refreshes either postponed or advanced
  • a DRAM will perform additional refreshes to catchup within 2 x tREFI of a first 64 ms (millisecond) window only, where refreshes are issued on an average refresh interval of tREFI.
  • a DRAM may be required to catchup on these extra refreshes within such first 2 x tREFI window. This requirement generally will not place any additional power delivery constraints as a result of the extra refreshes.
  • the tREFI value is the average refresh interval over a period of time, and tREFI may be 7.8 ⁇ 8 per the DDR3 and DDR4 JEDEC specifications.
  • a next process is for DRAM to get ahead utilizing pulled in (advanced) refreshes.
  • a DRAM can pull in a maximum of eight refreshes in any rolling 64 ms (millisecond) window.
  • the DRAM performs a fixed number of refreshes in a window, such as the 64 ms window.
  • the maximum of eight refreshes that are pulled in are again executed in the DRAM towards a front (beginning) of the window.
  • the refreshes that are pulled in are lost. In other words, DRAM has to again execute additional 8 refreshes at the front end of the next 64 ms window.
  • the timing of a Self-Refresh exit command within a 64 ms window will dictate on how many refreshes DRAM is allowed to pull-in.
  • FIG. 4 is a flowchart to illustrate refresh operations for a memory controller according to an embodiment.
  • refresh operations for the memory controller 400 includes providing refresh commands directed to a DRAM device 402, wherein the refresh commands are subject to certain minimum refresh frequency requirements, including the flexibility to postpone or pull in (advance) a certain number of refresh cycles 404.
  • the memory controller may enable a Refresh Credit mode for the DRAM (if not currently enabled) by setting a mode register bit, and determine a current refresh status with regard to postponed or advanced refresh cycles 406.
  • the memory controller is to prepare a Self-Refresh command including the number of postponed or advanced refresh cycles 408, which may, for example, be in the form of command 200 illustrated in Figure 2.
  • the memory controller is to transmit the Self-Refresh command to the DRAM 410, which may be followed by transitioning to a reduced power state 412.
  • the memory controller is to read the mode register bits of the mode register set of the DRAM (such as illustrated as mode register bits 165 in Figure 1 and as structured in the mode register 300 illustrated in Figure 3) to determine a modified refresh status 422, which may include a number of refresh cycles that remain postponed or a number of refresh cycles that are now advanced. In some embodiments, the memory controller is to continue transmission of refresh commands directed to the DRAM based on the modified refresh status 424.
  • FIG. 5 is a flowchart to illustrate refresh operations for a DRAM device according to an embodiment.
  • a DRAM device may receive refresh commands from a memory controller 502, wherein the refresh commands are subject to certain minimum refresh frequency requirements, the requirements including flexibility to postpone or pull in (advance) a certain number of refresh cycles, and the DRAM is to perform the refresh cycles in response to the received commands 504.
  • the command logic of the DRAM upon receipt of a Self-Refresh command from the memory controller 506, if a Refresh Credit mode is currently enabled 508, the command logic of the DRAM is to determine a current refresh status from the self-refresh command 510, which command may be as illustrated as the self -refresh command 200 illustrated in Figure 2. In some embodiments, the command logic is to provide for the DRAM to perform one or more postponed memory refresh cycles (if there are existing postponed refresh cycles) and, if possible, to perform one or more additional refresh cycles 512.
  • control logic of the DRAM is further to encode mode register bits to indicate a modified refresh status including a current number of postponed or advanced refresh cycles after the performance of refresh cycles during the self -refresh mode 514.
  • the coding of the mode register bits may be as illustrated for mode register 300 illustrated in Figure 3. The DRAM may then complete operation in the self-refresh mode 516 and continue with normal operation, including receiving refresh commands from the memory control 502.
  • Figure 6 is an illustration of an apparatus or system including a memory providing a refresh credit mode according to an embodiment.
  • certain standard and well-known components that are not germane to the present description are not shown.
  • Elements shown as separate elements may be combined, including, for example, an SoC (System on Chip) combining multiple elements on a single chip.
  • An apparatus or system 600 may include, but is not limited to, a mobile device.
  • the apparatus or system 600 includes processing means (or processing units) such as one or more processors 610 coupled to one or more buses or interconnects, shown in general as bus 665.
  • the processors 610 may comprise one or more physical processors and one or more logical processors.
  • the processors may include one or more general-purpose processors or special-processor processors.
  • the bus 665 is a communication means for transmission of data.
  • the bus 665 is illustrated as a single bus for simplicity, but may represent multiple different interconnects or buses and the component connections to such interconnects or buses may vary.
  • the bus 665 shown in Figure 6 is an abstraction that represents any one or more separate physical buses, point-to-point connections, or both connected by appropriate bridges, adapters, or controllers.
  • a processor 610 includes a memory controller 612 or operates with an external memory controller 614.
  • the apparatus or system 600 further comprises a random access memory (RAM) or other dynamic storage device or element as a main memory for storing information and instructions to be executed by the processors 610.
  • Main memory may include, but is not limited to, dynamic random access memory (DRAM) 615.
  • the DRAM may include elements illustrated for DRAM 150 in Figure 1.
  • the DRAM 615 includes control logic 616 to provide memory control operation and a mode register 617 to provide for enabling or disabling certain modes.
  • the control logic 616 includes logic to perform additional memory refreshes in a self -refresh mode when a refresh credit mode is active.
  • the DRAM is to receive a self-refresh command, such as command 200 illustrated in Figure 2, providing information regarding a current refresh status, including a number of refresh cycles that are either postponed or advanced.
  • the mode register set 617 includes mode register bits 618, wherein such bits may be utilized to provide information regarding a modified refresh status, such as illustrated in the mode register 300 illustrated in Figure 3, including a number of refresh cycles that are postponed or advanced after the end of the self- refresh mode.
  • the memory controller 612-614 is operable to write to the mode register set 617 to enable or disable the refresh credit mode, and, with the refresh credit enabled, to provide a self-refresh command to the DRAM 615, the self -refresh command providing information regarding a current refresh status, including a number of refresh cycles that are postponed or pulled in.
  • the operations for the refresh credit mode may be as illustrated in Figures 4 and 5.
  • the apparatus or system 600 also may comprise a non-volatile memory (NVM) 620; a storage device such as a solid state drive (SSD) 625; and a read only memory (ROM) 630 or other static storage device for storing static information and instructions for the processors 610.
  • NVM non-volatile memory
  • SSD solid state drive
  • ROM read only memory
  • NVM 620 can include single or multi-threshold level NAND flash memory, NOR flash memory, single or multi-level phase change memory (PCM), resistive memory, three dimensional (3D) cross point memory, nanowire memory, ferroelectric transistor random access memory (FeTRAM), magnetoresistive random access memory (MRAM) memory that incorporates memristor technology, spin transfer torque random access memory (STT)-MRAM, write in place non-volatile MRAM (NVMRAM) such as phase change memory, and the like, including combinations thereof.
  • PCM phase change memory
  • FeTRAM ferroelectric transistor random access memory
  • MRAM magnetoresistive random access memory
  • STT spin transfer torque random access memory
  • NVMRAM write in place non-volatile MRAM
  • the apparatus or system 600 includes one or more transmitters or receivers 640 coupled to the bus 665 to provide wired or wireless communications.
  • the apparatus or system 600 may include one or more antennae 644, such as dipole or monopole antennae, for the transmission and reception of data via wireless communication using a wireless transmitter, receiver, or both, and one or more ports 642 for the transmission and reception of data via wired communications.
  • Wireless communication includes, but is not limited to, Wi-Fi, BluetoothTM, near field communication, and other wireless communication standards.
  • apparatus or system 600 includes one or more input devices 650 for the input of data, including hard and soft buttons, a joy stick, a mouse or other pointing device, a keyboard, voice command system, or gesture recognition system.
  • input devices 650 for the input of data, including hard and soft buttons, a joy stick, a mouse or other pointing device, a keyboard, voice command system, or gesture recognition system.
  • the apparatus or system 600 includes an output display
  • the display 655 may include a liquid crystal display (LCD) or any other display technology, for displaying information or content to a user.
  • the display 655 may include a touch-screen that is also utilized as at least a part of an input device 650.
  • Output display 655 may further include audio output, including one or more speakers, audio output jacks, or other audio, and other output to the user.
  • the apparatus or system 600 may also comprise a battery or other power source 660, which may include a solar cell, a fuel cell, a charged capacitor, near field inductive coupling, power adapter, or other system or device for providing or generating power in the apparatus or system 600.
  • the power provided by the power source 660 may be distributed as required to elements of the apparatus or system 600.
  • Various embodiments may include various processes. These processes may be performed by hardware components or may be embodied in computer program or machine- executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the processes.
  • the processes may be performed by a combination of hardware and software.
  • Portions of various embodiments may be provided as a computer program product, which may include a computer-readable medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) for execution by one or more processors to perform a process according to certain
  • the computer-readable medium may include, but is not limited to, magnetic disks, optical disks, compact disk read-only memory (CD-ROM), and magneto-optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), magnet or optical cards, flash memory, or other type of computer-readable medium suitable for storing electronic instructions.
  • embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer.
  • element A may be directly coupled to element B or be indirectly coupled through, for example, element C.
  • a component, feature, structure, process, or characteristic A “causes” a component, feature, structure, process, or characteristic B, it means that "A” is at least a partial cause of "B” but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing "B.”
  • the specification indicates that a component, feature, structure, process, or characteristic "may”, “might”, or “could” be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification or claim refers to "a” or “an” element, this does not mean there is only one of the described elements.
  • An embodiment is an implementation or example. Reference in the specification to "an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all
  • a memory device includes one or more memory banks; a mode register set, the mode register including a first set of mode register bits; and a control logic to provide control operations for the memory device, the operations including refresh operations for the one or more memory banks in a refresh credit mode.
  • control logic is to perform one or more extra refresh cycles in response to receipt of a self-refresh command, the self-refresh command to provide current refresh status information; and the control logic is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.
  • the current refresh status information in the mode register command includes a number of refresh cycles that are postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
  • the first set of mode register bits includes a number of refresh cycles that remain postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
  • the memory device is a dynamic random access memory (DRAM) device.
  • the DRAM device is a double data rate (DDR) synchronous DRAM (SDRAM) memory device.
  • DDR double data rate
  • SDRAM synchronous DRAM
  • one or more non-transitory computer-readable storage mediums having stored thereon data representing sequences of instructions that, when executed by one or more processors, cause the one or more processors to perform operations including providing a series of refresh commands to a memory by a memory controller, wherein providing the series of refresh commands may include postponing a number of refresh commands or advancing a number of refresh commands; transmitting a self -refresh command to the memory by the memory controller in a refresh credit mode, the self -refresh command including current refresh status information; upon an end of a self-refresh mode, obtaining modified refresh status information from the memory; and continuing the series of refresh commands based at least in part on the modified status information.
  • the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
  • the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
  • obtaining the modified refresh status information includes reading a set of register bits of the memory.
  • reading the set of register bits of the memory includes reading a first bit to determine whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self -refresh mode.
  • an apparatus includes means for providing a series of refresh commands to a memory by a memory controller, wherein providing the series of refresh commands may include postponing a number of refresh commands or advancing a number of refresh commands; means for transmitting a self-refresh command to the memory by the memory controller in a refresh credit mode, the self -refresh command including current refresh status information; means for obtaining modified refresh status information from the memory upon an end of a self -refresh mode; and means for continuing the series of refresh commands based at least in part on the modified status information.
  • the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
  • the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
  • the means for obtaining the modified refresh status information includes means for reading a set of register bits of the memory.
  • the means for reading the set of register bits of the memory includes means for reading a first bit to determine whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
  • a method includes receiving a series of refresh commands at a memory from a memory controller and perform refresh cycles in response to the refresh commands; receiving a self-refresh command at the memory from the memory controller in a refresh credit mode, the self -refresh command including current refresh status information; entering a self-refresh mode in response to the self -refresh command; performing one or more extra refresh cycles during the self -refresh mode; storing modified refresh status information based at least in part on the extra refresh cycles performed in the self -refresh mode; and exiting the self-refresh mode.
  • the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
  • the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the performance of the one or more extra refresh cycles.
  • storing the modified refresh status information includes storing the information in a set of register bits of the memory.
  • storing the information in the set of register bits of the memory includes writing a first bit to indicate whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
  • a system includes one or more processors for processing of data; a memory controller for control of computer memory; a memory device for storage of data for the one or more processors; and a transmitter and receiver for transfer of data in wireless communications, the system including one or more antennae for data transmission.
  • the memory device includes one or more memory banks, a mode register set, the mode register including a first set of mode register bits, and a control logic to provide control operations for the memory device, including refresh operations for the one or more memory banks in a refresh credit mode.
  • the control logic is to perform one or more extra refresh cycles in response to receipt of a self -refresh command, the self-refresh command to provide current refresh status information; and the control logic is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.
  • the current refresh status information in the mode register command includes a number of refresh cycles that are postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
  • the first set of mode register bits includes a number of refresh cycles that remain postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
  • the memory device is a dynamic random access memory (DRAM) device.
  • DRAM dynamic random access memory
  • the system is to enter a reduced power mode after transmission of the self-refresh command.
  • the system further includes one or more of a display communicatively coupled to the one or more processors; or a battery communicatively coupled to the one or more processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

Embodiments are generally directed to performance of additional refresh operations during self-refresh mode. An embodiment of a memory device includes one or more memory banks, a mode register set, the mode register set including a first set of mode register bits, and a control logic to provide control operations for the memory device, the operations including refresh operations for the one or more memory banks in a refresh credit mode. The control logic is to perform one or more extra refresh cycles in response to receipt of a self-refresh command, the self-refresh command to provide current refresh status information, and is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.

Description

PERFORMANCE OF ADDITIONAL REFRESH OPERATIONS DURING SELF- REFRESH MODE
TECHNICAL FIELD Embodiments described herein generally relate to the field of computer memory and, more particularly, to performance of additional refresh operations during self-refresh mode.
RELATED APPLICATION
This application claims the benefit under 35 USC 119(e) of U.S. Provisional Patent Application No. 62/265,054 filed December 9, 2015, which application is incorporated herein by reference as if fully set forth.
BACKGROUND
Dynamic random access memory (DRAM) requires regular refreshing of the contents of the memory to prevent data loss. In operation of a memory device, certain refresh cycles are required in order to maintain memory, but further to maintain compliance with memory standards. A system may be authorized to pull in (issue in advance) or postpone a certain number of refresh commands.
In addition to the required refresh commands, a memory device may perform self- refresh cycles in self-refresh mode. However, in operation, a memory controller is required at time to delay entry to self-refresh mode in order to catch up on the required refreshes. This operation can require significant consumption of power for systems in completing refresh cycles, and then proceeding into a self-refresh mode.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments described here are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
Figure 1 is an illustration of a memory controller and memory device to perform refresh credit operations according to an embodiment;
Figure 2 is an illustration of a command for a self-refresh mode according to an embodiment;
Figure 3 is an illustration of a mode register according to an embodiment; Figure 4 is a flowchart to illustrate refresh operations for a memory controller according to an embodiment;
Figure 5 is a flowchart to illustrate refresh operations for a DRAM device according to an embodiment; and
Figure 6 is an illustration of an apparatus or system including a memory providing a refresh credit mode according to an embodiment.
DETAILED DESCRIPTION
Embodiments described herein are generally directed to performance of additional refresh operations during self-refresh mode.
For the purposes of this description, the following definitions apply:
"Dynamic random access memory" or "DRAM" may include a type of physical random access memory (RAM) used for storing bits of data in computing devices, wherein each bit of data is stored in an memory element including a capacitor that must be refreshed (reenergized) to avoid losing the contents of the DRAM. DRAM may include, but is not limited to, memory contained in modules such as DIMMs (Dual In-Line Memory Modules).
DRAM may include DDR (Double Data Rate) technology, where DDR SDRAM (synchronous DRAM) is organized is organized in rows, which are referred to as memory pages (which may generally be referred to herein as pages). (See, JEDEC (Joint Electronic Devices Engineering Council) DDR SDRAM specification, JESD79-3C for DDR3, JESD79- 4 for DDR4, and JESD209-3 for LPDDR3 (Low Power DDR.) Further, the memory pages are divided into sections referred to as banks, with each bank having a register associated with it.
"Mobile electronic device" or "mobile device" may include a smartphone, smartwatch, tablet computer, notebook or laptop computer, handheld computer, mobile Internet device, wearable technology, or other mobile electronic device that includes processing capability.
A Refresh (REF) command is issued regularly to a DRAM, and in general a Refresh command is provided each tREFI (refresh interval time). However, to allow for improved efficiency in scheduling and switching between tasks, some flexibility in the absolute refresh interval may be allowed. In a specific example, a certain maximum (such as 8) Refresh commands can be postponed during operation of the DRAM, indicating that at no point in time should more than a total of eight Refresh commands be postponed. In a circumstance in which the maximum number (8) refresh commands are postponed in a row, the resulting maximum interval between the surrounding Refresh commands is limited to, for example, 9 x tREFI.
Further, a maximum of eight additional refresh commands can be issued in advance (which is referred to as refresh commands being "pulled in"), with each one refresh command issued in advance resulting in reducing the number of regular refresh commands that are required later by one. Advancing (pulling in) more than eight refresh commands in advance does not further reduce the number of regular refresh commands required later, and thus the resulting maximum interval between two surrounding refresh commands is limited to 9 x tREFI.
At any given time, a maximum of sixteen Refresh commands can be issued within
2 x tREFI. A Self-Refresh mode may be entered with a maximum of eight refresh commands being postponed. After exiting the Self-Refresh mode with one or more Refresh commands postponed, additional Refresh commands may be postponed to the extent that the total number of postponed Refresh commands (before and after the self -refresh) do not exceed the maximum of eight. In a conventional operation, during the Self-Refresh mode, the number of postponed or pulled-in Refresh commands does not change.
Thus, DRAMs may allow for pulling-in or postponing of a certain number (8) refresh commands. In operation, at times, the memory controller is required to delay entry to Self-Refresh in order to catch up on the required refreshes. However, this process requires additional consumption of power as it delays a time when the system may enter a reduced power state. In conventional operation, there is no provision for communication of refresh status or for a DRAM to catchup or get ahead on refreshes during self-refresh. Rather, the memory controller is responsible to perform all of the required refreshes.
In some embodiments, an apparatus, system, or process may utilize a Refresh Credit mode to allow early entry to self-refresh, during which memory operations may be performed to catch up with or get ahead of refresh cycle requirements. In some embodiments, for an enabled Refresh Credit mode, the DRAM is to perform additional refreshes during a Self-Refresh mode to catch up on one or more postponed refreshes. In some embodiments, the DRAM may further perform additional refreshes during the Self-Refresh mode to allow the memory controller to get ahead on refreshes (increase a number of refreshes advanced), thereby allowing improvement in power consumption and performance of memory operation.
In some embodiments, the DRAM Refresh Credit mode is utilized to catch up on refreshes and to get ahead on refreshes while DRAM is in the Self-Refresh mode. In some embodiments, an apparatus, system, or process enables an early entry to Self-Refresh and, during the Self-Refresh mode, the DRAM is to perform refreshes to catch up on any postponed refreshes. In some embodiments, a new command encoding is defined to indicate to a DRAM a number of refreshes it needs to perform to catch up on refresh cycles. In operation, the performance of refreshes while in the Self-Refresh mode may be used to reduce power consumption as the memory controller and other portions of the system can potentially be powered off (in a reduced power state) during the Self-Refresh mode.
In some embodiments, Self-Refresh may be implemented on a per memory bank basis, group of memory banks, as well as all memory banks, and a Refresh Credit mode may further be extended to per memory bank operation, with communications of refresh status on a per memory bank basis. Refresh Credit mode can be extended to group of memory banks, as well as all memory banks.
Figure 1 is an illustration of a memory controller and memory device to perform refresh credit operations according to an embodiment. As illustrated in Figure 1, a memory controller 100 is to provide Refresh commands 120 to a DRAM device 150. The memory controller 100 may postpone a certain number of refreshes 110 up to a maximum number, and may pull in (advance) a certain number of refreshes 115 to get ahead on refresh requests. Figure 1 provides simplified drawings of the memory controller 100 and DRAM 150 for illustration, and is not intended to illustrate all elements of these components.
In some embodiments, the DRAM includes a control logic 155, the central logic 155 includes a mode register set (MRS) 160. In some embodiments, the mode register set 160 includes a register for a Refresh Credit mode 165, shown as n mode register bits. The DRAM further includes a memory array 170 including multiple memory banks, wherein the memory of the memory backs requires refresh cycles to maintain data stored in the memory banks. Figure 1 further illustrates an address register 172 and I/O (input-output) interfaces 174.
In some embodiments, the DRAM 150 includes a Refresh Credit mode that allow for the DRAM to catch up on or get further ahead on refresh cycles for the memory controller 100. In some embodiments, the Refresh Credit mode is enabled using a mode register bit of the available register bits 165. In some embodiments, the refresh credit mode may be enabled or disabled by the memory controller 100 via performance of a mode register set write operation.
If the Refresh Credit mode is enabled, then the memory controller may provide a
Self-Refresh command 125 that includes data to inform the DRAM if controller has any postponed or pulled-in refreshes, and the number of such postponed or pulled-in refreshes. In some embodiments, the Self-Refresh command may be as illustrated in Figure 2.
In some embodiments, while in the Self-Refresh mode, the DRAM is to perform additional refresh cycles to enable catching up or getting ahead on a certain number of refresh cycles. In some embodiments, the Refresh Credit is encoded by the DRAM in the mode register bits 165 upon exit from the Self-Refresh mode, wherein the memory controller 100 can access the mode register bits to determine a modified refresh status, and can then continue with refresh operations based on the modified refresh status.
Figure 2 is an illustration of a command for a self-refresh mode according to an embodiment. As illustrated in Figure 2, a Self-Refresh command 200 is based on command based entry. In some embodiments, a command is a two-cycle command over Command Address (CA) bits CA0 to CA13 for a Command Strobe (CS) (CS low (L) or high (H)) at a certain value.
In an implementation, there are six Mode Register bits defined, MRx bits 5:0. In some embodiments, a Refresh Credit mode is enabled using Mode Register MRx bit 5. If MRx bit 5 = 1 then Refresh Credit mode is enabled in DRAM. If bit 5 = 0, then the Refresh Credit mode is disabled.
In some embodiments, if MRx bit 5 is enabled, then an RC bit (illustrated as encoded in CS L, CA7) in command encoding informs DRAM if the controller has any postponed or pulled-in refreshes, wherein the number of refreshes postponed or pulled in are encoded. In a particular implementation:
RC = 0 indicates that refreshes have been pulled-in by a value of N3:N0; and RC = 1 indicates that refreshes have been postponed by a value of N3:N0.
In some embodiments, for a first portion of a refresh implementation, if refreshes have been postponed, then the DRAM will perform additional refreshes in the Self-Refresh state to catch up. In some embodiments, for a second part of a refresh implementation, the DRAM will operate to get ahead on refreshes by pulling-in up to a maximum of eight refreshes in the Self-Refresh state. In some embodiments, upon exit from the Self-Refresh mode, a DRAM is to store the number of refreshes the DRAM was able to catchup on and the additional refreshes it has performed in MRx bits 4:0.
Figure 3 is an illustration of a mode register according to an embodiment. In some embodiments, a mode register 300 includes certain mode register bits, which may be the mode register bits 165 illustrated in Figure 1.
In a particular implementation, there are six Mode Register bits defined, such register bits being MRx bits 5:0. In some embodiments, a Refresh Credit mode is enabled using Mode Register MRx Bit 5. If bit 5 = 1 then refresh credit mode is enabled in DRAM. If bit 5 = 0 then the Refresh Credit mode is disabled. In some embodiments, on Self-Refresh mode exit, the DRAM is to store data indicating a modified refresh status, the data reflecting the number of refreshes the DRAM was able to catch up on or the additional refreshes the DRAM was able to perform during the self-refresh mode. In some embodiments, the mode register bit may include a refresh credit (RC) status and a number of refreshes it was able to catch up on (N3:N0).
Thus, as illustrated in Figure 3, the bits of the memory register 300 may indicate refresh status as follows:
MR bit 5 : Refresh Credit Mode Enable
Where bit 5 = 0 for RC Mode Disabled and bit 5 = 1 for RC Mode Enabled
MR bit 4: Refresh Credit (RC)
Where RC = 0 for refreshes pulled in (advanced) and RC = 1 for refreshes still postponed (deficit)
MR bits 3:0: N3:N0
Where N3:N0 = number of refreshes either postponed or advanced
Thus, in an example, RC = 0 indicates that refreshes have been pulled-in by a value of N3:N0 (a refresh credit); and RC = 1 indicates that refreshed have been postponed by a value of N3:N0 (a remaining refresh deficit). Further, a number of refreshes that are pulled or postponed are indicated in MRx 3:0 as a value from 0 (MRx = '0000' ) to 8 (MRx = ΊΟΟΟ').
In a particular example, a value of RC with 0 or 1 and N3:N0 = '0000' would apply when the DRAM is in a state where there are no refreshes that are pulled in or postponed. This value also applies when a Self-Refresh command is issued.
In a particular DRAM implementation of a Self-Refresh state, a DRAM will perform additional refreshes to catchup within 2 x tREFI of a first 64 ms (millisecond) window only, where refreshes are issued on an average refresh interval of tREFI. In such implementation, a DRAM may be required to catchup on these extra refreshes within such first 2 x tREFI window. This requirement generally will not place any additional power delivery constraints as a result of the extra refreshes. For example, a 16 Gb (gigabit) die with required tRFC of 550 ns (nanoseconds) allows 8 additional refreshes to be performed in 550 ns x 8 = 4.4 μ8 (microseconds) because refreshes that are pulled in may be performed back to back (thus 550 ns for each refresh, or 4.4 μ8 for 8 refreshes). The tREFI value is the average refresh interval over a period of time, and tREFI may be 7.8 μ8 per the DDR3 and DDR4 JEDEC specifications.
In some embodiments, upon catching up with postposed refreshes a next process is for DRAM to get ahead utilizing pulled in (advanced) refreshes. In a particular implementation, a DRAM can pull in a maximum of eight refreshes in any rolling 64 ms (millisecond) window. In operation, the DRAM performs a fixed number of refreshes in a window, such as the 64 ms window. The maximum of eight refreshes that are pulled in are again executed in the DRAM towards a front (beginning) of the window. If a Self-Refresh exit command is received after the maximum of eight refreshes are pulled in, then the DRAM will report a status of RC = 1 and N3:N0 = '1000' in the mode register, such as illustrated in Figure 3. At end of the 64 ms window, the refreshes that are pulled in are lost. In other words, DRAM has to again execute additional 8 refreshes at the front end of the next 64 ms window. The timing of a Self-Refresh exit command within a 64 ms window will dictate on how many refreshes DRAM is allowed to pull-in.
Figure 4 is a flowchart to illustrate refresh operations for a memory controller according to an embodiment. As illustrated in Figure 4, refresh operations for the memory controller 400 includes providing refresh commands directed to a DRAM device 402, wherein the refresh commands are subject to certain minimum refresh frequency requirements, including the flexibility to postpone or pull in (advance) a certain number of refresh cycles 404.
In some embodiments, upon reaching a time for a Self-Refresh mode, the memory controller may enable a Refresh Credit mode for the DRAM (if not currently enabled) by setting a mode register bit, and determine a current refresh status with regard to postponed or advanced refresh cycles 406. In some embodiments, the memory controller is to prepare a Self-Refresh command including the number of postponed or advanced refresh cycles 408, which may, for example, be in the form of command 200 illustrated in Figure 2. In some embodiments, the memory controller is to transmit the Self-Refresh command to the DRAM 410, which may be followed by transitioning to a reduced power state 412.
In some embodiments, upon transitioning back to a full power state following the
Self-Refresh mode 420, the memory controller is to read the mode register bits of the mode register set of the DRAM (such as illustrated as mode register bits 165 in Figure 1 and as structured in the mode register 300 illustrated in Figure 3) to determine a modified refresh status 422, which may include a number of refresh cycles that remain postponed or a number of refresh cycles that are now advanced. In some embodiments, the memory controller is to continue transmission of refresh commands directed to the DRAM based on the modified refresh status 424.
Figure 5 is a flowchart to illustrate refresh operations for a DRAM device according to an embodiment. As illustrated in Figure 5, a DRAM device may receive refresh commands from a memory controller 502, wherein the refresh commands are subject to certain minimum refresh frequency requirements, the requirements including flexibility to postpone or pull in (advance) a certain number of refresh cycles, and the DRAM is to perform the refresh cycles in response to the received commands 504.
In some embodiments, upon receipt of a Self-Refresh command from the memory controller 506, if a Refresh Credit mode is currently enabled 508, the command logic of the DRAM is to determine a current refresh status from the self-refresh command 510, which command may be as illustrated as the self -refresh command 200 illustrated in Figure 2. In some embodiments, the command logic is to provide for the DRAM to perform one or more postponed memory refresh cycles (if there are existing postponed refresh cycles) and, if possible, to perform one or more additional refresh cycles 512.
In some embodiments, the control logic of the DRAM is further to encode mode register bits to indicate a modified refresh status including a current number of postponed or advanced refresh cycles after the performance of refresh cycles during the self -refresh mode 514. In some embodiments, the coding of the mode register bits may be as illustrated for mode register 300 illustrated in Figure 3. The DRAM may then complete operation in the self-refresh mode 516 and continue with normal operation, including receiving refresh commands from the memory control 502.
Figure 6 is an illustration of an apparatus or system including a memory providing a refresh credit mode according to an embodiment. In this illustration, certain standard and well-known components that are not germane to the present description are not shown. Elements shown as separate elements may be combined, including, for example, an SoC (System on Chip) combining multiple elements on a single chip. An apparatus or system 600 may include, but is not limited to, a mobile device.
In some embodiments, the apparatus or system 600 includes processing means (or processing units) such as one or more processors 610 coupled to one or more buses or interconnects, shown in general as bus 665. The processors 610 may comprise one or more physical processors and one or more logical processors. In some embodiments, the processors may include one or more general-purpose processors or special-processor processors. The bus 665 is a communication means for transmission of data. The bus 665 is illustrated as a single bus for simplicity, but may represent multiple different interconnects or buses and the component connections to such interconnects or buses may vary. The bus 665 shown in Figure 6 is an abstraction that represents any one or more separate physical buses, point-to-point connections, or both connected by appropriate bridges, adapters, or controllers. In some embodiments, a processor 610 includes a memory controller 612 or operates with an external memory controller 614. In some embodiments, the apparatus or system 600 further comprises a random access memory (RAM) or other dynamic storage device or element as a main memory for storing information and instructions to be executed by the processors 610. Main memory may include, but is not limited to, dynamic random access memory (DRAM) 615. The DRAM may include elements illustrated for DRAM 150 in Figure 1. In some embodiments, the DRAM 615 includes control logic 616 to provide memory control operation and a mode register 617 to provide for enabling or disabling certain modes. In some embodiments, the control logic 616 includes logic to perform additional memory refreshes in a self -refresh mode when a refresh credit mode is active. In some embodiments, the DRAM is to receive a self-refresh command, such as command 200 illustrated in Figure 2, providing information regarding a current refresh status, including a number of refresh cycles that are either postponed or advanced. In some embodiments, the mode register set 617 includes mode register bits 618, wherein such bits may be utilized to provide information regarding a modified refresh status, such as illustrated in the mode register 300 illustrated in Figure 3, including a number of refresh cycles that are postponed or advanced after the end of the self- refresh mode.
In some embodiments, the memory controller 612-614 is operable to write to the mode register set 617 to enable or disable the refresh credit mode, and, with the refresh credit enabled, to provide a self-refresh command to the DRAM 615, the self -refresh command providing information regarding a current refresh status, including a number of refresh cycles that are postponed or pulled in. The operations for the refresh credit mode may be as illustrated in Figures 4 and 5.
The apparatus or system 600 also may comprise a non-volatile memory (NVM) 620; a storage device such as a solid state drive (SSD) 625; and a read only memory (ROM) 630 or other static storage device for storing static information and instructions for the processors 610. NVM 620 can include single or multi-threshold level NAND flash memory, NOR flash memory, single or multi-level phase change memory (PCM), resistive memory, three dimensional (3D) cross point memory, nanowire memory, ferroelectric transistor random access memory (FeTRAM), magnetoresistive random access memory (MRAM) memory that incorporates memristor technology, spin transfer torque random access memory (STT)-MRAM, write in place non-volatile MRAM (NVMRAM) such as phase change memory, and the like, including combinations thereof.
In some embodiments, the apparatus or system 600 includes one or more transmitters or receivers 640 coupled to the bus 665 to provide wired or wireless communications. In some embodiments, the apparatus or system 600 may include one or more antennae 644, such as dipole or monopole antennae, for the transmission and reception of data via wireless communication using a wireless transmitter, receiver, or both, and one or more ports 642 for the transmission and reception of data via wired communications.
Wireless communication includes, but is not limited to, Wi-Fi, Bluetooth™, near field communication, and other wireless communication standards.
In some embodiments, apparatus or system 600 includes one or more input devices 650 for the input of data, including hard and soft buttons, a joy stick, a mouse or other pointing device, a keyboard, voice command system, or gesture recognition system.
In some embodiments, the apparatus or system 600 includes an output display
655, where the display 655 may include a liquid crystal display (LCD) or any other display technology, for displaying information or content to a user. In some environments, the display 655 may include a touch-screen that is also utilized as at least a part of an input device 650. Output display 655 may further include audio output, including one or more speakers, audio output jacks, or other audio, and other output to the user.
The apparatus or system 600 may also comprise a battery or other power source 660, which may include a solar cell, a fuel cell, a charged capacitor, near field inductive coupling, power adapter, or other system or device for providing or generating power in the apparatus or system 600. The power provided by the power source 660 may be distributed as required to elements of the apparatus or system 600.
In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the described
embodiments. It will be apparent, however, to one skilled in the art that embodiments may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form. There may be intermediate structure between illustrated components. The components described or illustrated herein may have additional inputs or outputs that are not illustrated or described.
Various embodiments may include various processes. These processes may be performed by hardware components or may be embodied in computer program or machine- executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the processes.
Alternatively, the processes may be performed by a combination of hardware and software.
Portions of various embodiments may be provided as a computer program product, which may include a computer-readable medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) for execution by one or more processors to perform a process according to certain
embodiments. The computer-readable medium may include, but is not limited to, magnetic disks, optical disks, compact disk read-only memory (CD-ROM), and magneto-optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), magnet or optical cards, flash memory, or other type of computer-readable medium suitable for storing electronic instructions. Moreover, embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer.
Many of the methods are described in their most basic form, but processes can be added to or deleted from any of the methods and information can be added or subtracted from any of the described messages without departing from the basic scope of the present embodiments. It will be apparent to those skilled in the art that many further modifications and adaptations can be made. The particular embodiments are not provided to limit the concept but to illustrate it. The scope of the embodiments is not to be determined by the specific examples provided above but only by the claims below.
If it is said that an element "A" is coupled to or with element "B," element A may be directly coupled to element B or be indirectly coupled through, for example, element C. When the specification or claims state that a component, feature, structure, process, or characteristic A "causes" a component, feature, structure, process, or characteristic B, it means that "A" is at least a partial cause of "B" but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing "B." If the specification indicates that a component, feature, structure, process, or characteristic "may", "might", or "could" be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification or claim refers to "a" or "an" element, this does not mean there is only one of the described elements.
An embodiment is an implementation or example. Reference in the specification to "an embodiment," "one embodiment," "some embodiments," or "other embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all
embodiments. The various appearances of "an embodiment," "one embodiment," or "some embodiments" are not necessarily all referring to the same embodiments. It should be appreciated that in the foregoing description of exemplary embodiments, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various novel aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed embodiments requires more features than are expressly recited in each claim. Rather, as the following claims reflect, novel aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims are hereby expressly incorporated into this description, with each claim standing on its own as a separate embodiment.
In some embodiments, a memory device includes one or more memory banks; a mode register set, the mode register including a first set of mode register bits; and a control logic to provide control operations for the memory device, the operations including refresh operations for the one or more memory banks in a refresh credit mode. In some
embodiments, the control logic is to perform one or more extra refresh cycles in response to receipt of a self-refresh command, the self-refresh command to provide current refresh status information; and the control logic is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.
In some embodiments, the current refresh status information in the mode register command includes a number of refresh cycles that are postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
In some embodiments, the first set of mode register bits includes a number of refresh cycles that remain postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
In some embodiments, the memory device is a dynamic random access memory (DRAM) device. In some embodiments, the DRAM device is a double data rate (DDR) synchronous DRAM (SDRAM) memory device.
In some embodiments, one or more non-transitory computer-readable storage mediums having stored thereon data representing sequences of instructions that, when executed by one or more processors, cause the one or more processors to perform operations including providing a series of refresh commands to a memory by a memory controller, wherein providing the series of refresh commands may include postponing a number of refresh commands or advancing a number of refresh commands; transmitting a self -refresh command to the memory by the memory controller in a refresh credit mode, the self -refresh command including current refresh status information; upon an end of a self-refresh mode, obtaining modified refresh status information from the memory; and continuing the series of refresh commands based at least in part on the modified status information. In some embodiments, the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
In some embodiments, the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
In some embodiments, obtaining the modified refresh status information includes reading a set of register bits of the memory.
In some embodiments, reading the set of register bits of the memory includes reading a first bit to determine whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self -refresh mode.
In some embodiments, an apparatus includes means for providing a series of refresh commands to a memory by a memory controller, wherein providing the series of refresh commands may include postponing a number of refresh commands or advancing a number of refresh commands; means for transmitting a self-refresh command to the memory by the memory controller in a refresh credit mode, the self -refresh command including current refresh status information; means for obtaining modified refresh status information from the memory upon an end of a self -refresh mode; and means for continuing the series of refresh commands based at least in part on the modified status information.
In some embodiments, the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
In some embodiments, the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
In some embodiments, the means for obtaining the modified refresh status information includes means for reading a set of register bits of the memory.
In some embodiments, the means for reading the set of register bits of the memory includes means for reading a first bit to determine whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
In some embodiments, a method includes receiving a series of refresh commands at a memory from a memory controller and perform refresh cycles in response to the refresh commands; receiving a self-refresh command at the memory from the memory controller in a refresh credit mode, the self -refresh command including current refresh status information; entering a self-refresh mode in response to the self -refresh command; performing one or more extra refresh cycles during the self -refresh mode; storing modified refresh status information based at least in part on the extra refresh cycles performed in the self -refresh mode; and exiting the self-refresh mode.
In some embodiments, the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
In some embodiments, the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the performance of the one or more extra refresh cycles.
In some embodiments, storing the modified refresh status information includes storing the information in a set of register bits of the memory.
In some embodiments, storing the information in the set of register bits of the memory includes writing a first bit to indicate whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
In some embodiments, a system includes one or more processors for processing of data; a memory controller for control of computer memory; a memory device for storage of data for the one or more processors; and a transmitter and receiver for transfer of data in wireless communications, the system including one or more antennae for data transmission.
In some embodiments, the memory device includes one or more memory banks, a mode register set, the mode register including a first set of mode register bits, and a control logic to provide control operations for the memory device, including refresh operations for the one or more memory banks in a refresh credit mode. In some embodiments, the control logic is to perform one or more extra refresh cycles in response to receipt of a self -refresh command, the self-refresh command to provide current refresh status information; and the control logic is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.
In some embodiments, the current refresh status information in the mode register command includes a number of refresh cycles that are postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
In some embodiments, the first set of mode register bits includes a number of refresh cycles that remain postponed for the memory device or a number of refresh cycles that are advanced for the memory device. In some embodiments, the memory device is a dynamic random access memory (DRAM) device.
In some embodiments, the system is to enter a reduced power mode after transmission of the self-refresh command.
In some embodiments, the system further includes one or more of a display communicatively coupled to the one or more processors; or a battery communicatively coupled to the one or more processors

Claims

CLAIMS What is claimed is:
1. A memory device comprising:
one or more memory banks;
a mode register set, the mode register including a first set of mode register bits; and a control logic to provide control operations for the memory device, the operations including refresh operations for the one or more memory banks in a refresh credit mode;
wherein the control logic is to perform one or more extra refresh cycles in response to receipt of a self-refresh command, the self-refresh command to provide current refresh status information; and
wherein the control logic is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.
2. The memory device of claim 1, wherein the current refresh status information in the mode register command includes a number of refresh cycles that are postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
3. The memory device of claim 1, wherein the first set of mode register bits includes a number of refresh cycles that remain postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
4. The memory device of claim 1, wherein the memory device is a dynamic random access memory (DRAM) device.
5. The memory device of claim 4, wherein the DRAM device is a double data rate (DDR) synchronous DRAM (SDRAM) memory device.
6. One or more non-transitory computer-readable storage mediums having stored thereon data representing sequences of instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
providing a series of refresh commands to a memory by a memory controller, wherein providing the series of refresh commands may include postponing a number of refresh commands or advancing a number of refresh commands;
transmitting a self-refresh command to the memory by the memory controller in a refresh credit mode, the self-refresh command including current refresh status information; upon an end of a self-refresh mode, obtaining modified refresh status information from the memory; and
continuing the series of refresh commands based at least in part on the modified status information.
7. The medium of claim 6, wherein the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
8. The medium of claim 6, wherein the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
9. The medium of claim 8, wherein obtaining the modified refresh status information includes reading a set of register bits of the memory.
10. The medium of claim 9, wherein reading the set of register bits of the memory includes reading a first bit to determine whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
11. A method comprising:
receiving a series of refresh commands at a memory from a memory controller and performing refresh cycles in response to the refresh commands;
receiving a self-refresh command at the memory from the memory controller in a refresh credit mode, the self-refresh command including current refresh status information;
entering a self-refresh mode in response to the self-refresh command;
performing one or more extra refresh cycles during the self-refresh mode;
storing modified refresh status information based at least in part on the extra refresh cycles performed in the self-refresh mode; and
exiting the self-refresh mode.
12. The method of claim 11, wherein the current refresh status information includes a number of refresh commands that are postponed or a number of refresh commands that have been advanced.
13. The method of claim 11, wherein the modified refresh status information includes a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the performance of the one or more extra refresh cycles.
14. The method of claim 13, wherein storing the modified refresh status information includes storing the information in a set of register bits of the memory.
15. The method of claim 14, wherein storing the information in the set of register bits of the memory includes writing a first bit to indicate whether a value of a subset of the register bits represents a number of refresh commands that remain postponed or a number of refresh commands that are advanced after the self-refresh mode.
16. A system comprising:
one or more processors for processing of data;
a memory controller for control of computer memory;
a memory device for storage of data for the one or more processors; and
a transmitter and receiver for transfer of data in wireless communications, the system including one or more antennae for data transmission;
wherein the memory device includes:
one or more memory banks,
a mode register set, the mode register including a first set of mode register bits, and
a control logic to provide control operations for the memory device, including refresh operations for the one or more memory banks in a refresh credit mode;
wherein the control logic is to perform one or more extra refresh cycles in response to receipt of a self-refresh command, the self-refresh command to provide current refresh status information; and
wherein the control logic is to store information in the first set of mode register bits regarding a modified refresh status after the performance of the one or more extra refresh cycles.
17. The system of claim 16, wherein the current refresh status information in the mode register command includes a number of refresh cycles that are postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
18. The system of claim 17, wherein the first set of mode register bits includes a number of refresh cycles that remain postponed for the memory device or a number of refresh cycles that are advanced for the memory device.
19. The system of claim 16, wherein the memory device is a dynamic random access memory (DRAM) device.
20. The system of claim 16, wherein the system is to enter a reduced power mode after transmission of the self-refresh command.
PCT/US2016/059747 2015-12-09 2016-10-31 Performance of additional refresh operations during self-refresh mode WO2017099906A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680072231.0A CN108369819B (en) 2015-12-09 2016-10-31 Execution of additional refresh operations during self-refresh mode
EP16873531.4A EP3387649A4 (en) 2015-12-09 2016-10-31 Performance of additional refresh operations during self-refresh mode

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562265054P 2015-12-09 2015-12-09
US62/265,054 2015-12-09
US15/184,944 2016-06-16
US15/184,944 US9721640B2 (en) 2015-12-09 2016-06-16 Performance of additional refresh operations during self-refresh mode

Publications (1)

Publication Number Publication Date
WO2017099906A1 true WO2017099906A1 (en) 2017-06-15

Family

ID=59012971

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/059747 WO2017099906A1 (en) 2015-12-09 2016-10-31 Performance of additional refresh operations during self-refresh mode

Country Status (4)

Country Link
US (2) US9721640B2 (en)
EP (1) EP3387649A4 (en)
CN (1) CN108369819B (en)
WO (1) WO2017099906A1 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875785B2 (en) * 2015-10-01 2018-01-23 Qualcomm Incorporated Refresh timer synchronization between memory controller and memory
US9721640B2 (en) * 2015-12-09 2017-08-01 Intel Corporation Performance of additional refresh operations during self-refresh mode
US9824737B2 (en) * 2015-12-22 2017-11-21 Intel Corporation Memory circuit and method for operating a first and a second set of memory cells in direct memory access mode with refresh
KR20180047778A (en) * 2016-11-01 2018-05-10 삼성전자주식회사 Memory device with stepwise low power states
US20190243723A1 (en) * 2018-02-08 2019-08-08 Micron Technology, Inc. Backup operations from volatile to non-volatile memory
US20190243721A1 (en) * 2018-02-08 2019-08-08 Micron Technology, Inc. Backup operations from volatile to non-volatile memory
US20190243720A1 (en) * 2018-02-08 2019-08-08 Micron Technology, Inc. Backup operations from volatile to non-volatile memory
KR102544184B1 (en) 2018-08-09 2023-06-16 에스케이하이닉스 주식회사 Semiconductor memory apparatus and refresh method thereof
CN110968451B (en) 2018-09-30 2021-09-21 华为技术有限公司 Memory access technology and computer system
WO2020063735A1 (en) * 2018-09-30 2020-04-02 华为技术有限公司 Memory access technology and computer system
US10916292B1 (en) * 2019-08-28 2021-02-09 Micron Technology, Inc. Performing a refresh operation based on system characteristics
CN111158585B (en) * 2019-11-27 2023-08-01 核芯互联科技(青岛)有限公司 Memory controller refreshing optimization method, device, equipment and storage medium
CN111240621B (en) * 2020-01-06 2022-01-25 Oppo广东移动通信有限公司 Method and device for controlling display frequency of display screen and electronic equipment
US11783883B2 (en) 2020-08-31 2023-10-10 Micron Technology, Inc. Burst mode for self-refresh
US11922061B2 (en) 2020-08-31 2024-03-05 Micron Technology, Inc. Adaptive memory refresh control
KR20220031793A (en) 2020-09-03 2022-03-14 삼성전자주식회사 Memory device, memory system having the same, controller for controlling the same, and operating methed thereof
US11790974B2 (en) * 2021-11-17 2023-10-17 Micron Technology, Inc. Apparatuses and methods for refresh compliance

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167484A (en) * 1998-05-12 2000-12-26 Motorola, Inc. Method and apparatus for leveraging history bits to optimize memory refresh performance
US6930944B2 (en) * 2001-10-24 2005-08-16 Micron Technology, Inc. System and method for power saving memory refresh for dynamic random access memory devices after an extended interval
US20050265102A1 (en) 2004-05-27 2005-12-01 Remaklus Perry W Jr Method and system for providing directed bank refresh for volatile memories
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US8982654B2 (en) * 2013-07-05 2015-03-17 Qualcomm Incorporated DRAM sub-array level refresh
US9001608B1 (en) 2013-12-06 2015-04-07 Intel Corporation Coordinating power mode switching and refresh operations in a memory device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4253097B2 (en) * 1999-12-28 2009-04-08 東芝マイクロエレクトロニクス株式会社 Semiconductor memory device and data read method thereof
DE10005611A1 (en) * 2000-02-09 2001-08-30 Randolf Hoche Method and device for moving an element
JP5070656B2 (en) * 2000-12-20 2012-11-14 富士通セミコンダクター株式会社 Semiconductor memory device
JP2002373489A (en) * 2001-06-15 2002-12-26 Mitsubishi Electric Corp Semiconductor memory
CN100585732C (en) * 2004-05-27 2010-01-27 高通股份有限公司 Method and system for providing orientation bank refresh for volatile memories
US7184350B2 (en) * 2004-05-27 2007-02-27 Qualcomm Incorporated Method and system for providing independent bank refresh for volatile memories
WO2013095448A1 (en) * 2011-12-21 2013-06-27 Intel Corporationu Dram compression scheme to reduce power consumption in motion compensation and display refresh
US9235406B2 (en) * 2012-04-24 2016-01-12 Apple Inc. Methods and apparatus for user identity module update without service interruption
US9251048B2 (en) * 2012-10-19 2016-02-02 International Business Machines Corporation Memory page management
US9032141B2 (en) * 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9721640B2 (en) * 2015-12-09 2017-08-01 Intel Corporation Performance of additional refresh operations during self-refresh mode

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167484A (en) * 1998-05-12 2000-12-26 Motorola, Inc. Method and apparatus for leveraging history bits to optimize memory refresh performance
US6930944B2 (en) * 2001-10-24 2005-08-16 Micron Technology, Inc. System and method for power saving memory refresh for dynamic random access memory devices after an extended interval
US20050265102A1 (en) 2004-05-27 2005-12-01 Remaklus Perry W Jr Method and system for providing directed bank refresh for volatile memories
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US8982654B2 (en) * 2013-07-05 2015-03-17 Qualcomm Incorporated DRAM sub-array level refresh
US9001608B1 (en) 2013-12-06 2015-04-07 Intel Corporation Coordinating power mode switching and refresh operations in a memory device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JEDEC, DDR3 SDRAM STANDARD, 31 July 2012 (2012-07-31)
See also references of EP3387649A4

Also Published As

Publication number Publication date
US10522207B2 (en) 2019-12-31
CN108369819A (en) 2018-08-03
EP3387649A4 (en) 2020-03-04
EP3387649A1 (en) 2018-10-17
US9721640B2 (en) 2017-08-01
CN108369819B (en) 2022-05-13
US20170169880A1 (en) 2017-06-15
US20180047439A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
US10522207B2 (en) Performance of additional refresh operations during self-refresh mode
US10636476B2 (en) Row hammer mitigation with randomization of target row selection
US9767050B2 (en) Memory systems that adjust an auto-refresh operation responsive to a self-refresh operation history
US20170140810A1 (en) Memory device and memory system including the same for controlling collision between access operation and refresh operation
CN107533509B (en) Memory device specific self-refresh entry and exit
KR102329673B1 (en) Memory device performing hammer refresh operation and memory system including the same
US10529406B2 (en) Memory device and refresh method thereof
CN110023914B (en) Programmable data patterns for repeated writing to memory
DE102020104367A1 (en) REFRESH COMMAND CONTROL FOR A HOST SUPPORT OF A ROWHAMMER MITIGATION
US10115448B2 (en) Memory device for refresh and memory system including the same
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
US20130282973A1 (en) Volatile memory device and a memory controller
US10614871B2 (en) Semiconductor devices and semiconductor systems including the semiconductor devices
KR20160056056A (en) Semiconductor memory device and memory system including the same
US9953694B2 (en) Memory controller-controlled refresh abort
US9824743B2 (en) Memory refresh operation with page open
US20220066700A1 (en) Adaptive Memory Refresh Control
CN108701105B (en) Storage device, storage method and storage system
WO2017052960A1 (en) Technologies for clearing a page of memory
US20180151218A1 (en) Method of operating memory device and method of operating memory system
US20220374168A1 (en) Memory with memory-initiated command insertion, and associated systems, devices, and methods
US9236112B1 (en) Apparatuses and methods for reducing cycle times in successive memory accesses
US10185510B2 (en) Bank interleaving controller and semiconductor device including the same
US20180293189A1 (en) Memory manager for autonomous memory device
US9711198B1 (en) Semiconductor device for control read or write operation using a bank address and system including the same

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16873531

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE