Testing The DevSlp Power State With Some New Gear
Sometimes I find it unfortunate that most of our storage analysis is in the context of desktop PCs, where the power consumption of an SSD doesn't really matter. The topic is far more meaningful in the enterprise and mobile spaces though, so I find it critically important to benchmark power thoroughly and as precisely as possible.
On a laptop, every milliwatt matters. So much so, in fact, that Intel's Haswell-based CPUs and corresponding chipsets on the mobile side support a new mode for reducing SSD power consumption. DevSlp, or device sleep, is a sideband signal sent to the storage device to indicate that it should drop into a super-low power state. Essentially, everything that can be off is.
This is a great way to get a little extra battery life out of an Ultrabook (particularly in light of Intel's targets for runtime and standby connectivity). But you do pay a price: it takes longer to enter and exit the DevSlp state. Granted, the delay is less than powering the SSD down and back up as needed, a process that can take seconds. Worse, an drive may use substantial amounts of power as it's readied again. DevSlp should need only 50 ms in contrast, along with a few milliwatts.
To measure power consumption in a DevSlp state, we need two things. First is an Ultrabook with a Haswell-based CPU on a compatible platform. I'm using Lenovo's ThinkPad T440s. It's reasonably versatile, including a 2.5" SATA bay and two M.2 slots (for M.2 2242s) wired to the PCH's SATA ports. I typically don't need more than one slot, but it's nice to have the option at least.
The second item is a test platform able to initiate the DevSlp command, measure the current draw, and record the results. To do that, ULINK Technologies sent over some hardware designed expressly for this purpose. I've been using the company's DriveMaster software and SATA/SAS power hubs for a year now, and they confer a spectacular amount of control over what drives under test do. In this case, DevSlp testing is made possible in a way that's informative and easy to manage.
Using a test script to record amperage and issue the appropriate commands, this is what we end up with:
This is an example from my Plextor M6S review. The test script begins at active idle, then issues write commands (the first big increase in power). After 20,000 I/Os, the drive gets issued the DevSlp signal (denoted by the vertical purple bars). In this DevSlp zone, it takes a few tens of milliseconds before the drive enters DevSlp as commanded, but it stays at the state using just 2.5 mW until DevSlp exits (noted by the second purple bar). More I/O is then issued, and then it's back to idle before the script ends. The results are recorded in milliamps, and I convert to watts.
Power Testing With DevSlp
I'll keep it short and sweet this time around, mostly since the next page is going to include all of the power testing. For now, here are some DevSlp and slumber figures for a handful of drives in the lab.
The ULINK DevSlp test platform's instrumentation is sensitive enough to measure thousandths of an amp. Multiply the 2.5" SSDs by an estimate of the PSU's 5 V rail and we get mW from mA. For mSATA- and M.2 SATA-based SSDs, we multiply by the 3.3 V rail's estimated current value.
In order to get into DevSlp, my DriveMaster 2012 script first enables the device sleep feature bit. From there, it steps through power management modes, finally entering DevSlp from slumber. This has a specific name: DESO. It stands for DevSlp Entry from Slumber Only. So, the last stop before DevSlp is slumber.
First up, here's the wattage these drives consume in DevSlp. Actually, make that mW; there are way too many zeros involved if I try to report the figures in watts. Remember that when you compare these numbers to the measurements on the next page.
Samsung's spec claims the 850 Pro drops to 2 mW in DevSlp. But that's for the 256 GB model, I suspect. Our tools measure just 1 mW (.2 mA) on the 128 GB version and 2.5 mW on the 1 TB drive.
Compare that data to the 1 TB 840 EVO in mSATA trim (the 2.5" 840 EVOs don't support DevSlp). With the same controller, I get 15.3 mW (5.1 mA * ~3.3 V). Clearly, DevSlp is something vendors are starting to optimize for now. The other handful of drives we have on-hand with support range from 2.5 to 5 mW. I didn't even know the M500 supported DevSlp, but it does, and it works.
This is arguably a more relevant measurement, since it affects a greater number of users. Lowest slumber state power consumption matters to laptops not using connected standby. If DIPM is enabled, these numbers are what you'd see once the host system or device decides to snooze. The same behavior isn't desirable in a desktop setting, which is why we previously only showed active idle numbers.
Not every drive supports every power management trick in the book, so this is the lowest measured non-DevSlp power state.
The Samsungs don't use much power here, either. The two 1 TB MEX-equipped models demonstrate just 38 mW of consumption in slumber, just over twice what the 840 EVO mSATA uses in DevSlp. But that's 38x as much as the 128 GB 850 Pro needs in its deepest sleep state.
Considering that maximum power for the 1 TB drive is around 3000 mW, this is hot stuff. Power management is for real.