US10896715B2 - Dynamic memory refresh interval to reduce bandwidth penalty - Google Patents

Dynamic memory refresh interval to reduce bandwidth penalty Download PDF

Info

Publication number
US10896715B2
US10896715B2 US16/010,211 US201816010211A US10896715B2 US 10896715 B2 US10896715 B2 US 10896715B2 US 201816010211 A US201816010211 A US 201816010211A US 10896715 B2 US10896715 B2 US 10896715B2
Authority
US
United States
Prior art keywords
memory
data
regions
frequency
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US16/010,211
Other versions
US20190385666A1 (en
Inventor
Gil Golov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Priority to US16/010,211 priority Critical patent/US10896715B2/en
Assigned to MICRON TECHNOLOGY, INC. reassignment MICRON TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GOLOV, GIL
Assigned to MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT reassignment MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT Assignors: MICRON TECHNOLOGY, INC.
Assigned to MICRON TECHNOLOGY, INC. reassignment MICRON TECHNOLOGY, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Publication of US20190385666A1 publication Critical patent/US20190385666A1/en
Priority to US17/149,709 priority patent/US11657865B2/en
Application granted granted Critical
Publication of US10896715B2 publication Critical patent/US10896715B2/en
Priority to US18/307,734 priority patent/US20240096393A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered 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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Definitions

  • At least some embodiments disclosed herein relate to memory systems in general, and more particularly, reduction of bandwidth penalty using dynamic memory refresh intervals.
  • Dynamic memories such as Dynamic Random Access Memory (DRAM) use memory units where the quality of information stored in the memory units can degrade in a short period of time even when the memory units are continuously powered.
  • DRAM Dynamic Random Access Memory
  • DRAM has capacitors integrated in an integrated circuit.
  • a capacitor in a memory unit of DRAM can be charged or discharged to represent respectively two different values of a bit.
  • the electric charge on such a capacitor can leak off, resulting in degradation of the quality of the information stored in the memory unit.
  • charge leakage may cause the capacitor of the memory unit to appear discharged, even though the capacitor is charged before the period of time.
  • the charge leakage can change the value stored in the memory unit and thus cause data corruption.
  • a memory refresh circuit can be used to periodically refresh the data stored in the DRAM. To refresh the data, the memory refresh circuit causes the reading of the stored data from the DRAM and re-writes the data back to the DRAM. Thus, the capacitors of the memory units can be charged or discharged periodically according to the data stored in the memory units to prevent data corruption.
  • Charge leakage can be a function of the temperature of the memory device.
  • the capacitors of DRAM memory units can retrain charge longer at low temperatures. Under some conditions most of the data in DRAM can be recovered without being refreshed for several minutes. However, to guarantee recovery of the stored data, DRAM is typically refreshed at a short time interval, such as 64 milliseconds.
  • FIG. 1 illustrates an example memory system having a refreshing control in accordance with some embodiments of the present disclosure.
  • FIG. 2 illustrates an example of data storage policies in accordance with some embodiments of the present disclosure.
  • FIG. 3 is a flow diagram of an example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure.
  • FIG. 4 is a flow diagram of another example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure.
  • FIG. 5 is a block diagram of an example computer system in which embodiments of the present disclosure can operate.
  • At least some aspects of the present disclosure are directed to the reduction of memory refresh rate based on error tolerance characteristics of the data stored in the memory.
  • Refreshing memory can cause a memory bandwidth penalty. For example, when an external DRAM controller sends to a DRAM device a refresh command to refresh a bank of DRAM memory units, the DRAM cannot deliver data during the time period of memory refreshing operations. A higher temperature requires a higher refresh rate, which cause even higher degradation of DRAM bandwidth performance. Failing to refresh the DRAM at a recommended refresh rate increases the probability of error/data corruption.
  • At least some aspects of the present disclosure address the above and other deficiencies by selectively reducing refresh rates of memory portions based on the error tolerance characteristics of the data stored in the memory.
  • an external DRAM controller can use different refresh rates for different banks of memory units to allow trade-off between performance and probability of error/data corruption.
  • data that is less sensitive to error/corruption can be refreshed at a rate lower than for data that is sensitive to error/corruption.
  • Refreshing at a lower frequency can reduce bandwidth penalty caused by memory refreshing operations and improve memory access performance.
  • graphics and music can be stored on a DRAM of an infotainment system.
  • the use of such graphics and music in the infotainment system can be insensitive to a few isolated errors.
  • the banks of DRAM memory units that store such error-insensitive information can have a relaxed refresh rate with lower bandwidth penalty.
  • software code and variables can be very sensitive to error/corruption.
  • banks of DRAM memory units that store such error-insensitive information can have a higher refresh rate, with higher bandwidth penalty, to ensure data reliability.
  • FIG. 1 illustrates an example memory system having a refreshing control 107 in accordance with some embodiments of the present disclosure.
  • a controller 101 has the refreshing control 107 that can send refresh commands to a dynamic memory system 105 over a bus 103 .
  • the dynamic memory system 105 can have separate memory regions 111 , 113 , . . . , 119 that can be separately refreshed.
  • each memory region 111 , 113 , . . . , 119 can include one or more banks of memory units; and the refresh control 107 can send a refresh command through the bus 103 to each bank of memory units to refresh the respective bank of memory units.
  • the refresh command is transmitted to the bank of the memory units, at least the bank of the memory units is not usable to read or write data in individual memory units until the refreshing operations in the bank are completed.
  • the memory units in the dynamic memory system 105 can be DRAM memory cells that are periodically refreshed to avoid data corruption caused by charge leak.
  • data of different types is stored in different memory regions 111 , 113 , . . . , 119 , such that the refresh rates of the memory regions 111 , 113 , . . . , 119 can be customized based on the error tolerance characteristics of the data stored in the memory regions 111 , 113 , . . . , 119 and/or the bandwidth demands.
  • data can be stored in the memory regions 111 , 113 , . . . , 119 using the data storage policies 131 illustrated in FIG. 2
  • FIG. 2 illustrates an example of data storage policies 131 in accordance with some embodiments of the present disclosure.
  • memory regions 111 , 113 , . . . , 119 are associated with data types 121 , 123 , . . . , 129 respectively.
  • Examples of different data types include software, variables, graphics/images of graphical user interface (GUI), icons, music, video, etc.
  • GUI graphical user interface
  • different data types 121 , 123 , . . . , 129 can have different data reliability requirements.
  • different thresholds of error/corruption probabilities can be specified for different data types.
  • the refreshing can be considered sufficient.
  • the data refresh rates of the memory regions 111 , 113 , . . . , 119 can be determined from the thresholds of error/corruption probabilities of the data types 121 , 123 , . . . , 129 .
  • the dynamic memory system 105 can have one or more temperature sensors that measure the temperature(s) of the memory regions 111 , 113 , . . . , 119 .
  • the error/corruption probability of a memory unit is a function of the refresh rate. The higher the refresh rate, the lower the error/corruption probability of the memory unit. When the refreshing rate is higher than a particular value, the memory unit can be considered to be guaranteed to be error free.
  • a threshold refresh rate can be determined; and the memory unit can be refreshed at the threshold refresh rate for the temperature, or higher, to ensure that the reliability requirement of the data stored in the memory unit is met.
  • FIG. 3 is a flow diagram of an example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure.
  • the method of FIG. 3 can be implemented in the system of FIG. 1 using the data storage policies of FIG. 2 .
  • the method of FIG. 3 can be performed by processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof.
  • the method of FIG. 3 is performed at least in part by the refreshing control 107 and/or the controller 101 of FIG. 1 .
  • the order of the processes can be modified.
  • the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.
  • the controller 101 stores data of a plurality of types 121 , 123 , . . . , 129 in respectively a plurality of memory regions 111 , 113 , . . . , 119 of a dynamic memory system 105 .
  • the types 121 , 123 , . . . , 129 can include application, variable, images, music, videos, etc.
  • the memory regions 111 , 113 , . . . , 119 can be separated as banks of memory units that can be refreshed separately.
  • the refresh control 107 determines a plurality of refresh rates based on the plurality of types 121 , 123 , . . . , 129 of data. For example, at a given temperature of the dynamic memory system 105 , the refresh control 107 determines the refresh rates of the data types 121 , 123 , . . . , 129 to meet the threshold error/corruption probability requirements of the data types 121 , 123 , . . . , 129 .
  • a predetermined look up table can be used to store the minimal refresh rates of the data types 121 , 123 , . . . , 129 at a set of temperatures.
  • the look up table can be used to determine the minimal refresh rates of the data types 121 , 123 , . . . , 129 at the current operating temperature of the dynamic memory system 105 .
  • an empirical formula or a look up table can be used to represent the relation between a refresh rate and an expected error/corruption probability of a memory region refreshed at the refresh rate when the memory region is at a specific temperature.
  • the refreshing control 107 can compute a minimum refresh rate that is required to meet the threshold of error/corruption probability.
  • the refreshing control 107 can compute the different minimum refresh rates for the data types 121 , 123 , . . . , 129 at the current operating temperature of the dynamic memory system 105 .
  • the refresh control 107 sends refresh commands to refresh the plurality of memory regions 111 , 113 , . . . , 119 according to the plurality of refresh rates respectively determined for the data types 121 , 123 , . . . , 129 .
  • FIG. 4 is a flow diagram of an example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure.
  • the method of FIG. 4 can be implemented in the system of FIG. 1 using the data storage policies of FIG. 2 .
  • the method of FIG. 4 can be performed by processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof.
  • the method of FIG. 4 is performed at least in part by the refreshing control 107 and/or the controller 101 of FIG. 1 .
  • the order of the processes can be modified.
  • the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.
  • the controller 101 stores data of a predetermined type 121 , 123 , . . . , or 129 in a memory region 111 , 113 , . . . , or 119 of a dynamic memory system 105 .
  • the refresh control 107 refreshes the memory region 111 , 113 , . . . , or 119 at a first rate.
  • the refresh control 107 can send refresh commands over the bus 103 to each bank of memory units in the memory region 111 , 113 , . . . , or 119 at a time interval determined by the first rate.
  • the first rate can be high enough that the data stored in the memory region 111 , 113 , . . . , or 119 is considered to be guaranteed to be free of error/corruption.
  • the refreshing control 107 determines a need to reduce bandwidth penalty caused by refreshing the memory region 111 , 113 , . . . , or 119 .
  • the refreshing control 107 can monitor the bandwidth usage of the memory region 111 , 113 , . . . , or 119 .
  • the refreshing control 107 can implement reduction of the bandwidth penalty caused by memory refreshing.
  • the refreshing control 107 reduces from the first rate to a second rate, where the second rate is limited by the predetermined type 121 , 123 , . . . , or 129 of the data stored in the memory region 111 , 113 , . . . , or 119 .
  • Different data types 121 , 123 , . . . , and 129 allow different degrees of reduction.
  • the lowest acceptable refresh rate of the predetermined data type 121 , 123 , . . . , or 129 is determined by the acceptable error/corruption probability that can be tolerated for the data of the predetermined type 121 , 123 , . . . , or 129 for the current temperature of the memory region 111 , 113 , . . . , or 119 .
  • the refresh control 107 refreshes the memory region 111 , 113 , . . . , or 119 at the second rate.
  • the refreshing control 107 can return to refreshing the memory region 111 , 113 , . . . , or 119 at the first rate.
  • the present disclosure includes a computing system that has a dynamic memory system 105 and a controller 101 .
  • the dynamic memory system 105 is configured to store a plurality of types 121 , 123 , . . . , 129 of data in a plurality of memory regions 111 , 113 , . . . , 119 respectively.
  • the controller 101 is coupled to the dynamic memory system 105 via a communication channel, such as a bus 103 , and is operatively to monitor usages of memory access bandwidth of memory regions 111 , 113 , . . . , 119 to reach a decision to reduce memory bandwidth used by refreshing the dynamic memory system 105 .
  • the controller 101 reduces a refresh rate of at least one of the plurality of memory regions based on a type of data stored in the one of the plurality of memory regions.
  • each of the plurality of memory regions 111 , 113 , . . . , 119 includes dynamic random access memory (DRAM); and the controller 101 refreshes a memory region 111 , 113 , . . . , or 119 at a reduced rate to reduce the memory bandwidth used by refreshing the dynamic memory system 105 .
  • DRAM dynamic random access memory
  • refreshing a memory location at a rate includes repeating a refreshing operation a time interval determined by the rate or frequency.
  • the refreshing operation includes reading data from the memory location and writing the data back to the memory location.
  • the controller 101 can refresh a first memory region 111 at a first frequency and refresh a second memory region 113 at a second frequency different from the first frequency.
  • the first memory region 111 stores data of a first type 121 ;
  • the second memory region 113 stores data of a second type 123 ; and the first frequency is lower than the second frequency when data of the first type 121 can tolerate a higher probability of error or data corruption than data of the second type 123 .
  • there can be a threshold frequency such that when a memory region 111 , 113 , . . . , or 119 is refreshed at or above the threshold frequency, the data in the memory region 111 , 113 , . . .
  • the first frequency can be reduced to below the threshold frequency to tolerate a level of data corruption in exchange for performance gain resulting from the reduced refresh frequency.
  • the second frequency can be no less than the threshold to fully prevent data corruption.
  • the first data type 121 can be images, icons, music, or video that can tolerate a level of data corruption; and the second data type 123 can be instructions or variables that should be error free.
  • the data of the first type 121 can represent media consumed a media player; and the data of the second type 123 can contain instructions and variables of applications.
  • the present disclosure includes a method in the computing system.
  • the method can include identifying, by the controller 101 coupled to the dynamic memory system 105 , a plurality of memory regions 111 , 115 , . . . 119 in the dynamic memory system 105 as being used to store a plurality of types 121 , 123 , . . . , 129 of data respectively.
  • the method can further includes reaching a decision, by the controller 107 , to reduce memory bandwidth of used to refresh the dynamic memory system 105 and in response to the decision, reducing, by the controller 101 , a rate to refresh at least one memory region 111 , 113 , . . . , or 119 based on a type 121 , 123 , . . . , or 129 of data stored in the one memory region 111 , 113 , . . . , or 119 .
  • the method can include sending, by the controller 101 , refresh commands to the memory region 111 , 113 , . . . , or 119 at a reduced rate.
  • a refresh command sent to the memory region 111 , 113 , . . . , or 119 can cause the dynamic memory system 105 to read data from the memory region 111 , 113 , . . . , or 119 and to write the data back to the memory region 111 , 113 , . . . , or 119 .
  • the memory regions 111 , 113 , . . . , and 119 can be separated by banks of memory units, where each bank is refreshed together.
  • each bank contains a set of memory cells of dynamic random access memory.
  • the method can include partitioning memory in the dynamic memory system 105 into the plurality of regions 111 , 113 , . . . , 119 for associated with the plurality of types 121 , 123 , . . . , 129 of data.
  • the method can further include storing data in the plurality of regions 111 , 113 , . . . , 119 according to types 121 , 123 , . . . , 129 of the data.
  • the present disclosure includes computing apparatuses performing any of the methods and non-transitory computer-readable storage media storing instructions that, when executed by a processing device, cause the processing device to perform any of the methods.
  • FIG. 5 illustrates an example machine of a computer system 200 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, can be executed.
  • the computer system 200 can correspond to a host system that includes, is coupled to, or utilizes a dynamic memory system (e.g., the dynamic memory system 105 of FIG. 1 ) or can be used to perform the operations of a refreshing control 107 (e.g., to execute instructions to perform operations corresponding to the refresh control 107 described with reference to FIGS. 1-4 ).
  • the machine can be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet.
  • the machine can operate in the capacity of a server or a client machine in client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.
  • the machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB set-top box
  • STB set-top box
  • a cellular telephone a web appliance
  • server a server
  • network router a network router
  • switch or bridge or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • machine shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • the example computer system 200 includes a processing device 202 , a main memory 204 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), static random access memory (SRAM), etc.), and a data storage system 218 , which communicate with each other via a bus 230 (which can include multiple buses).
  • main memory 204 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), static random access memory (SRAM), etc.
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • RDRAM Rambus DRAM
  • SRAM static random access memory
  • Processing device 202 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 202 can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 202 is configured to execute instructions 226 for performing the operations and steps discussed herein.
  • the computer system 200 can further include a network interface device 208 to communicate over the network 220 .
  • the data storage system 218 can include a machine-readable storage medium 224 (also known as a computer-readable medium) on which is stored one or more sets of instructions 226 or software embodying any one or more of the methodologies or functions described herein.
  • the instructions 226 can also reside, completely or at least partially, within the main memory 204 and/or within the processing device 202 during execution thereof by the computer system 200 , the main memory 204 and the processing device 202 also constituting machine-readable storage media.
  • the machine-readable storage medium 224 , data storage system 218 , and/or main memory 204 can correspond to the memory system 105 of FIG. 1 .
  • the instructions 226 include instructions to implement functionality corresponding to a refresh control 107 (e.g., the refresh control 107 described with reference to FIGS. 1-4 ).
  • a refresh control 107 e.g., the refresh control 107 described with reference to FIGS. 1-4
  • the machine-readable storage medium 224 is shown in an example embodiment to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media that store the one or more sets of instructions.
  • the term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
  • the term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
  • the present disclosure also relates to an apparatus for performing the operations herein.
  • This apparatus can be specially constructed for the intended purposes, or it can include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
  • the present disclosure can be provided as a computer program product, or software, that can include a machine-readable medium having stored thereon instructions, which can be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure.
  • a machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer).
  • a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory components, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Dram (AREA)

