Title: ATA Power Management SATA Device Initiated Power Management DIPM
1ATA Power ManagementSATA Device Initiated Power
Management (DIPM)
ATA/ATAPI T13 / e04149-r0
- John Masiewicz
- Western Digital
- john.masiewicz_at_wdc.com
- 949-672-7686
John Masiewicz
2Background
- 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
3Background
Active
PMREQ_P Primitive
PMREQ_S Primitive
COMWAKE OOB Signal
COMWAKE OOB Signal
SLUMBER
PARTIAL
X
- 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?
4Implementation
- 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
5Host 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
6Device 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.
7Device 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
8Device 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 NAKs Slumber, restart PARTIAL timer.
9Device Initiated Interface PM
Drive PM Sleep, Standby, Idle
POWER UP
SLUMBER STATE
Host or Device COMWAKE
Host PMACK
Host or Device COMWAKE
Host PMNAK
Device COMWAKE
SLUMBER timer Expired
ACTIVE3 Device Init PARTIAL Send PMREQ_P
ACTIVE4 Device Init SLUMBER Send PMREQ_S
Host PMACK
ACTIVE1 Load/Start PARTIAL Timer
PARTIAL1 Load/Start SLUMBER Timer
PARTIAL2 Device Init ACTIVE State
PARTIAL timer Expired
X_RDY
If PARTIAL Disabled
No Commands Pending
Command Received
Rx, Tx Start or Host PMNAK
ACTIVE2 Stop PARTIAL Timer
Device Initiated SATA power management state
machine
10Device 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