Host interfaces and protocols

ASPM and NVMe Power Features

ASPM lets a PCIe link drop into a low-power state while an SSD is idle, and NVMe adds power states the drive can step through on its own.

Two separate features save power on an idle NVMe SSD. Active State Power Management (ASPM) works on the PCIe side and lowers the power state of the link when the device is idle, controlling both ends of it. NVMe adds its own power states for the drive itself, and Autonomous Power State Transition (APST) lets the drive step down through them on a timer. Both save power, and both cost latency on the way back.

Saving power while nothing happens

Every low-power state has an exit time. When the next command arrives, the link or the drive has to climb back to its active state before the command runs, so the first I/O after an idle stretch is slower. Red Hat’s power management guide says ASPM increases device latency because of the link state transitions.

Saving power while nothing happens

The link and the drive each sleep when idle and pay to wake

Two panels each show two states joined by two arrows. For the PCIe link, the link drops from active to low power when the device is idle and wakes on the next transfer, adding exit latency. For the drive, it steps from full power to a lower power state when idle, under APST, and wakes on the next command.01 THE PCIE LINKLink activeLink low powerIdleWakeASPM, and wakingadds exit latency02 THE DRIVEFull powerLower powerstateIdleWakeAPST steps downon an idle timer
The idle and wake cycle of the PCIe link under ASPM and of the drive under NVMe power states. Source: Red Hat, Power Management Guide, 2019; NVM Express Base Specification 1.4c.

The two panels draw the same pattern at two levels. The link drops to low power when traffic stops and wakes on the next transfer, and the drive steps down its own power states the same way. Linux offers three ASPM policies that trade power against latency.

On the NVMe side both controls are features a host sets. Power Management is Feature ID 02h, which picks the power state, and APST is Feature ID 0Ch, which hands the stepping to the drive. Part 5 covers NVMe power states and idle latency.

3 facts filed under Host interfaces and protocols: 2 read in the original source and 1 reported by a second source. Each was checked against the source’s own words, so its figures appear there, and each names where it comes from.

Primary sources

Secondary sources

  • ASPM lowers the power state of a PCIe link when the attached device is idle, controls both ends of the link, and increases device latency because of the link state transitions; Linux offers default, powersave and performance ASPM policies.

    Third-party reportFigures: 3 policiesActive-State Power Management, Power Management Guide, RHEL 7

Sources

Primary is the original paper, standard or datasheet. Secondary is a review, a vendor summary or a news report. Measured is my own test data.

Show all 2 sources, 1 primary