Abstract

A dynamic memory system having multiple memory regions respectively storing multiple types of data. A controller coupled to the dynamic memory system via a communication channel and operatively to: monitor usage of a communication bandwidth of the communication channel; determine to reduce memory bandwidth penalty caused by refreshing the dynamic memory system; and in response, reduce a refresh rate of at least one of the memory regions based on a type of data stored in the respective memory region.

Description

FIELD OF THE TECHNOLOGY
At least some embodiments disclosed herein relate to memory systems in general, and more particularly, reduction of bandwidth penalty using dynamic memory refresh intervals.
BACKGROUND
Dynamic memories, such as Dynamic Random Access Memory (DRAM), use memory units where the quality of information stored in the memory units can degrade in a short period of time even when the memory units are continuously powered.
For example, DRAM has capacitors integrated in an integrated circuit. A capacitor in a memory unit of DRAM can be charged or discharged to represent respectively two different values of a bit. However, the electric charge on such a capacitor can leak off, resulting in degradation of the quality of the information stored in the memory unit. After a period of time, charge leakage may cause the capacitor of the memory unit to appear discharged, even though the capacitor is charged before the period of time. Thus, the charge leakage can change the value stored in the memory unit and thus cause data corruption.
To prevent data corruption, a memory refresh circuit can be used to periodically refresh the data stored in the DRAM. To refresh the data, the memory refresh circuit causes the reading of the stored data from the DRAM and re-writes the data back to the DRAM. Thus, the capacitors of the memory units can be charged or discharged periodically according to the data stored in the memory units to prevent data corruption.
Charge leakage can be a function of the temperature of the memory device. The capacitors of DRAM memory units can retrain charge longer at low temperatures. Under some conditions most of the data in DRAM can be recovered without being refreshed for several minutes. However, to guarantee recovery of the stored data, DRAM is typically refreshed at a short time interval, such as 64 milliseconds.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure.
FIG. 1 illustrates an example memory system having a refreshing control in accordance with some embodiments of the present disclosure.
FIG. 2 illustrates an example of data storage policies in accordance with some embodiments of the present disclosure.
FIG. 3 is a flow diagram of an example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure.
FIG. 4 is a flow diagram of another example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure.
FIG. 5 is a block diagram of an example computer system in which embodiments of the present disclosure can operate.
DETAILED DESCRIPTION
At least some aspects of the present disclosure are directed to the reduction of memory refresh rate based on error tolerance characteristics of the data stored in the memory.
Refreshing memory can cause a memory bandwidth penalty. For example, when an external DRAM controller sends to a DRAM device a refresh command to refresh a bank of DRAM memory units, the DRAM cannot deliver data during the time period of memory refreshing operations. A higher temperature requires a higher refresh rate, which cause even higher degradation of DRAM bandwidth performance. Failing to refresh the DRAM at a recommended refresh rate increases the probability of error/data corruption.
At least some aspects of the present disclosure address the above and other deficiencies by selectively reducing refresh rates of memory portions based on the error tolerance characteristics of the data stored in the memory. For example, an external DRAM controller can use different refresh rates for different banks of memory units to allow trade-off between performance and probability of error/data corruption.
For example, data that is less sensitive to error/corruption can be refreshed at a rate lower than for data that is sensitive to error/corruption. Refreshing at a lower frequency can reduce bandwidth penalty caused by memory refreshing operations and improve memory access performance.
For instance, graphics and music can be stored on a DRAM of an infotainment system. The use of such graphics and music in the infotainment system can be insensitive to a few isolated errors. Thus, the banks of DRAM memory units that store such error-insensitive information can have a relaxed refresh rate with lower bandwidth penalty. However, software code and variables can be very sensitive to error/corruption. Thus, banks of DRAM memory units that store such error-insensitive information can have a higher refresh rate, with higher bandwidth penalty, to ensure data reliability.
FIG. 1 illustrates an example memory system having a refreshing control 107 in accordance with some embodiments of the present disclosure.
In FIG. 1, a controller 101 has the refreshing control 107 that can send refresh commands to a dynamic memory system 105 over a bus 103.
The dynamic memory system 105 can have separate memory regions 111, 113, . . . , 119 that can be separately refreshed. For example, each memory region 111, 113, . . . , 119 can include one or more banks of memory units; and the refresh control 107 can send a refresh command through the bus 103 to each bank of memory units to refresh the respective bank of memory units. When the refresh command is transmitted to the bank of the memory units, at least the bank of the memory units is not usable to read or write data in individual memory units until the refreshing operations in the bank are completed.
For example, the memory units in the dynamic memory system 105 can be DRAM memory cells that are periodically refreshed to avoid data corruption caused by charge leak.
Preferably, data of different types is stored in different memory regions 111, 113, . . . , 119, such that the refresh rates of the memory regions 111, 113, . . . , 119 can be customized based on the error tolerance characteristics of the data stored in the memory regions 111, 113, . . . , 119 and/or the bandwidth demands.
For example, data can be stored in the memory regions 111, 113, . . . , 119 using the data storage policies 131 illustrated in FIG. 2
FIG. 2 illustrates an example of data storage policies 131 in accordance with some embodiments of the present disclosure.
For example, memory regions 111, 113, . . . , 119 are associated with data types 121, 123, . . . , 129 respectively. Examples of different data types include software, variables, graphics/images of graphical user interface (GUI), icons, music, video, etc.
In general, different data types 121, 123, . . . , 129 can have different data reliability requirements. For example, different thresholds of error/corruption probabilities can be specified for different data types. When data of a given type is refreshed such that the probability of error/correction in the data is below its threshold, the refreshing can be considered sufficient. Thus, the data refresh rates of the memory regions 111, 113, . . . , 119 can be determined from the thresholds of error/corruption probabilities of the data types 121, 123, . . . , 129.
For example, the dynamic memory system 105 can have one or more temperature sensors that measure the temperature(s) of the memory regions 111, 113, . . . , 119. At a given temperature, the error/corruption probability of a memory unit is a function of the refresh rate. The higher the refresh rate, the lower the error/corruption probability of the memory unit. When the refreshing rate is higher than a particular value, the memory unit can be considered to be guaranteed to be error free. Thus, for a threshold of error/corruption probability that is accepted for the data stored in the memory unit, a threshold refresh rate can be determined; and the memory unit can be refreshed at the threshold refresh rate for the temperature, or higher, to ensure that the reliability requirement of the data stored in the memory unit is met.
FIG. 3 is a flow diagram of an example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure. For example, the method of FIG. 3 can be implemented in the system of FIG. 1 using the data storage policies of FIG. 2.
The method of FIG. 3 can be performed by processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof. In some embodiments, the method of FIG. 3 is performed at least in part by the refreshing control 107 and/or the controller 101 of FIG. 1. Although shown in a particular sequence or order, unless otherwise specified, the order of the processes can be modified. Thus, the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.
At block 131, the controller 101 stores data of a plurality of types 121, 123, . . . , 129 in respectively a plurality of memory regions 111, 113, . . . , 119 of a dynamic memory system 105. For example, the types 121, 123, . . . , 129 can include application, variable, images, music, videos, etc. For example, the memory regions 111, 113, . . . , 119 can be separated as banks of memory units that can be refreshed separately.
At block 133, the refresh control 107 determines a plurality of refresh rates based on the plurality of types 121, 123, . . . , 129 of data. For example, at a given temperature of the dynamic memory system 105, the refresh control 107 determines the refresh rates of the data types 121, 123, . . . , 129 to meet the threshold error/corruption probability requirements of the data types 121, 123, . . . , 129.
For example, a predetermined look up table can be used to store the minimal refresh rates of the data types 121, 123, . . . , 129 at a set of temperatures. The look up table can be used to determine the minimal refresh rates of the data types 121, 123, . . . , 129 at the current operating temperature of the dynamic memory system 105.
For example, an empirical formula or a look up table can be used to represent the relation between a refresh rate and an expected error/corruption probability of a memory region refreshed at the refresh rate when the memory region is at a specific temperature. Thus, at the current temperature of the dynamic memory system 105 and for a given threshold of error/corruption probability, the refreshing control 107 can compute a minimum refresh rate that is required to meet the threshold of error/corruption probability. When the data types 121, 123, . . . , 129 have different thresholds of error/corruption probability, the refreshing control 107 can compute the different minimum refresh rates for the data types 121, 123, . . . , 129 at the current operating temperature of the dynamic memory system 105.
At block 135, the refresh control 107 sends refresh commands to refresh the plurality of memory regions 111, 113, . . . , 119 according to the plurality of refresh rates respectively determined for the data types 121, 123, . . . , 129.
FIG. 4 is a flow diagram of an example method to control refreshing of a memory system in accordance with some embodiments of the present disclosure. For example, the method of FIG. 4 can be implemented in the system of FIG. 1 using the data storage policies of FIG. 2.
The method of FIG. 4 can be performed by processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof. In some embodiments, the method of FIG. 4 is performed at least in part by the refreshing control 107 and/or the controller 101 of FIG. 1. Although shown in a particular sequence or order, unless otherwise specified, the order of the processes can be modified. Thus, the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.
At block 151, the controller 101 stores data of a predetermined type 121, 123, . . . , or 129 in a memory region 111, 113, . . . , or 119 of a dynamic memory system 105.
At block 153, the refresh control 107 refreshes the memory region 111, 113, . . . , or 119 at a first rate. For example, the refresh control 107 can send refresh commands over the bus 103 to each bank of memory units in the memory region 111, 113, . . . , or 119 at a time interval determined by the first rate. For example, the first rate can be high enough that the data stored in the memory region 111, 113, . . . , or 119 is considered to be guaranteed to be free of error/corruption.
At block 155, the refreshing control 107 determines a need to reduce bandwidth penalty caused by refreshing the memory region 111, 113, . . . , or 119. For example, the refreshing control 107 can monitor the bandwidth usage of the memory region 111, 113, . . . , or 119. When the reduction of bandwidth penalty can improve the memory access performance of the memory region 111, 113, . . . , or 119 to meet the demand, the refreshing control 107 can implement reduction of the bandwidth penalty caused by memory refreshing.
At block 157, the refreshing control 107 reduces from the first rate to a second rate, where the second rate is limited by the predetermined type 121, 123, . . . , or 129 of the data stored in the memory region 111, 113, . . . , or 119. Different data types 121, 123, . . . , and 129 allow different degrees of reduction. In some instances, the lowest acceptable refresh rate of the predetermined data type 121, 123, . . . , or 129 is determined by the acceptable error/corruption probability that can be tolerated for the data of the predetermined type 121, 123, . . . , or 129 for the current temperature of the memory region 111, 113, . . . , or 119.
At block 159, the refresh control 107 refreshes the memory region 111, 113, . . . , or 119 at the second rate.
When there is no need to reduce the bandwidth penalty caused by refreshing the memory region 111, 113, . . . , or 119, the refreshing control 107 can return to refreshing the memory region 111, 113, . . . , or 119 at the first rate.
In one aspect, the present disclosure includes a computing system that has a dynamic memory system 105 and a controller 101. The dynamic memory system 105 is configured to store a plurality of types 121, 123, . . . , 129 of data in a plurality of memory regions 111, 113, . . . , 119 respectively. The controller 101 is coupled to the dynamic memory system 105 via a communication channel, such as a bus 103, and is operatively to monitor usages of memory access bandwidth of memory regions 111, 113, . . . , 119 to reach a decision to reduce memory bandwidth used by refreshing the dynamic memory system 105. In response to the decision, the controller 101 reduces a refresh rate of at least one of the plurality of memory regions based on a type of data stored in the one of the plurality of memory regions.
For example, each of the plurality of memory regions 111, 113, . . . , 119 includes dynamic random access memory (DRAM); and the controller 101 refreshes a memory region 111, 113, . . . , or 119 at a reduced rate to reduce the memory bandwidth used by refreshing the dynamic memory system 105.
In general, refreshing a memory location at a rate includes repeating a refreshing operation a time interval determined by the rate or frequency. The refreshing operation includes reading data from the memory location and writing the data back to the memory location.
For example, the controller 101 can refresh a first memory region 111 at a first frequency and refresh a second memory region 113 at a second frequency different from the first frequency. The first memory region 111 stores data of a first type 121; the second memory region 113 stores data of a second type 123; and the first frequency is lower than the second frequency when data of the first type 121 can tolerate a higher probability of error or data corruption than data of the second type 123. At a current operating temperature of the dynamic memory system 105, there can be a threshold frequency such that when a memory region 111, 113, . . . , or 119 is refreshed at or above the threshold frequency, the data in the memory region 111, 113, . . . , or 119 can be considered to be guaranteed to be free of error or corruption. Refreshing the memory region 111, 113, . . . , or 119 below the threshold frequency can be insufficient to prevent data corruption. In some instances, the first frequency can be reduced to below the threshold frequency to tolerate a level of data corruption in exchange for performance gain resulting from the reduced refresh frequency. The second frequency can be no less than the threshold to fully prevent data corruption.
For example, the first data type 121 can be images, icons, music, or video that can tolerate a level of data corruption; and the second data type 123 can be instructions or variables that should be error free.
For example, the data of the first type 121 can represent media consumed a media player; and the data of the second type 123 can contain instructions and variables of applications.
In another aspect, the present disclosure includes a method in the computing system.
For example, the method can include identifying, by the controller 101 coupled to the dynamic memory system 105, a plurality of memory regions 111, 115, . . . 119 in the dynamic memory system 105 as being used to store a plurality of types 121, 123, . . . , 129 of data respectively. The method can further includes reaching a decision, by the controller 107, to reduce memory bandwidth of used to refresh the dynamic memory system 105 and in response to the decision, reducing, by the controller 101, a rate to refresh at least one memory region 111, 113, . . . , or 119 based on a type 121, 123, . . . , or 129 of data stored in the one memory region 111, 113, . . . , or 119.
For example, the method can include sending, by the controller 101, refresh commands to the memory region 111, 113, . . . , or 119 at a reduced rate. For example, a refresh command sent to the memory region 111, 113, . . . , or 119 can cause the dynamic memory system 105 to read data from the memory region 111, 113, . . . , or 119 and to write the data back to the memory region 111, 113, . . . , or 119. For examples, the memory regions 111, 113, . . . , and 119 can be separated by banks of memory units, where each bank is refreshed together. For example, each bank contains a set of memory cells of dynamic random access memory.
For example, the method can include partitioning memory in the dynamic memory system 105 into the plurality of regions 111, 113, . . . , 119 for associated with the plurality of types 121, 123, . . . , 129 of data. After the memory in the dynamic memory system 105 is partitioned according to the data types 121, 123, . . . , 129, the method can further include storing data in the plurality of regions 111, 113, . . . , 119 according to types 121, 123, . . . , 129 of the data.
In one aspect, the present disclosure includes computing apparatuses performing any of the methods and non-transitory computer-readable storage media storing instructions that, when executed by a processing device, cause the processing device to perform any of the methods.
FIG. 5 illustrates an example machine of a computer system 200 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, can be executed. In some embodiments, the computer system 200 can correspond to a host system that includes, is coupled to, or utilizes a dynamic memory system (e.g., the dynamic memory system 105 of FIG. 1) or can be used to perform the operations of a refreshing control 107 (e.g., to execute instructions to perform operations corresponding to the refresh control 107 described with reference to FIGS. 1-4). In alternative embodiments, the machine can be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet. The machine can operate in the capacity of a server or a client machine in client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.
The machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer system 200 includes a processing device 202, a main memory 204 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), static random access memory (SRAM), etc.), and a data storage system 218, which communicate with each other via a bus 230 (which can include multiple buses).
Processing device 202 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 202 can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 202 is configured to execute instructions 226 for performing the operations and steps discussed herein. The computer system 200 can further include a network interface device 208 to communicate over the network 220.
The data storage system 218 can include a machine-readable storage medium 224 (also known as a computer-readable medium) on which is stored one or more sets of instructions 226 or software embodying any one or more of the methodologies or functions described herein. The instructions 226 can also reside, completely or at least partially, within the main memory 204 and/or within the processing device 202 during execution thereof by the computer system 200, the main memory 204 and the processing device 202 also constituting machine-readable storage media. The machine-readable storage medium 224, data storage system 218, and/or main memory 204 can correspond to the memory system 105 of FIG. 1.
In one embodiment, the instructions 226 include instructions to implement functionality corresponding to a refresh control 107 (e.g., the refresh control 107 described with reference to FIGS. 1-4). While the machine-readable storage medium 224 is shown in an example embodiment to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media that store the one or more sets of instructions. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. The present disclosure can refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage systems.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus can be specially constructed for the intended purposes, or it can include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description below. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the disclosure as described herein.
The present disclosure can be provided as a computer program product, or software, that can include a machine-readable medium having stored thereon instructions, which can be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory components, etc.
In the foregoing specification, embodiments of the disclosure have been described with reference to specific example embodiments thereof. It will be evident that various modifications can be made thereto without departing from the broader spirit and scope of embodiments of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims (16)

