ATA/ATAPI
T13 / e04149-r0
ATA Power Management
“SATA Device Initiated Power
Management (DIPM)”
John Masiewicz
Western Digital
john.masiewicz@wdc.com
949-672-7686
October 8, 2004
John Masiewicz
Background
SATA Interface Power Management
Applies to SATA Phy block only
Independent of drive power management
Can be tied to drive PM: Standby, Sleep, Idle
SATA interface PM has three states
ACTIVE: Phy ready, full power, TX/RX on
PARTIAL: reduced power, resumes in under 10 us
SLUMBER: reduced power, resumes in under 10 ms
10-5-04 e04149-r0 2
Background
Active
PARTIAL X SLUMBER
Entering PARTIAL or SLUMBER
Host or device may send PMREQ_P or PMREQ_S
To resume from PARTIAL or SLUMBER, either host or device
Sends COMWAKE OOB, Receives COMWAKE response, and moves to Phy ready.
Resumes right where it left off
Main question is “WHEN” should a Device initiate SATA PM?
10-5-04 e04149-r0 3
Implementation
IDENTIFY DEVICE
Word 76, Bit 9
If 1, Device supports receipt of host initiated interface PM
Word 78, Bit 3
If 1, Device supports initiating interface PM
Word 79, Bit 3
If 1, Device initiating interface PM is enabled.
SET FEATURES command to enable/disable
10-5-04 e04149-r0 4
Host Initiated Power Management
Host Initiated Interface PM (HIPM)
Device should be able to respond to PMREQ_P, PMREQ_S &
COMWAKE, and change Phy Power Management state.
Device should not NAK PM requests from host.
If host issues PMREQ while commands are queued, it is better to
enter PM and then issue COMWAKE to host when a released
command is ready for data transfer.
Exception, data is ready to transfer when PMREQ received, and
device sends X_RDY (not NAK).
Very simple if no commands are outstanding.
Device will not exit PM, wait for Host COMWAKE
10-5-04 e04149-r0 5
Device Initiated Power Management
Device Initiated Interface PM (DIPM)
If enabled, Device is manages SATA Interface power
Based on Command Status and Partial/Slumber timers
Programmable timers allow for more / less aggressive models.
Implement two timers:
Partial Timer (Typically 1-5 ms ?)
Slumber Timer (Typically 5-100 ms ?)
HW or FW timers, and same timer feature can be used for both.
May be host programmable, (SET FEATURES or VSC
commands?)
An implementation algorithm is proposed here that
implements DIPM without new commands or Serial Transport
Features.
10-5-04 e04149-r0 6
Device Initiated Interface PM
Recommended DIPM Algorithm
Following assumptions are made
Device must support SATA PM protocol. (PMREQ_P,
PMREQ_S)
Timer (HW/FW) be used for Partial/Slumber timers.
COMWAKE or Phy Ready interrupt to inform link of
Resume.
COMRESET detection still functional while in PM modes
Some start / Stop Device Initiated PM timer/function
Algorithm based
10-5-04 e04149-r0 7
Device Initiated Interface PM
Recommended DIPM Algorithm, continue…
PARTIAL timer:
Clear/Stop Partial timer when a transfer starts, TX or RX.
Load/Start Partial timer when a transfer is complete, TX or RX.
When timer expires
Initiate PARTIAL state.
If PARTIAL successful, Load/Start SLUMBER timer.
SLUMBER timer:
When timer expires
Transmit COMWAKE to go to ACTIVE.
Initiate PMREQ_S to go to SLUMBER state.
If host NAK’s Slumber, restart PARTIAL timer.
10-5-04 e04149-r0 8
Device Initiated Interface PM
Drive PM
Sleep,
Standby,
KE
POWER OMWA SLUMBER Idle
rDevice C Hos
UP Host o STATE t PM
ACK
Host or Device COMWAKE
Host PMNAK Device
SLUMBER timer COMWAKE
Host
PARTIAL timer Expired
ACTIVE3 PMACK
PARTIAL1 PARTIAL2 ACTIVE4
ACTIVE1 Expired Device Init Device Init
Load/Start Load/Start Device Init
PARTIAL SLUMBER
PARTIAL SLUMBER ACTIVE
X_RDY Send Send
Timer Timer State
PMREQ_P PMREQ_S
No If PARTIAL Disabled
Co
Com eived
mm
Rec
an
ds
man
Pe Rx, Tx Start or Host PMNAK
nd
in g
d
ACTIVE2
Stop
PARTIAL Device Initiated
Timer SATA power management state machine
10-5-04 e04149-r0 9
Device Initiated Interface PM
Recommended DIPM, Advantages…
Easy to implement – Vendor Independent
No new commands or Serial Transport functions
Actions that may start Device Initiated Interface PM
Any SATA specific Phy PM (Shown in state machine)
PATA PM Commands (Shown in state machine)
Vendor specific drive PM modes
ATA Advance Power Management timer (??)
Of course host can initiate PM state change anytime
Includes PM retry with timers
Easily expanded for future mobile enhancements
Inter and Intra-command DIPM
10-5-04 e04149-r0 10