SATA Link Power Management,顾名思义是让SATA Link的PHY进入Lower Power State,与硬盘或者SSD的其他部分(CPU,DDR,后端)的电源管理是完全独立的。以硬盘为例,SATA Link的电源状态与盘片的转数快慢是独立的。
SATA提供了两种低功耗模式:Partial和Slumber。
Partial下去快,起来也快,return Latency大约10us,让link在不太影响传输性能的情况下忙里偷闲休息一下。
Slumber要慢一些,return latency大约10ms,预计link有一段相对长的Idle时间时,好好休息一下。
在Link Power Management方面,SATA一视同仁,Host和Device都可以发起,分别称为:
HIPM(Host Initiated Power Management)
DIPM (Device Initiated Power Management)
发起归发起,还是需要对方配合,才能让Link进入Partial 或者 Slumber。具体做法是这样的,以Host发起为例:
-
Host发送一个 PMREQ_P(请求进入Partial)给Device 【如果发PMREQ_S就是请求进Slumber】;
-
Device回复PMACK(同意)或者PMNAK(不同意);
-
如果Device回复同意,两边一起进Partial(一般接收方都会发送多个PMACK以确保发起方收到
-
如果回复的不同意,那就什么都不发生;
如果需要退出partial或者Slumber, 需要通过OOB重新建立链接。
其他知识点:
Listen Mode(侦听模式): AHCI支持让没有接盘的Port进入Listen Mode,此时该Port的功耗水平相当于Slumber, 但是该port可以识别到新接入的盘
Auto Partial to Slumber:
可以让Link不需要经过Active状态,直接从Partial进入Slumber