What is claimed is:
1. A method, comprising:
identifying, by a controller coupled to a dynamic memory system via a communication channel, a plurality of memory regions in the dynamic memory system, the plurality of memory regions respectively storing a plurality of types of data, wherein a first memory region in the plurality of memory regions stores user data of a first type, and a second memory region in the plurality of memory regions stores user data of a second type, and wherein the user data of the first type represents media for a media player, and the user data of the second type contains instructions of applications;
reaching a decision, by the controller, to reduce memory bandwidth used to refresh the dynamic memory system;
in response to the decision, reducing, by the controller, a rate to refresh at least one of the plurality of memory regions based on a type of user data stored in the one of the plurality of memory regions and a current temperature of the one of the plurality of memory regions;
refreshing the first memory region in the plurality of memory regions at a first frequency; and
refreshing the second memory region in the plurality of memory regions at a second frequency different from the first frequency.
2. The method of claim 1, further comprising:
refreshing the at least one of the plurality of memory regions at a reduced rate.
3. The method of claim 2, wherein the refreshing is performed by repeating a refreshing operation at a time interval determined by the reduced rate; and the refreshing operation includes:
reading data from a memory location; and
writing the data back to the memory location.
4. The method of claim 3, wherein each of the plurality of memory regions includes dynamic random access memory.
5. The method of claim 1, wherein the first frequency is lower than the second frequency.
6. The method of claim 5, wherein the first frequency is below a threshold; the second frequency is no less than the threshold; and refreshing the dynamic memory system at the second frequency is sufficient to prevent data corruption; and refreshing the dynamic memory system at the first frequency is insufficient to prevent data corruption.
7. The method of claim 5, wherein the user data of the first type is more error tolerant than the user data of the second type.
8. The method of claim 1, further comprising:
partitioning memory in the dynamic memory system into the plurality of regions pre-associated with the plurality of types of data; and
storing data in the plurality of regions according to types of the data.
9. A system, comprising:
a dynamic memory system having a plurality of memory regions respectively storing a plurality of types of data, wherein a first memory region in the plurality of memory regions stores data of a first type, and a second memory region in the plurality of memory regions stores data of a second type; and
a controller coupled to the dynamic memory system via a communication channel and operatively configured to:
monitor usages of memory access bandwidth of the plurality of memory regions;
determine to reduce memory bandwidth used by refreshing the dynamic memory system; and
reduce a refresh rate of at least one of the plurality of memory regions based on a type of data stored in the one of the plurality of memory regions and a current temperature of the one of the plurality of memory regions;
wherein each of the plurality of memory regions includes dynamic random access memory; and the controller is further configured to:
refresh the first memory region in the plurality of memory regions at a first frequency; and
refresh the second memory region in the plurality of memory regions at a second frequency different from the first frequency.
10. The system of claim 9, wherein each of the plurality of memory regions includes dynamic random access memory; and the controller is further configured to:
refresh the at least one of the plurality of memory regions at a reduced rate.
11. The system of claim 10, wherein a refreshing operation is repeated at a time interval determined by the reduced rate; and the refreshing operation includes:
reading data from a memory location; and
writing the data back to the memory location.
12. The system of claim 9, wherein the first frequency is lower than the second frequency.
13. The system of claim 12, wherein the first frequency is below a threshold; the second frequency is no less than the threshold; and refreshing the dynamic memory system at the second frequency is sufficient to prevent data corruption; and refreshing the dynamic memory system at the first frequency is insufficient to prevent data corruption.
14. The system of claim 12, wherein the data of the first type is more error tolerant than the data of the second type.
15. The system of claim 12, wherein the data of the first type represents media for a media player; and the data of the second type contains instructions of applications.
16. A non-transitory computer-readable storage medium storing instructions that, when executed by a processing device, cause the processing device to perform a method, the method comprising:
partitioning memory of a dynamic memory system into a plurality of regions pre-associated with a plurality of types of data, wherein a first memory region in a plurality of memory regions stores data of a first type, and a second memory region in the plurality of memory regions stores data of a second type, and wherein the data of the first type represents media for a media player, and the data of the second type contains instructions of applications;
storing data in the plurality of regions according to types of the data;
monitoring memory bandwidth usages of the dynamic memory system, wherein the controller refreshes the dynamic memory system;
determining to reduce bandwidth penalty caused by refreshing the dynamic memory system; and
reducing a refresh rate of at least one of the plurality of memory regions in accordance with a type of data stored in the one of the plurality of memory regions and a current temperature of the one of the plurality of memory regions.
US16/010,211 2018-06-15 2018-06-15 Dynamic memory refresh interval to reduce bandwidth penalty Active US10896715B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/010,211 US10896715B2 (en) 2018-06-15 2018-06-15 Dynamic memory refresh interval to reduce bandwidth penalty
US17/149,709 US11657865B2 (en) 2018-06-15 2021-01-14 Dynamic memory refresh interval to reduce bandwidth penalty
US18/307,734 US20240096393A1 (en) 2018-06-15 2023-04-26 Dynamic memory refresh interval to reduce bandwidth penalty

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/010,211 US10896715B2 (en) 2018-06-15 2018-06-15 Dynamic memory refresh interval to reduce bandwidth penalty

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/149,709 Continuation US11657865B2 (en) 2018-06-15 2021-01-14 Dynamic memory refresh interval to reduce bandwidth penalty

