The present disclosure relates generally to computing device power consumption. More specifically, but not by way of limitation, this disclosure relates to reducing power consumption by selective memory chip hibernation.
User devices, such as mobile phones, laptop computers, and desktop computer, often include a dynamic random access memory (DRAM). A bit of data can be stored in a memory cell of the DRAM, and each memory cell can include a capacitor and a transistor. The charge of the capacitor dissipates over time, which can lead to data being lost. To prevent losing data, DRAMs typically include a memory refresh circuit that periodically rewrites the data in the capacitor to restore the initial charge.
User devices can also support multiple applications or other processes at a single time. One application or process can be considered a foreground, or active, process, while other applications or processes can be considered background, or inactive, processes. Data associated with background processes can be paged out to a storage device after an extended period of inactivity.
A dynamic random access memories (DRAM) of a user device can consume a large amount of battery power as a result of continuously refreshing the DRAM. Data from processes running on the user device is typically distributed randomly across chips of the DRAM. So, if even one process is active on the user device while all others are inactive, the DRAM receives full power to keep refreshing the data, resulting in the large power consumption. To save power, when the user device becomes inactive, data from the DRAM can be moved into a storage device, such as a solid-state drive (SSD) or a hard disk drive (HDD). The whole DRAM can then be hibernated or shut down until the user device resumes activity. Moving data to a storage device may occur many minutes after the process becomes inactive to reduce a cost associated with HDD usage or write amplification for an SSD.
Some examples of the present disclosure can overcome one or more of the abovementioned problems by providing a system that can selectively hibernate chips of a DRAM to conserve battery power. For example, the system can allocate first data associated with a first processing operation of a user device to a first chip of a DRAM of the user device. The system can allocate second data associated with a second processing operation of the user device to a second chip of the DRAM of the user device. Each processing operation can be allocated to a different chip of the DRAM. The system can determine the first processing operation has been inactive for a predetermined period of time. The predetermined period of time may be based on a type of processing operation that the second processing operation corresponds to or on a type of storage device included in the user device. For example, the predetermined period of time may be ten seconds. The system can migrate the first data from the first chip of the DRAM to a storage device of the user device. The storage device may be a storage-class memory (SCM), an SSD, an HDD, etc. The system can then hibernate the first chip of the DRAM while maintaining power to the second chip of the DRAM for continuing to perform the second processing operation. Allocating memory for each processing operation to a different chip of the DRAM allows the chips to be individually powered. Thus, only chips of the DRAM being used for active processing operations can receive full power, which can reduce battery power consumed by the DRAM and extend battery life of the user device.
As an example, a mobile phone can have two applications open. The mobile phone can allocate data associated with the first application to a first chip of the DRAM of the mobile phone and data associated with the second application to a second chip of the DRAM. A user may switch to displaying the second application, while still having the first application open in the background. While running in the background, the first application can be considered to be inactive. Once the first application has been inactive for ten seconds, the mobile phone can move the data of the first application to an SCM of the mobile phone. Since there is no data remaining in the first chip that needs to be regularly refreshed, the mobile phone can hibernate the first chip. But, the mobile phone can maintain power to the second chip so that the second application can continue executing without losing data. As a result of the data allocation and movement to an SCM, battery power of the mobile phone can be conserved.
These illustrative examples are given to introduce the reader to the general subject matter discussed here and are not intended to limit the scope of the disclosed concepts. The following sections describe various additional features and examples with reference to the drawings in which like numerals indicate like elements but, like the illustrative examples, should not be used to limit the present disclosure.
In some examples, the processor 102 includes a memory allocator 104 that allocates data 114a-b from processing operations 112a-b of the user device 110 to chips 122a-b of the DRAM 120. Examples of the processing operations 112a-b can include any process running on the user device 110, such as a software application or a tab of a webpage in a browser. The user device 110 can execute multiple processing operations at a time, for example, running multiple webpages in a browser or having multiple software applications open at once. The memory allocator 104 can allocate the data 114a associated with the processing operation 112a to the chip 122a and the data 114a associated with the processing operation 112b to the chip 122b. This allocation can allow all of the data associated with a processing operation to be stored in a single, known location on the DRAM 120, rather than being randomly distributed across the chips. If a size of the data exceeds the available space on the chip, the memory allocator 104 may allocate additional space for the data on another chip of the DRAM 120.
At some point in time, the processing operation 112a may become inactive. The processor 102 can determine inactivity based on the processing operation 112a being in a state in which actions cannot be received. For example, if the processing operation 112a is a webpage displayed in a tab of a browser that also includes other tabs displaying other webpages, the processor 102 may determine that the processing operation 112a becomes inactive after the browser has been minimized or another tab has been displayed for a predefined period of time (e.g., one second). If the processing operation 112a is not resumed within the predefined period of time, the processor 102 can determine the processing operation 112a is inactive.
If the processing operation 112a becomes inactive and another processing operation, such as the processing operation 112b, becomes or remains active, the processor 102 can selectively hibernate the DRAM 120 to reduce power consumption. The processor 102 may wait for the processing operation 112a to be inactive for a predetermined time 106a before selectively hibernating the DRAM 120. This can reduce moving data out of the DRAM 120 during a time period in which the processing operation 112a may resume activity. The predetermined time 106a may be the same for all processing operations, or may be based on a type 116b of the processing operation 112b that is active while the processing operation 112a is inactive. For example, if the processor 102 determines the type 116b corresponds to a webpage of a news article, the processor 102 may determine that the predetermined time 106a is longer than if the type 116b corresponds to a webpage of a conference call. A news article may be associated with a shorter active time, meaning that the processing operation 112a may resume activity more quickly than if the processing operation 112b were a conference call. Thus, the predetermined time 106a for the news article can be longer so that the data 114b remains in the DRAM 120 in case the processing operation 112a resumes activity.
Additionally or alternatively, the predetermined time 106a may be based on a type of storage device 132 of the storage device 130a of the user device 110. Examples of the type of storage device 132 include a storage-class memory (SCM), a solid-state drive (SSD), a hard disk drive (HDD), etc. Storage devices associated with a longer time to receive, store, and move data, such as SSDs and HDDs, may be associated with a longer predetermined time 106a. Since SCMs may be able to receive and send data more quickly, hibernating and resuming chips on the DRAM 120 may be performed faster if the storage device 130a is an SCM than if the storage device 130a is an SSD or an HDD. Thus, the predetermined time 106a can be shorter (e.g., 10 seconds rather than 30 seconds) for an SCM, so that a user of the user device 110 is less likely to experience an interruption if the processing operation 112a is resumed.
Subsequent to the processing operation 112a being inactive for the predetermined time 106a, the processor 102 can migrate the data 114a that is stored on the chip 122a to the storage device 130a of the user device 110. The data 114a can remain in the storage device 130a until the processing operation 112a is resumed, or until the storage device 130a receives a command to delete the data 114a. With the data 114a in the storage device 130a, the processor 102 can hibernate the chip 122a, which may involve removing some or all of the power from the chip 122a. But, the processor 102 can maintain power to the chip 122b, such that the processing operation 112b may continue to perform. For example, the processing operation 112a can be a first webpage running in a first tab in a browser on the user device 110 and the processing operation 112b can be a second webpage running in a second table in the browser on the user device 110. The user device 110 can have the processing operation 112a minimized and the processing operation 112b displayed on the user interface of the user device 110 for the predetermined time 106a. The processor 102 can move the data 114a of the first tab to the storage device 130a and maintain the data 114b of the second tab in the chip 122b of the DRAM 120. The processor 102 can then hibernate the chip 122a and maintain power to the chip 122b with the data 114b, so that the second tab can continue execution. This can save batter power of the user device 110, since only active processes may consume power of the DRAM 120.
In some examples, subsequent to the data 114a being stored in the storage device 130a, the processor 102 can determine that the processing operation 112a becomes active. The processor 102 can migrate the data 114a from the storage device 130a to the chip 122a. The processor 102 can then resume power to the chip 122a. Resuming power may involve resuming full power to the chip 122a from a reduced-power state associated with the hibernation.
Some examples may make use of multiple storage devices of the user device 110 to further improve storage performance of the user device 110. For example, the user device 110 can include storage devices 130a-b. The storage device 130b may be a slower and less expensive storage device than the storage device 130a. For example, if the storage device 130a is a SCM, the storage device 130b may be an SSD or an HDD. Similarly, if the storage device 130a is an SSD, the storage device 130b may be an HDD. Data associated with a processing operation may be initially moved from the DRAM 120 to the storage device 130a subsequent to the predetermined time 106a, and then moved to the storage device 130b from the storage device 130a if the processing operation remains inactive. For example, data 114a may be stored in the storage device 130a after being migrated from the chip 122a subsequent to the processing operation 112a being inactive for the predetermined time 106a. The processing operation 112a may then remain inactive for another period of time, such as predetermined time 106b. The predetermined time 106b may be longer than the predetermined time 106a. For example, the predetermined time 106b may be five minutes. If the processing operation 112a remains inactive for the predetermined time 106b, the processor 102 can migrate the data 114a from the storage device 130a to the storage device 130b. Space in the storage device 130a can then become available for storing more-recent data from the user device 110. If the storage device 130b is an SSD, the processor 102 can put a limit on a number of writes per hour for the SSD to reduce effects of write amplification on the SSD.
The processor 102 may determine that the processing operation 112a becomes active while the data 114a is stored in the storage device 130b. The processor 102 can migrate the data 114a from the storage device 130b to the chip 122b and resume power to the chip 122b to resume performing the processing operation 112a. The processor 102 may alternatively predict that the processing operation 112a is likely to be resumed and migrate the data 114a to the storage device 130a. This may allow the data 114a to be quickly migrated to the chip 122a if the processing operation 112 becomes active.
In
The processor 102 can include one processor or multiple processors. Non-limiting examples of the processor 402 include a Field-Programmable Gate Array (FPGA), an application-specific integrated circuit (ASIC), a microprocessor, etc. The processor 102 can execute instructions 406 stored in the memory 404 to perform operations. The instructions 406 may include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, such as C, C++, C#, etc.
The memory 404 can include one memory or multiple memories. The memory 404 can be non-volatile and may include any type of memory that retains stored information when powered off. Non-limiting examples of the memory 404 include electrically erasable and programmable read-only memory (EEPROM), flash memory, or any other type of non-volatile memory. At least some of the memory 404 can include a non-transitory computer-readable medium from which the processor 102 can read instructions 406. A computer-readable medium can include electronic, optical, magnetic, or other storage devices capable of providing the processor 102 with computer-readable instructions or other program code. Non-limiting examples of a computer-readable medium include magnetic disk(s), memory chip(s), ROM, random-access memory (RAM), an ASIC, a configured processor, optical storage, or any other medium from which a computer processor can read the instructions 406.
In some examples, the processor 102 can execute the instructions 406 to perform operations. For example, the processor 102 can allocate first data 414a associated with a first processing operation 412a of the user device 110 to a first chip 422a of a DRAM 120 of the user device 110. The processor 102 can allocate second data 414b associated with a second processing operation 412b of the user device 110 to a second chip 422b of the DRAM 120 of the user device 110. Examples of the processing operations 412a-b can include webpages, applications, or any other processes executed by the user device 110. The processor 102 can determine the first processing operation 412a has been inactive for a predetermined period of time 408. For example, the predetermined period of time 408 may be ten seconds. The processor 102 can then migrate the first data 414a from the first chip 422a of the DRAM 120 to a storage device 130 of the user device 110. The storage device 130 may be an SCM, an SSD, an HDD, and the like. The processor 102 can hibernate the first chip 422a of the DRAM 120 while maintaining power to the second chip 422b of the DRAM 120 for continuing to perform the second processing operation 412b.
The processor 102 can implement some or all of the steps shown in
In block 502, the processor 102 allocates first data 414a associated with a first processing operation 412a of a user device 110 to a first chip 422a of a DRAM 120 of the user device 110. The user device 110 may be a mobile phone, a laptop computer, a desktop computer, a server, or any other battery-powered device. The first processing operation 412a may be a webpage in a first tab of a browser on the user device 110. A memory allocator of the processor 102, such as memory allocator 104 in
In block 504, the processor 102 allocates second data 414b associated with a second processing operation 412b of the user device 110 to a second chip 422b of the DRAM 120 of the user device 110. The second chip 422b can be different from the first chip 422a. The memory allocator can allocate the second data 414b to the second chip 422b. The second processing operation 412b may be another webpage in a second tab of the browser on the user device 110.
In block 506, the processor 102 determines the first processing operation 412a has been inactive for a predetermined period of time 408. The predetermined period of time 408 may be based on a type of processing operation associated with the second processing operation 412b, or a type of storage device associated with a storage device 130 of the user device 110. The predetermined period of time 408 may be between several seconds and several minutes. The processor 102 can determine inactivity based on a time when the first processing operation 412a was last displayed on a user interface of the user device 110, accessed, interacted with, or other indication of the first processing operation 412a being a background operation rather than a foreground operation.
In block 508, the processor 102 migrates the first data 414a from the first chip 422a of the DRAM 120 to the storage device 130 of the user device 110. The storage device 130 may be an SCM, or another type of storage device. Migrating the data may involve the processor 102 allocating space in the storage device 130 for the first data 414a and then moving the first data 414a from the first chip 422a to the storage device 130. With the first data 414a migrated to the storage device 130, there may no longer be any data stored in the first chip 422a.
In block 510, the processor 102 hibernates the first chip 422a of the DRAM 120 while maintaining power to the second chip 422b of the DRAM 120 for continuing to perform the second processing operation 412b. Hibernating the first chip 422a may involve completely or partially shutting down power to the first chip 422a. This can reduce the power involved in refresh cycles of the DRAM 120, and thus conserve power consumed by the user device 110. The first data 414a may additionally be migrated to other storage devices of the user device 110 after subsequent time of inactivity for the first processing operation 412a to further improve data management. If the first processing operation 412a resumes activity, the processor 102 can restore power to the first chip 422a and migrate the first data 414a to the first chip 422a to be used by the first processing operation 412a.
The foregoing description of certain examples, including illustrated examples, has been presented only for the purpose of illustration and description and is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Numerous modifications, adaptations, and uses thereof will be apparent to those skilled in the art without departing from the scope of the disclosure. For instance, examples described herein can be combined together to yield still further examples.