Dynamic memory refresh interval to reduce bandwidth penalty
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.
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 different types of user data, wherein a first memory region in the plurality of memory regions stores a first type of user data different from a second type of user data stored in a second memory region;
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, including refreshing the first memory region at a first frequency, and refreshing the second memory region at a second frequency different from the first frequency; and
refreshing the at least one of the plurality of memory regions at a reduced rate.
2 . The method of claim 1 , 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.
3 . The method of claim 2 , wherein each of the plurality of memory regions includes dynamic random access memory.
4 . The method of claim 1 , wherein the first frequency is lower than the second frequency.
5 . The method of claim 4 , 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.
6 . The method of claim 4 , wherein the user data of the first type is more error tolerant than the user data of the second type.
7 . The method of claim 4 , wherein the data of the first type represents media for a media player; and the data of the second type contains instructions of applications.
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 user data; and
storing data in the plurality of regions according to types of the user data.
9 . A system, comprising:
a dynamic memory system having a plurality of memory regions respectively storing a plurality of different types of user data, wherein a first memory region in the plurality of memory regions stores a first type of user data different from a second type of user data stored in a second memory region; and
a controller coupled to the dynamic memory system via a communication channel and operatively 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 user data stored in the one of the plurality of memory regions, including refreshing the first memory region at a first frequency, and refreshing the second memory region at a second frequency different from the first frequency, wherein the first frequency is lower than the second 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 to:
refresh 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 each of the plurality of memory regions includes dynamic random access memory.
13 . The system of claim 9 , 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 9 , wherein the user data of the first type is more error tolerant than the user data of the second type.
15 . The system of claim 9 , 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.
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 different types of user data;
storing user data in the plurality of regions according to types of the user data, wherein a first memory region in the plurality of regions stores a first type of user data different from a second type of user data stored in a second region;
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 user data stored in the one of the plurality of memory regions, including refreshing the first memory region at a first frequency, and refreshing the second memory region at a second frequency different from the first frequency, wherein the first frequency is lower than the second frequency.