Publications (2)

Publication Number Publication Date
US20190385666A1 US20190385666A1 (en) 2019-12-19
US10896715B2 true US10896715B2 (en) 2021-01-19

Family

ID=68839359

Family Applications (3)

Application Number Title Priority Date Filing Date
US16/010,211 Active US10896715B2 (en) 2018-06-15 2018-06-15 Dynamic memory refresh interval to reduce bandwidth penalty
US17/149,709 Active US11657865B2 (en) 2018-06-15 2021-01-14 Dynamic memory refresh interval to reduce bandwidth penalty
US18/307,734 Pending US20240096393A1 (en) 2018-06-15 2023-04-26 Dynamic memory refresh interval to reduce bandwidth penalty

Family Applications After (2)

Application Number Title Priority Date Filing Date
US17/149,709 Active US11657865B2 (en) 2018-06-15 2021-01-14 Dynamic memory refresh interval to reduce bandwidth penalty
US18/307,734 Pending US20240096393A1 (en) 2018-06-15 2023-04-26 Dynamic memory refresh interval to reduce bandwidth penalty

Country Status (1)

Country Link
US (3) US10896715B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11256778B2 (en) 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
US11327551B2 (en) * 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
US11398264B2 (en) 2019-07-08 2022-07-26 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11657865B2 (en) 2018-06-15 2023-05-23 Micron Technology, Inc. Dynamic memory refresh interval to reduce bandwidth penalty
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US12111757B2 (en) 2022-10-24 2024-10-08 Hewlett Packard Enterprise Development Lp Fluid memory for high performance computing applications
US12118056B2 (en) 2019-05-03 2024-10-15 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220051744A1 (en) * 2020-08-17 2022-02-17 Mediatek Inc. Memory controller with adaptive refresh rate controlled by error bit information
CN112527207A (en) * 2020-12-18 2021-03-19 深圳市元征科技股份有限公司 Method and device for storing data in EEPROM

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385113B1 (en) * 1999-04-30 2002-05-07 Madrone Solutions, Inc Method for operating an integrated circuit having a sleep mode
US20110044119A1 (en) * 2006-04-19 2011-02-24 Walker Darryl G Semiconductor Device having variable parameter selection based on temperature and test method
US20110231601A1 (en) * 2010-03-19 2011-09-22 Microsoft Corporation Providing hardware resources having different reliabilities for use by an application
US20130128682A1 (en) * 2011-11-17 2013-05-23 International Business Machines Corporation Memory system with dynamic refreshing
US20150143198A1 (en) * 2013-11-15 2015-05-21 Qualcomm Incorporated Method and apparatus for multiple-bit dram error recovery
US20190006001A1 (en) * 2017-06-28 2019-01-03 Qualcomm Incorporated Systems and methods for improved error correction in a refreshable memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7027343B2 (en) * 2003-09-22 2006-04-11 Micron Technology Method and apparatus for controlling refresh operations in a dynamic memory device
US9055711B2 (en) * 2012-07-16 2015-06-09 HGST Netherlands B.V. System and method for maintaining data integrity on a storage medium
US9224449B2 (en) * 2013-03-11 2015-12-29 Nvidia Corporation Variable dynamic memory refresh
US10896715B2 (en) 2018-06-15 2021-01-19 Micron Technology, Inc. Dynamic memory refresh interval to reduce bandwidth penalty

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385113B1 (en) * 1999-04-30 2002-05-07 Madrone Solutions, Inc Method for operating an integrated circuit having a sleep mode
US20110044119A1 (en) * 2006-04-19 2011-02-24 Walker Darryl G Semiconductor Device having variable parameter selection based on temperature and test method
US20110231601A1 (en) * 2010-03-19 2011-09-22 Microsoft Corporation Providing hardware resources having different reliabilities for use by an application
US20130128682A1 (en) * 2011-11-17 2013-05-23 International Business Machines Corporation Memory system with dynamic refreshing
US20150143198A1 (en) * 2013-11-15 2015-05-21 Qualcomm Incorporated Method and apparatus for multiple-bit dram error recovery
US20190006001A1 (en) * 2017-06-28 2019-01-03 Qualcomm Incorporated Systems and methods for improved error correction in a refreshable memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Dynamic random-access memory", Wikipedia, printed on May 29, 2018.

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11657865B2 (en) 2018-06-15 2023-05-23 Micron Technology, Inc. Dynamic memory refresh interval to reduce bandwidth penalty
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11256778B2 (en) 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
US11327551B2 (en) * 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
US12118056B2 (en) 2019-05-03 2024-10-15 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array
US11398264B2 (en) 2019-07-08 2022-07-26 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11928177B2 (en) 2019-11-20 2024-03-12 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US12111757B2 (en) 2022-10-24 2024-10-08 Hewlett Packard Enterprise Development Lp Fluid memory for high performance computing applications

