SATA省电模式 Partial和 Slumber
与传统硬盘相比,SSD不仅具备更高的读写速度,能耗上也有非常大的优势。今天介绍一下SATA链路电源管理。SATA链路电源管理,可以让SATA链路的PHY进入低功耗模式,与硬盘或者SSD其他部分(CPU、DDR、后端)的电源管理是完全独立的。以硬盘为例,SATA链路的电源状态与盘片的转数快慢是相互独立的。
SATA提供了两种低功耗模式: Partia和 Slumber
Partial模式:PHY处于低功耗状态,退出时间要求<10μs。 Partial是让部分物理层
(PHY)电路进入休眠模式,能够在10μs内被唤醒,让链路在不太影响传输性能的情况下忙里偷闲,休息一下。
Slumber模式:PHY处于更低功耗状态,退出时间要求<10ms。与 Partial模式相比, Slumber关闭更多的电路,因此它的恢复要慢一些,恢复时间大约为10ms。当预测有一段相对长的ldle时间时,会让链路好好休息一下。
在图8-1中可以看到 Partial/Slumber把功耗从 Active State的1000mW降低到了100mW
左右。
图8-1 Partial和Slumber两种模式的功耗和时延
在链路电源管理方面,SATA一视同仁,主机和设备都可以发起,分别称为:
HIPM( HoSt Initiated Power Management)
DIPM(Device Initiated Power Maanagement)
发起归发起,还是需要对方配合,才能让链路进入 Partial或者 Slumber模式。具体做
法是这样的,以主机发起为例
主机发送一个 PMREQ P(请求进入 Partial)给设备(如果发 PMREQ S就是请求进
Slumber
设备回复 PMACK(同意)或者 PMNAK(不同意)
如果设备回复同意,两边一起进 Partial(一般接收方都会发送多个 PMACK以确保
发起方收到);
如果回复不同意,那就什么都不发生;
如果需要退出 Partial或者 Slumber,需要通过OOB重新建立连接。
其他知识点:
Listen Mode(侦听模式):AHCI支持让没有接盘的端口进入侦听模式,此时该端口
的功耗水平相当于 Slumber,但是该端口可以识别新接入的盘。
Auto Partial to Slumber:可以让链路不需要回到 Active状态,直接从 Partial进入
Slumber模式。