BIOS开发笔记 4 – SATA接口中的节能技术

1、电源状态的定义

PCI规格书为设备定义了几种电源管理的状态,此也适用于HBA(Host Bus Adapter,主机总线适配器,是指实现 AHCI 规范以在系统内存和串行 ATA 设备之间进行通信的芯片)。定义分别如下:

  • D0:工作状态(必须实现)
  • D1:没有对存储设备定义该状态
  • D2:没有对存储设备定义该状态
  • D3:深度睡眠状态(必须实现)。该状态分为两种子状态,D3 HOT(可以响应PCI配置请求)和D3 COLD(无法响应PCI配置请求)。此两种状态被认为是相同的,其中D3 HOT 有 VCC电,而D3 COLD 没有。

SATA设备也有多种电源管理状态,这些状态都是HBA D0的子集,定义如下:

  • D0:设备工作中且实时可用
  • D1:设备在收到 IDLE IMMEDIATE 命令时进入该状态,此状态的退出延迟以秒为单位
  • D2:设备在收到 STANDBY (IMMEDIATE) 命令时进入该状态,此状态的退出延迟以秒为单位
  • D3:设备在收到 SLEEP 命令时进入该状态,此状态的退出延迟以秒为单位

最后,SATA定义了四个物理层(或接口)电源状态,分别是:

  • Ready:The Phy logic and main PLL are both on and active. The interface is synchronized and capable of receiving and sending data.
  • Partial:The Phy logic is powered, but is in a reduced power state. Both signal lines on the interface are at a neutral logic state (common mode voltage). The exit latency from this state shall be no longer than 10 us unless Automatic Partial to Slumber transitions is supported. If Automatic Partial to Slumber Transitions are enabled the exit latency from this state shall be no longer than the maximum Slumber exit latency.
  • Slumber:The Phy logic is powered but is in a reduced power state. The common mode level of the AC coupled transmitter is allowed to float (while maintaining zero differential) as long as it remains within the limits cited in Table 52 entry for AC coupled common mode voltage. The exit latency from this state shall be no longer than 10 ms.
  • DevSleep:The Phy logic may be powered down. The common mode level of the AC coupled transmitter is allowed to float (while maintaining zero differential) as long as it remains within the limits cited in Table 52 entry for AC coupled common mode voltage. The exit latency from this state shall be no longer than 20 ms, unless otherwise specified by DETO in Identify Device Data log

2、节能状态转换

当HBA空闲的时候,将会自动进入相应的节能状态,节能级别:PARTIAL < SLUMBER < DEVSLP,PHYRDY属于工作状态。

2.1 PHYRDY to Partial/Slumber

该过程为从活动状态转换成节能状态,可由Host或Device发起。如下是它们发起的具体流程。

Host initiated

Device initiated

2.2 DEVSLP

DevSleep 是 Serial ATA Revision 3.2 Specification 新增的一个状态,此功能使 HBA 和 SATA 存储设备能够进入 DevSleep 状态,从而实现基于 SATA 的低功耗系统。 对于支持设备睡眠的系统,设备、HBA 和系统 BIOS/驱动程序都需要支持设备睡眠。

DEVSLP 信号是一个由Host控制的信号,用于通知设备进入 DevSleep 状态。DEVSLP 信号可以使Host和Device都进入节能状态,它通过彻底关闭Host和Device PHY的电来达到超低功耗目的。

当设备进入节能模式后,可通过PME唤醒设备至工作模式,唤醒的时间随着省电级别的增加而增加。

3、HIPM 与 DIPM

HIPM,即Host Initiated Power Management,指可以由Host发起的,使设备进入省电模式的功能。

DIPM,即Device Initiated Power Management,指可以由Device发起的,使设备进入省电模式的功能。

此两种模式对应于上述的PHYRDY to Partial/Slumber,该功能需要设备,Host,OS和BIOS同时支持。支持这些功能的设备,在某种条件下将可以进入Partial/Slumber状态,从而达到节能的效果。

4、功能检查

可以使用Txbench检查当前SATA设备是否支持节能特性,如下图:

Supported Features列表中,高亮部分表示所支持的特性,Enabled Features表示已经开启的特性。图中所示的硬盘支持DIPM但未启用,不支持Device Sleep。

5、Windows中的ALPM

ALPM,即AHCI Link Power Management,在电源选项中安装 AHCI 链接电源管理,允许用户为通过 AHCI 接口连接到系统的驱动器和存储设备,配置链接电源管理模式。AHCI 链路电源管理是一种技术,其中 AHCI SATA 控制器将 SATA 链路以非常低的功率模式放置到 SSD 或 HDD 中。

Active:不支持 HIPM 或 DIPM,不使用链路电源管理

HIPM:仅允许 HIPM(主机启动的链路电源管理)

HIPM + DIPM:允许 HIPM 和 DIPM

DIPM:仅允许 DIPM(设备启动的链路电源管理)

Lowest:允许 HIPM、DIPM 和 DEVSLP(如果设备支持 DEVSLP)

有的系统中可能没有显示这个功能,那是因为出厂的时候硬件不支持,装系统的时候OS自动把此项功能隐藏了。既然是隐藏了,那也可以把它显示出来,可在控制台中执行如下命令:

powercfg -attributes SUB_DISK 0b2d69d7-a2a1-449c-9680-f91c70521c60 -ATTRIB_HIDE

也可通过如下命令将其再次隐藏:

powercfg -attributes SUB_DISK 0b2d69d7-a2a1-449c-9680-f91c70521c60 +ATTRIB_HIDE

6、附件

Txbench官网:https://www.texim.jp/download.html#txbench

Txbench网盘下载:https://wwi.lanzouo.com/i7FGy00708of

7、参考

Serial ATA AHCI 1.3.1 Specification

Serial ATA Revision 3.2 Specification

版权声明:
作者:bin
链接:https://ay123.net/mystudy/bios/1316/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录