Also Published As

Publication number Publication date
US20240096393A1 (en) 2024-03-21
US11657865B2 (en) 2023-05-23
US20190385666A1 (en) 2019-12-19
US20210134356A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
US11657865B2 (en) Dynamic memory refresh interval to reduce bandwidth penalty
US20220197740A1 (en) Error correction in row hammer mitigation and target row refresh
US11687410B2 (en) Error check and scrub for semiconductor memory device
US9190139B2 (en) Memory and memory system including the same
US9336852B2 (en) Memory and memory system including the same
US10283173B2 (en) Intelligent backup capacitor management
US10558518B2 (en) Dynamic adjustments within memory systems
EP3391220B1 (en) Systems, methods, and computer programs for resolving dram defects
US11615830B2 (en) Performing a refresh operation based on a characteristic of a memory sub-system
US11293962B2 (en) Capacitive voltage divider for monitoring multiple memory components
CN112740331A (en) Refreshing data stored at a memory component based on a memory component characteristic component
CN112925669A (en) Configuring partitions of a memory subsystem for different data
US20220100597A1 (en) Normalization of detecting and reporting failures for a memory device
CN108089892A (en) A kind of method, apparatus of safety startup of system, set-top box and storage medium
US11467900B2 (en) Adjusting read throughput level for a data recovery operation
KR20170022633A (en) Memory system
US11721381B2 (en) Performing refresh operations of a memory device according to a dynamic refresh frequency
US10846246B2 (en) Trans-fabric instruction set for a communication fabric
US20230376370A1 (en) Memory system and operating method thereof
CN117251846A (en) Progressive detection and response method and device for row hammer attack

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: MICRON TECHNOLOGY, INC., IDAHO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOLOV, GIL;REEL/FRAME:046356/0607

Effective date: 20180716

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL

Free format text: SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:047282/0463

Effective date: 20180731

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND

Free format text: SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:047282/0463

Effective date: 20180731

AS Assignment

Owner name: MICRON TECHNOLOGY, INC., IDAHO

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050713/0001

Effective date: 20190731

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4