Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This section will describe considerations for designers as they incorporate storage device into a Modern Standby system.
Adaptive idle usage
The new adaptive idle timeout algorithm, introduced in Windows 10, balances power consumption with device reliability from a host-perspective. It applies only to storage devices reporting a seek penalty and will only be active if the respective miniport driver opts in to this capability. StorAHCI.sys (inbox driver) automatically enables this.
Since rotating media can only withstand a finite number of load/unload cycles – which are caused by power state transitions from D0 to D3 and back – the host will attempt to average no more than one power state transition per 5-minute interval, by default.
This means, if a device has been powered off (D3) for a long period of time (for example 30 minutes), then you could expect the next power state transition from D0 to D3 to be very fast, since the host built up "credit" and the average would still be well below one transition per 5 minutes.
On the other hand, if the device has been power cycled more frequently than once per 5 minutes, the host will delay the next transition from D0 to D3 by as much as 5 minutes in an attempt to return to the target average over time.
A miniport driver can opt-in to this behavior:
Register a STOR_POFX_DEVICE_V3 with StorPortInitializePoFxPower in the ScsiUnitPoFxPowerInfo unit control callback.
Set the STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT flag in the Flags member of the STOR_POFX_DEVICE_V3 structure.
Set the MinimumPowerCyclePeriodInMS member in the STOR_POFX_DEVICE_V3 structure to the value that indicates, in the worst case, how often the device can be power cycled. Units are in milliseconds. We recommend this be at least 5 minutes (i.e. the device should not be power cycled more than once every 5 minutes).
Storage reliability
In order to test for the impact of Modern Standby on rotational device reliability, you can following these general guidance:
Query the current count of Load/Unload Cycles on the rotational device.
- You can do this through PowerShell and the
Get-StorageReliabilityCountercmdlet, which has a field called:LoadUnloadCycleCount Get-PhysicalDisk | Get-StorageReliabilityCounter | fl
- You can do this through PowerShell and the
Execute a connected or disconnected Standby workload typical for your target customer or audience.
After the system exits Modern Standby, requery the Load/Unload cycle count.
By dividing the change in Load/Unload cycles by the time spent in Modern Standby, you can compute a ratio of Load/Unload cycles per time period. As an example, for a device spec’ed with a maximum of 600,000 Load/Unload cycles to reach a 5 year warranty, no more than 120,000 cycles can be incurred per year. This comes to a ratio of ~0.23 Load/Unload cycles per minute that the system should not exceed.
Note Different systems are targeted for many different audiences and usage patterns. Therefore, it is the OEM’s responsibility to ensure the connected or disconnected Modern Standby system (they build) can handle the expected usage patterns.