Data from a computing system may be stored in volatile memory and non-volatile memory of a memory storage device included in the computing system. When the computing system receives a power termination command to remove power, data stored in the volatile memory may be lost, whereas data stored in the non-volatile memory may persist.
Examples described herein relate to a delay of a power termination command of a computing system while data is moved from volatile memory to non-volatile memory of a memory storage device included in the computing system. In examples described herein, the computing system includes a power button, an input/output (I/O) controller, a power management controller (PMC), a power control gating, and the memory storage device. The memory storage device can include a memory controller, a volatile memory (e.g., a dynamic random-access memory (DRAM)-based volatile memory) to cache or buffer the flow of data coming from the computing system, and a non-volatile memory (e.g., a negative-AND (NAND)-based flash non-volatile memory) for more persistent storage of user data, metadata, and other data. Because the memory storage device may include volatile memory and non-volatile memory, the memory storage device may be, as a non-limiting example, a non-volatile memory storage device (e.g., a solid-state drive (SSD)).
In examples described herein, the PMC can be communicatively coupled with the I/O controller, the memory controller, and the power control gating. The I/O controller can be communicative coupled to the PMC through a bus over an interconnected fabric. As an example, the bus can be compliant with an Enhanced Serial Peripheral Interface (eSPI) protocol or other similar protocols of the like. The eSPI protocol allows power management commands, including ones from the I/O controller, to be routed through the PMC. In one example, the I/O controller can detect when a power button of the computing device is depressed. The I/O controller can determine a length of time (e.g., six seconds) for which the power button is being depressed, thereby causing a depress event to occur. As used herein, a depress event includes an engagement or activation of a power button of a computing system (e.g., via physical touch, via remote control, etc.), an unexpected loss of power for a computing system, an unexpected loss of power for a memory storage device, and other similar circumstances of unaccounted for power loss as are known in the art. When the length of time meets at least a threshold period of time (e.g., four seconds), the I/O controller initiates a power termination of the computing system. The I/O controller can accomplish the power termination by transmitting, via the bus, a power termination command to the PMC.
As used herein, the example of six seconds for a length of time of the depress event is non-limiting and the length of time could instead be greater or less than six seconds. As used herein, the example of four seconds for a threshold period of time is non-limiting and the threshold period of time can instead be greater or less than four seconds. As used herein, the term “power termination” describes the removal of power from the computing system sufficient to leave the computing device in a “non-active” mode, such as sleep, hibernate, shut down, power off, etc. For example, power termination could result in the computing system entering a non-active mode of sleep state three (SLP_S3 #). Entrance into the non-active mode can cause data remaining in volatile memory to be lost from the memory storage device included in the computing system.
In response to a receipt of the power termination command, the PMC initiates a preservation of data (e.g., user data and/or metadata) in the volatile memory of the memory storage device. The process involves delaying for a period an assertion of the power termination command to a power control gating. The delay period of the assertion of the power termination command results in adding a configurable amount of time between the assertion and/or de-assertion of other specific commands (e.g., codes sent over communication channels, specific voltage levels applied to specific lines, or other types of commands) by the PMC that are invoked during a power termination of the computing system.
In some examples, prior to, concurrent to, or following the delay of the power termination command, the PMC transmits a memory transfer command to a memory controller included in the memory storage device. The memory transfer command can move data from volatile memory to non-volatile memory of the memory storage device during the delay period. In some examples, the memory transfer command may include a command to cause data from volatile memory to be “flushed” (moved) into non-volatile memory, as is known in the art. In some examples, the command causing the flush may be a reset command for the memory storage device. For example, the command may be a Peripheral Component Interconnect express reset (PERST #) command that causes the data to be flushed from volatile memory into non-volatile memory. For example, the command may be a Power-Loss-Protection (PLP) command to the memory storage device that can also cause the memory storage device to reset and have data flushed from volatile memory to non-volatile memory. Alternatively, or in addition to the example commands stated, the memory transfer command may include a different command to perform a different function that causes the volatile memory to be flushed into non-volatile memory.
In some examples, the delay period may be configurable based on the amount of data to be moved from volatile memory to non-volatile memory, a size of the memory storage device, a rate at which data stored in the memory storage device is utilized, date and/or time when the memory storage device was last used, and/or other characteristics well known in the art. Alternatively, or in addition to the configuration based on the above stated characteristics, the delay period may be set by a manufacturer, an operator, or an end user. As such, as used herein, the examples of how long the delay period will last are non-limiting and can be greater or less than the time listed. Upon expiration of the delay period, the PMC can assert the power termination command to the power control gating.
Alternatively, or in addition to the expiration of the delay period, the memory storage device can transmit a memory transfer confirmation to the PMC when data from the volatile memory has been moved successfully to the non-volatile memory. The memory transfer command can be transmitted in real time, at certain levels of data having been transferred, at certain points in time, upon successful completion, or a combination thereof. When the PMC receives the memory transfer confirmation, the PMC can assert the power termination command to the power control gating, even if the delay period has yet to expire.
For example, a power button of a computing system may be depressed for a length of time (e.g., six seconds). An I/O controller detects the depress of the power button and monitors the length of time. When the length of time at least meets a threshold period of time (e.g., four seconds), the I/O controller transmits a power termination command to a PMC via a bus compliant with an eSPI protocol. The PMC initiates a delay period (e.g., one second) of an assertion of the power termination command to a power control gating and transmit a memory transfer command to a memory controller of a memory storage device included in the computing system. The memory controller can initiate a flush of the volatile memory into non-volatile memory by initiating a reset (e.g., PERST #) process. Upon expiration of the delay period, the PMC can assert the power termination command to the power control gating to remove power from the computing system, including the memory storage device. Alternatively, or in addition, the memory controller can transmit a memory transfer confirmation to the PMC, subsequently causing the PMC to assert the power termination command to the power control gating to remove power from the computing system. The PMC can end the delay period upon receipt of the memory transfer confirmation.
A computing system may include multiple memory storage devices. The PMC can choose from a plurality of ways, or even a combination of different ways from the plurality of ways, to determine a delay period that accounts for data stored in the multiple memory storage devices. The PMC accounting for data stored in the multiple memory storage devices is intended to signify that the PMC is determining a delay period that will allow data stored in volatile memory to be flushed into non-volatile memory of the multiple storage devices. One of the ways the PMC can determine a delay period that accounts for the data is that the PMC can associate a specific delay period with a specific memory storage device of the multiple memory storage devices. When the specific delay period associated with the specific memory storage device of the multiple memory storage devices expires, the PMC can assert the power termination command to the specific memory storage device.
Another way for the PMC to account for the data stored in the multiple memory storage devices is to assert a power termination command for a memory storage device of the multiple memory storage devices when a memory transfer confirmation is received from the specific memory storage device. For example, in a computing system with a first memory storage device and a second memory storage device, the first memory storage device transmits a memory transfer confirmation to the PMC, the PMC asserts a first power termination command to the first memory storage device. The second memory storage device remains free from being affected by the first power termination command asserted to the first memory storage device. When the second memory storage device transmits a memory transfer confirmation to the PMC, the PMC asserts a second power termination command to the second memory storage device. When the PMC receives a memory transfer confirmation, the PMC can end the delay period for the memory storage device the memory transfer confirmation is received from.
Another way for the PMC to account for the data stored in the multiple memory storage devices is by ranking each memory storage device. The ranking can be based on characteristics stated above. In other words, the memory storage devices can be ranked based on a size of the memory storage device, a rate at which data stored in the memory storage device is utilized, date and/or time when the memory storage device was last used, a pre-defined ranking, and/or other characteristics known in the art. In this way, a higher ranked memory storage device can be used for determining the delay period. For example, in a system with a first memory storage device and a second memory storage device, the delay period of the assertion of the power termination command is based on a memory storage device with a higher ranking,
As shown in
The PMC 108 can address the power termination command 104 by initiating a delay period of an assertion of the power termination command 104 to a power control gating 115. The delay period may extend for a predetermined but configurable amount of time. The delay period may last for one second but can last for more or less than one second based on the configuration. During the delay period, the PMC 108 is to transmit a memory transfer command 110 to a memory controller 112 included within a memory storage device 116. The memory storage device is to include the memory controller 112, a volatile memory 113, and a non-volatile memory 114. As an example, the memory transfer command 110 from the PMC 108 is to cause the memory controller 112 to initiate a flush for the memory storage device 116, and thereby cause data from the volatile memory to be flushed into the non-volatile memory. In some examples, reset proceedings can initiate a flush that may comprise a Peripheral Component Interface express (PCIe) being reset (PERST #) so as to have data in volatile memory to be moved to non-volatile memory. Alternatively, the memory controller 112 could initiate other functions that cause data from the volatile memory to be flushed into the non-volatile memory. In other words, the memory transfer command 110 comprises instructions to move data from the volatile memory to the non-volatile memory.
Upon expiration of the delay period, the PMC 108 is to assert the power termination command 104 to the power control gating 115, which in turn is to remove power from the computing system 100, including the memory storage device 116. Removal of power is to reach a level where volatile memory from the memory storage device 116 is to be lost. As such, the state the computing system 100 may be powered down to ranges from such things as a sleep state three (SLP_S3 #) to a complete loss of power.
Alternative to, or in addition to, the expiration of the delay period, the memory controller 112, or the memory storage device 116, may transmit a memory transfer confirmation to the PMC 108 when an amount of data stored in the volatile memory has been transferred to the non-volatile memory. The amount of data may be a complete amount of the data stored in the volatile memory or a lesser amount; the amount to be moved may be predetermined by a manufacturer, but configurable by an operator, an end user, etc. As such, when the PMC 108 receives the memory transfer confirmation from the memory controller 112, or the memory storage device 116, the PMC 108 asserts the power termination command 104 to the power control gating 115 independent of the expiration of the delay period. As used herein, “independent of the expiration of the delay period” describes assertion of the power termination command by the PMC based on a receipt of the memory transfer confirmation even when the delay period has yet to expire,
This is to be considered an “unclean” shut down as it does not allow the computing system 200 to move data 226 stored in volatile memory to non-volatile memory, and therefore ends up in losing said data 226 instead of saving it for when the computing system 200 is made active again. The computing system 200, for example, may be made active again when the computing system 200 wakes from hibernation or starts again from a shut down.
As has been described, an I/O controller (shown as 102 in
The power removal from the computing system 300 in
In the non-limiting example of
In the non-limiting example of
In the example of
In response to receiving the power termination command, the PMC 508 can transmit a first memory transfer command 530 to a first memory controller 518 of the first memory storage device 516 and a second memory transfer command 531 to a second memory controller 519 of the second memory storage device 517. After transmitting the memory transfer commands 530 and 531, the PMC 508 can initiate a delay period (shown as 323 in
As listed above, the PMC 508 can determine the delay period in a plurality of ways. One of the ways the PMC 508 can determine a delay period that accounts for the data stored in the volatile memory of each memory storage device is that the PMC 508 can assert the power termination command for a specific memory storage device of the multiple memory storage devices when a memory transfer confirmation is received from the specific memory storage device. For example, as illustrated in
The example medium 600 stores instructions 662 executable by the processing resource 660 to receive a power termination command (shown as 104 in
The example medium 600 can also store instructions executable by the processing resource 660 to receive a memory transfer confirmation from the memory storage device. The example medium 600 can also store instructions executable by the processing resource 660 to assert the power termination command to the power control gating to remove power from the memory storage device when the memory transfer confirmation is received, even when the delay period has yet to expire.
At block 774, the method 700 can include transmitting a power termination command to the PMC, For example, the method can include the I/O controller transmitting a power termination command to the PMC. At block 776, the method 700 can include initiating a delay period of an assertion of the power termination command. For example, the method 700 can include the PMC initiating a delay of the assertion to a power control gating (shown as 115 in
At block 778, the method 700 can include transmitting a memory transfer command (shown as 110 in
At block 780, the method 700 can include asserting the power termination command upon expiration of the delay period. For example, the method can include the PMC asserting the power termination command to the power control gating to remove power. In some examples, the power termination command can include removing power from the memory storage device. In some examples, the power termination command can include removing power from the computing system.
In some examples, the detecting can comprise monitoring, by the I/O controller, the length of time for which the power button is depressed. In other examples or in addition, the detecting can further comprise determining, by the I/O controller, when the length of time at least meets a threshold period of time that initiates a power termination of the computing device.
In some examples, the power termination command can cause the memory storage device to enter a non-active mode where volatile memory is lost. In other examples or in addition, the power termination command can cause the computing device to power off.
In some examples, the memory transfer command can include a command for the memory storage device to reset.
In some examples, the method 660 can further comprise asserting, by the PMC, the power termination command to the power control gating independent of the expiration of the delay period when the PMC receives a memory transfer confirmation from the memory storage device.
In some examples, the memory storage device can be a solid-state drive, or another non-volatile storage device of the sort.
In the examples above, a time that components take to process and transmit commands was ignored to show the concept in a clear fashion. Described above and throughout this disclosure are examples that are not intended to be limiting. Components described herein may be combined or made further separate. Terms used herein, such as “sleep state three”, are well known to individuals skilled in the art.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2018/036866 | 6/11/2018 | WO | 00 |